[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    53

    Question CALL aus EXCEL VBA

    Hallo,
    ich möchte aus Excel VBA einen Befehl auf der AS400 ausführen, zB. runqry oder ein CL aufrufen, leider klappt das mit dem Script nicht :

    Option Explicit
    Sub as400()
    Dim cnn As ADODB.Connection
    Dim cmd As ADODB.Command
    Set cnn = New ADODB.Connection
    cnn.Open "Provider=IBMDA400;" & _
    "Data Source=192.***.***.***;" & _
    "User ID=********;" & _
    "Password=********;"
    Set cmd = New ADODB.Command
    With cmd
    .CommandType = adCmdText
    .ActiveConnection = cnn
    .CommandText = [HIER SOLL EINE ABFRAGE MIT ZB. "RUNQRY" GESTARTET WERDEN
    z.B. runqry qry (LIB/ORY) oder mit call ein CL]
    .CommandTimeout = 20
    .Execute
    End With
    cnn.Close
    End sub

    Bitte um Hilfe, vielen Dank.
    ERIC

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.254
    Hierzu musst du einen CALL QCMDEXC verwenden, ein Command-Object ist dazu nicht nötig:

    dim CallCmd as String

    ' Achtung: ggf. Hochkomma verdoppeln!
    CallCmd = "runqry ..."

    cnn.Execute "CALL QCMDEXC ('" & CallCmd & "', " & format(len(CallCmd), "0000000000.00000") & ")"
    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. #3
    Registriert seit
    Sep 2005
    Beiträge
    53

    Thumbs up

    Hallo,

    hab nur noch diese kleine Änderung vorgenommen und schon klappte es !



    von :
    cnn.Execute "CALL QCMDEXC ('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")"


    auf :
    cnn.Execute "CALL QSYS.QCMDEXC ('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")"
    SUPER,vielen Dank
    MFG ERIC

  4. #4
    Registriert seit
    Sep 2005
    Beiträge
    53

    Thumbs up so funktioniert es :

    Nochmals DANKE und so klappte es :

    Option Explicit
    Sub as400()
    Dim cnn As ADODB.Connection
    Dim cmd As ADODB.Command
    Set cnn = New ADODB.Connection
    Dim CallCmd As String

    cnn.Open "Provider=IBMDA400;" & _
    "Data Source=192.***.***.***;" & _
    "User ID=********;" & _
    "Password=********;"

    CallCmd = "runqry qry([LIB]/[QRY])"
    cnn.Execute "CALL QSYS.QCMDEXC ('" & CallCmd & "', " & Format(Len(CallCmd), "0000000000.00000") & ")"
    cnn.Close

    End Sub
    DANK FUERCHAU

Similar Threads

  1. AS/400 Programmaufruf mit VBA Excel
    By eagle in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 08-11-08, 17:50
  2. EXCEL, PDF, ZIP, IDEA, e-mail, alles auf iSeries
    By Kilianski in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 22-11-06, 15:23
  3. "remote" - call
    By hh-mi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 15-11-06, 12:23
  4. Datum überlebt ODBC Transfer auf Excel nicht
    By jjagi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 07-07-06, 08:29
  5. MiDViSiON Ausstellerprofil: Excel Data Deutschland AG
    By Kirsten Steer in forum Archiv NEWSboard Events
    Antworten: 0
    Letzter Beitrag: 15-06-06, 07:46

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •