[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.406
    ... das ist wohl simpel das falsche Forum. Versuch's mal bei der Mausschieber Fraktion, die haben auch Foren.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    2.069
    Moin
    Unsere Kunden machen das auf 2 verschiedenen Wegen
    1. < W e r b u n g > mit unserm Spooldesigner wird ein/mehrere Textbausteine erfasst. Die Variablen stehen
    im Text. Ein RPGLE Pgm fragt den/die zu druckenden Textbausteine und die Kundennr ab, druckt
    die TB-Nr und die Kundendaten, und der Spooldesigner schreibt den Brief, druckt, mailt ... < / W e r b u n g >

    2. Der User wählt auf der iSeries den Kunden, dadurch wird eine standardisierte Datei (als Serienbriefvorlage) in 'seinem' verzeichnis erstellt. Dann ruft er die Word vorlage, schreibt/ergänzt seinen Text, speichert und druckt den Serienbrief.

    Version 2 geht auch mal daneben! Aber PC Anwender sind Kummer gewöhnt, die schreiben dann den Brief neu!

    Gruß
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  3. #3
    Registriert seit
    Nov 2004
    Beiträge
    332
    Moin,

    und wie habt Ihr die Lösung 2 realisiert? Für einen Ansatz wäre ich Dir sehr dankbar.


    MFG

    DKSPROFI

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    2.069
    Na ja, wie beschrieben ...

    Basis ist eine (mehrere) Word Vorlage(n) mit den Serienbrief-Feldern.
    VORHER geht der Anwender in eine iSeries Anwendung, wählt den Kunden / Auftrag / Mandant, ...
    Die Anwendung löscht/erzeugt eine Datei (ich glaube CSV)
    Die Datei enthält die Felder ALLER Briefe/Schreiben
    Beim drucken fragt Word ob es ein Serienbrief sein soll, der Anwender sagt ja und druckt alle in der Datei vorhandenen Sätze.

    As400 realisierung durch uns, Word Lösung durch 'versierten' Pc-Anwender.

    Robi

    PS. Ich bevorzuge Version 1!
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.240
    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

  6. #6
    Registriert seit
    Jun 2001
    Beiträge
    2.069
    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!)

  7. #7
    Registriert seit
    Nov 2004
    Beiträge
    332
    Moin,

    vielen Dank an Dieter so etwas schwebte mir vor. Probiere ich mal aus.

    MFG


    DKSPROFI

  8. #8
    Registriert seit
    Aug 2006
    Beiträge
    2.135
    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

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

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.908
    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

  11. #11
    Registriert seit
    Nov 2004
    Beiträge
    332
    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

  12. #12
    Registriert seit
    Aug 2006
    Beiträge
    2.135
    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:	16 
Size:	210,2 KB 
ID:	382

    GG 4742

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
  •