PDA

View Full Version : Rückmeldung aus einer Pcomm Anwendung



galaxy01
12-10-07, 08:08
Hallo zusammen,

ich möchter gerne in Excel ein Macro schreiben um in einer MainFrame Application eine Abfrage zustarten.
Was läuft schon:
Ich rufe die Application auf und starte meine DB2 Abfrage, so weit so gut,
nun möchte ich aber, das Excel solange warte bis die Abfrage komplett durchgelaufen ist und die Command Zeile wieder verfügbar ist.

der bisherige Code:
Set PSObject = CreateObject("PCOMM.autECLSession")
PSObject.SetConnectionByName ("B")
PSObject.autECLOIA.WaitForAppAvailable
PSObject.autECLOIA.WaitForInputReady
PSObject.autECLPS.SendKeys "'" & REPORT_TITLE & "'", 8, 23
PSObject.autECLPS.SendKeys "'" & PRODUCT_TYPE & "'", 9, 23
PSObject.autECLPS.SendKeys "'" & VEHICLE_LINE & "'", 10, 23
PSObject.autECLPS.SendKeys "'" & EFF_POINTS & "'", 11, 23
PSObject.autECLPS.SendKeys "'" & EFF_POINTS_CONT & "'", 12, 23
PSObject.autECLPS.SendKeys "'" & PROG_ID & "'", 13, 23
PSObject.autECLPS.SendKeys SAVE_FILE, 14, 23

Hat jemand eine Idee wie ich hier weiter kommen kann?

Gruß
Markus

Fuerchau
12-10-07, 09:47
Eigentlich gar nicht.

Excel bietet da eigentlich komfortablere Lösungen an:

Daten->Externe Daten->Neue Abfrage->ODBC

Du kannst dir per ODBC-Manager (Systemsteuerung->Verwaltung->Datenquellen) eine ODBC-Verbindung (System oder Benutzer) mit dem DB2/ODBC-Treiber einrichten und deine SQL's dann im Excel direkt erstellen.

Das Handling ist analog zum MS-Access-Abfragegenerator.
Du musst nur nach Auswahl der Quelle und Tabelle die Daten mit MS-Query bearbeiten.

Anschließend kannst du Parameter definieren und diese Zellen zuordnen.
Nach Änderung der Zellen und Aktualisierung der Daten hast du diese sofort in Excel.

galaxy01
15-10-07, 07:04
das hört sich kompliziert an, da ich mich in SQL fast gar nicht auskenne und nur fertige Abfragen verwende, werde ich wohl bei der manuellen Methode bleiben.
Aber vielen dank, für den Tipp
Gruß Markus

Fuerchau
15-10-07, 08:09
Du benötigst dafür kaum SQL-Kenntnisse wenn du mit dem Abfrage-Generator von MS-Access zurechtkommst.

Der MS-Query unterstützt da ähnliche Möglichkeiten (Verknüpfungen, berechnete Felder, usw.).

Probier es einfach mal aus. Es ist wirklich ganz simpel und äusserst performant.

Ansonsten musst du die Abfrage im Dialog ausführen und per
PSObject.autECLOIA.WaitForInputReady
Auf das Ende warten.
Wie du dann allerdings an die Daten kommen willst, entzieht sich mir da.