Guten Morgen,
ich möchte mir in Excel ein Macro erstellen mit welchem ich ein Programm auf der AS/400 ausführen kann. Ich benutze eine Ole DB Verbindung.
Hat jemand eine Idee wie das funktioniert?
Vielen Dank im vorraus
Ganz einfach per SQL-Call (SQL kann nämlich jedes Programm als SQL-Prozedur verwenden):
call mylib.mypgm parm('....', 1234,12 , ...)
Wichtig ist dabei der Aufbau der Parameter.
Zeichenketten werden genau in der Länge übergeben, Zahlen grundsätzlich als gepackt in der angegebenen Länge incl. Nachkomma.
Beispiel: 0000000123,12000 => 15p 5
Wichtig ist hierbei das Komma der Parametertrennung mit Leerzeichen zu ergänzen da es sonst als zur Zahl gehörend interpretiert wird.
Alternativ kannst du auch Parameter verwenden:
call mylib.mypgm parm(?, ?, ...)
Für jedes "?" hängst du einen passenden Parameter an.
Ggf. musst du bei OLEDB (besser ist eigentlich der ODBC-Treiber) noch Klammern angeben:
{call mylib.mypg ...} => SQL-Prozedur
{{call mylib.mypg ...}} => externes Programm
Genau weiß ich das nicht mehr da ich grundsätzlich den ODBC-Treiber mit dem OLEDB-Treiber für ODBC verwende:
MyConnection.Connection = "DSN=MyDSN"
Es wird automatisch der ODBC-OLEDB verwendet mit der ODBC-Configuration (DSN).