Hallo,
also hier wäre ein Beispiel von mir, das funktioniert (das ist hier nur eine fiktive SQL-Anweisung). Die Variable "firma" wird aus einer Excel-Zelle gefüllt.
Der Benutzername und das Kennwort kann hier direkt mitgegeben werden. Ich arbeite viel lieber mit diesen kleinen VBAs als mit DQY-Dateien, da ich damit wesentlich flexibler bin. Ich kann hier z.B. über weitere Module das Tabellenblatt entsprechend vorbereiten bzw. die Ausgabe nachträglich formatieren.
Gruß,
KM
Code:Sub Artikelzusatztexte() ' Variablen definieren Dim firma As Variant Dim sql As String Dim qt As QueryTable firma = Range("B1").Text ' SQL-Abfrage auf der AS/400 vorbereiten sql = "select blabla " sql = sql & "from artstamm " sql = sql & "where finr = " & firma & " " sql = sql & "order by artn" ' Tabellenblatt für Ergebnisliste vorbereiten Ergebnisliste_vorbereiten ' Abfrage auf der AS/400 ausführen und Ergebnisliste füllen Set qt = ActiveSheet.QueryTables.Add(Connection:=Array( _ "ODBC;DRIVER={iSeries Access ODBC Driver};CONNTYPE=2;TRANSLATE=1;CMT=0;PKG=QGPL/DEFAULT(IBM),2,0,1,0,512;LANGUAGEID=ENU;DFTPKGLIB=QGPL;DBQ=LIB;SYSTEM=ISERIES;UID=Benutzername;PWD=Kennwort;BLOCKFETCH=1;BLOCKSIZE=512"), Destination:=Range("A2")) qt.CommandText = sql qt.Name = "Artikelzusatztexte" qt.FieldNames = False qt.RowNumbers = False qt.FillAdjacentFormulas = True qt.PreserveFormatting = True qt.RefreshOnFileOpen = False qt.BackgroundQuery = False qt.RefreshStyle = xlInsertDeleteCells qt.SavePassword = True qt.SaveData = True qt.AdjustColumnWidth = False qt.RefreshPeriod = 0 qt.PreserveColumnInfo = True qt.Refresh End Sub
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks