-
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
-
Moin *all,
vielen, vielen Dank an Euch alle, insbesondere an Fuerchau, endlich hat es funktioniert. Mit ein paar Änderungen und Tante Google, ist das Ziel ist jetzt erreicht. Man kann das sicherlich erhebich verbessern, aber die Mittel heiligen den Zweck.
Die Arbeitsweise des Makros in kurzen Schritten:
Anwender öffnet Vorlage
Eingabe Kundennummer
Prüfung ob numerisch, ok, abbrechen, nicht zu groß usw.
Anmelden an AS/400
Holen Datensatz
Prüfung, ob gelesen
Füllen der Textmarken mir Adresse
Fertig.
Noch einmal vielen, lieben Dank an alle.
mfg
DKSPROFI
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