-
Ich glaube, DKSPROFI sucht einen Beispiel-Quellcode in VBA, wie man die Verbindung zur iSeries aufbaut. Da ich kein VB-Programmierer bin, weiß ich nicht genau, wie es geht.
Kann es sein, dass man zunächst in den ODBC Einstellungen des PCs eine ODBC Verbindung einrichten muss? Wenn man IBM Client Access (oder wie es inzwischen auch immer heißen mag) auf dem PC hat, sollte das kein Problem sein. Dann sind die korrekten dlls bereits auf dem PC vorhanden.
Ich habe auf jeden Fall eben mal folgenden Code mit google gefunden. Da machen die es im VBA für Excel. Vielleicht sind da ja ein paar Stichworte drin, an denen du dich weiterhangeln kannst.
Dieter
Sub transfer()
Dim varState As String
Set CS = CreateObject(“ADODB.Connection”)
Set RS = CreateObject(“ADODB.Recordset”)
‘Retrieve values from Cells on the sheet to use as selections in the query below
varState = ActiveSheet.Range(“C2″).Value
varFrom_Date = ActiveSheet.Range(“B3″).Value
varTo_Date = ActiveSheet.Range(“B4″).Value
‘ ISeries connection String
‘ConnectString = “Driver={ISeries Access ODBC Driver};System=10.1.4.1;Uid=xxxxx;Pwd=xxxxx;Librar y=PWRDTA41;QueryTimeout=0″
ConnectString = “Driver={ISeries Access ODBC Driver};System=10.1.4.1;Library=PWRDTA41;QueryTime out=0″
CS.Open (ConnectString)
SqlString = “SELECT hhicusn , C.FFDCNMB, C.FFDSTEB, hhiclsn, SUM(hhiqysa), SUM(hhiexsn), SUM(hhiexac) ” & _
” FROM pwrdta41.hhiorddp ” & _
” left outer join PWRDTA41.FFDCSTBP c” & _
” ON hhicusn = c.ffdcusn and” & _
” hhidivn = c.ffddivn and” & _
” c.ffdcmpn = hhicmpn and” & _
” c.ffddptn = hhidptn” & _
” WHERE hhidtei between ” & varFrom_Date & ” and ” & varTo_Date & _
” and hhiclsn = ‘105’ and c.ffdsteb = ‘” & varState & “‘” & _
” GROUP BY hhicusn, c.ffdcnmb, c.ffdsteb, hhiclsn” & _
” ORDER BY hhicusn”
‘Message box can be used for debugging the SQL statement
‘MsgBox (SqlString)
RS.Open SqlString, CS
‘Clear Previous contents of Cells
Cells.Select
ActiveSheet.Range(“A7:Z65535″).ClearContents
‘copy the Recordset to excel sheet starting at A7
ActiveSheet.Range(“A7″).CopyFromRecordset RS
‘Close Connection and RecordSet
RS.Close
CS.Close
‘Reset cell back to A1
ActiveSheet.Range(“A1″).Select
End Sub
-
Ich glaube, DKSPROFI sucht einen Beispiel-Quellcode in VBA, wie man die Verbindung zur iSeries aufbaut.
Kann sein, aber das ist NICHT unser weg!
Wir erzeugen von der iSeries eine PC Datei, die, mit immer gleichem Namen als Serienbrief Input gilt.
Da kommt schon mal Chaos raus, aber wir machen das auch nur dort, wo es unumgänglich ist, das der Anwender 'seinen' individuellen Text in Word erfasst und dort auch formatiert.
Alles was sich aus festen Texten zusammensetzt, oder wo die Formatierung nicht 'das aller aller wichtigste' ist, verwenden wir Lösung1
(die keine Fehler erzeugt und Optisch locker mit den Word Briefen mithält. Auch durch das automatische Speichern, an' s DMS übergeben oder mailen, ist die Lösung mittlerweile auch von den Anwendern akzeptiert und bevorzugt. Einige Fällen sind schon umgestellt worden da der Anwender nur auf einer Plattform arbeitet (iseries) )
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Moin,
vielen Dank an Dieter so etwas schwebte mir vor. Probiere ich mal aus.
MFG
DKSPROFI
-
Hallo,es gibt bei den Jungs ein News Letter " SmartTools Access Weekly vom 9.7.2015" die bringen immer wieder Tipps wie man was in Word / Excel etc. besser machen kann. Ab und zu auch Makros und so. Habe leider nicht immer die Zeit das jeden Tag zu lesen und auszuprobieren, aber vielleicht suchst Du ja ma bei den auf der Hompage. __GG
-
Moin *all,
ich hole die Frag noch einmal aus der Versenkung. Nachdem ich das Thema erfolgreich ignorieren konnte, habe ich den Ball wieder bekommen und stehe jetzt wie damals völlig auf dem Schlauch.
Kann mit jemand ein Beispiel Code für eine VBA-Verbindung zu der AS/400 aus WORD helfen?
Das habe ich zur Zeit, googeln tue ich schon seit ein paar Tagen, brachte mich aber nicht wirklich weiter.
Dim Connection
Set OBBCString = CreateObject("ADODB.Connection")
Connection = "ODBC;Driver={Client Access ODBC Driver (32-bit)};" & _
"DSN=DSNName;" & _
"SYSTEM=IP;" & _
"Library=Bibliothek" & _
"UID=" & UserId & ";" & _
"PWD=" & UserPw & ";"
Set ODBCRecord = CreateObject("ADODB.Recordset")
OBBCString.Open Connection
ODBCRecord.Open ("Select Feld1 Feld2, Feld3" & _
" From Bibliothek.Datei " & " Where Key_1 = " & Variable1 & _
" And Key2 = " & Variable2 & _
" And Key3 = " &Variable3), Connection
Textfeld1 = Feld1
usw.
Da das kein Fehler bringt, gehe ich davon aus, dass die AS/400 Verbindung OK ist.
mfg
DKSPROFI
-
Da du aber doch Programmierer bist, denke ich doch dass du es richtig machen willst.
Hierzu gehst du am Besten in der VBA-IDE in die Verweise und setzt das Häkchen vor "Microsoft ActiveX Data Object Library". Die Version ist je nach Windows dann 2.8, 6, oder ggf. 10.
Letztlich ist es aber egal.
Die Variablen können dann gezielt als ADODB.Connection, ADODB.Command, ADODB.Recordset definiert werden, CreateObject entfällt, stattdessen nimmt man New.
Korrekt wäre dann:
dim MyConnect as ADODB.Connection
set MyConnect = new ADODB.Connection
Für wiederkehrende Selects sollte man ein Command verwenden:
dim MyCmd as ADODB.Command
set MyCmd = new ADODB.Command
MyCmd.CommandText = "Select Feld1 from MyLib.MyFile where Key1 = ? and Key2 = ? and Key3 = ?"
set MyCmd.ActiveConnection = MyConnect
Zur Ausführung dann einfach:
MyCmd(0) = Var1
MyCmd(1) = Var2
MyCmd(2) = Var3
Dim MyRecordset as adodb.Recordset
Set MyRecordset = MyCmd.Execute
do while MyRecordset.EOF = false
TextFeld = MyRecordset!Feld1
MyRecordset.MoveNext
loop
MyRecordset.Close
MyConnect.Close
-
Moin,
vielen Dank, es scheiter bei mir aber schon an der Syntax. Das spielchen mach ich ja nur, wil ichn es muss, und Du weißt "Schulung kosten Geld"
Dein Code eingefügt, dann gibt schon Fehler bei der Definition.
"Fehler beim Kompilieren"
Benutzerdfinierter Typ nicht definiert
dim MyConnect as ADODB.Connection
mfg
DKSPROFI
-
Ich sagte ja, in der VBA-IDE den "Verweis" hinzufügen:
Menü "Extras" => "Verweise" => runterblättern bis "Microsoft ActiveX Data Objects" und bei der letzten Version (bei mir ist es 6.1) das Flag setzen.
-
Hallo,
liegen evtl. auch ein paar Java-Skills vor? Dann wäre vielleicht Apache POI (XWPF) etwas für Dich.
Ich hatte vor einigen Jahren mal ein paar Tests mit dem Vorgängerprojekt HWPF gemacht. Allerdings wurde das Tool nicht weiterentwickelt. Jetzt gibt es aber XWPF (für DOCX-Dokumente). Damit könnte man mittels Java einfache Word-Dokumente erstellen und über JDBC entsprechende AS/400-Daten einfügen.
Das wäre wahrscheinlich sinnvoller als umständlich über VB oder VBA und Makros da irgendwas hinzubiegen.
Schau Dir halt mal folgende Links an:
http://www.programcreek.com/java-api...l.XWPFDocument
https://poi.apache.org/document/quick-guide-xwpf.html
Gruß,
KM
-
Hallo,
wollte das gerade auch mal ausprobieren, aber trotz gesetzen Flag bei Microsoft ActiveX Data Objects Version 6.0 kann er das nicht kompilieren.

GG 4742
-
Du hast ja nur die Recordset-Library angehakt. Es fehlt noch die normale ADO-Library.
Gruß,
KM
-
Die Recordset-Library wird überhaupt nicht benötigt.
Nimm die 6.1 ohne Recordset.
Wenn du in der IDE dann die F2 drückst, findest du in der Dropdownliste die Lib ADODB und dann in den Listen darunter die Objekte und Konstanten dieser Lib.
Dokumentation und Beispiele:
https://msdn.microsoft.com/de-de/lib...(v=vs.85).aspx
Similar Threads
-
By Mario in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-10-06, 11:39
-
By karin-vogelmann in forum NEWSboard Windows
Antworten: 0
Letzter Beitrag: 06-06-03, 15:26
-
By Bosch in forum NEWSboard Windows
Antworten: 3
Letzter Beitrag: 19-05-03, 09:06
-
By molter in forum NEWSboard load'n'go
Antworten: 0
Letzter Beitrag: 05-04-01, 11:17
-
By MKnapp in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 19-12-00, 06:43
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks