[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    Registriert seit
    Nov 2004
    Beiträge
    325
    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

  2. #14
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    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
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #15
    Registriert seit
    Nov 2004
    Beiträge
    325
    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

  4. #16
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #17
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    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

  6. #18
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Hallo,

    wollte das gerade auch mal ausprobieren, aber trotz gesetzen Flag bei Microsoft ActiveX Data Objects Version 6.0 kann er das nicht kompilieren.

    Click image for larger version. 

Name:	Unbenannt.jpg 
Views:	9 
Size:	210,2 KB 
ID:	382

    GG 4742

  7. #19
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Du hast ja nur die Recordset-Library angehakt. Es fehlt noch die normale ADO-Library.

    Gruß,
    KM

  8. #20
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    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
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #21
    Registriert seit
    Nov 2004
    Beiträge
    325
    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

  1. AS400 Dokumente in Word
    By Mario in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-10-06, 11:39
  2. mit word-makro daten aus as/400 holen
    By karin-vogelmann in forum NEWSboard Windows
    Antworten: 0
    Letzter Beitrag: 06-06-03, 15:26
  3. Word/Excel Daten übernehmen auf AS400
    By Bosch in forum NEWSboard Windows
    Antworten: 3
    Letzter Beitrag: 19-05-03, 09:06
  4. CRM, Kalender, Word, Fax, Mail, SMS, Telefon
    By molter in forum NEWSboard load'n'go
    Antworten: 0
    Letzter Beitrag: 05-04-01, 11:17
  5. 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
  •