Hallo zusammen,
ich habe folgendes Problem bei dem ich absolut nicht weiterkomme und benötige daher Eure Hilfe. Ich hoffe es gibt überhaupt eine Lösung:
- ich habe eine Access Datenbank mit einer Abfrage. Diese Abfrage enthält eine Zeile mit Wert1, Wert2, Wert3.
- ich habe ein externes Programm, an welches ich diese Daten übergeben möchte.
- die Übergabe erfolgt über eine Batch-Datei C:\Test.bat Wert1 Wert2 Wert3
- ein Aufruf der Batch und Übergabe von Parametern an das externe Programm aus der Kommandozeile heraus funtkioniert
Wie bekomme ich jetzt aus Access eine Batch aufgerufen und gleichzeitig die Werte an die Batch übergeben?
Ist das überhaupt möglich?
Ich bin kein Access-Profi sondern Anfänger und habe daher von VB z.B. nicht den großen Plan. Wenn jemand einen Vorschlag hat dann bitte mit genauer Erklärung zur Umsetzung. Das wäre sehr hilfreich.
Vielen Dank vorab für Eure Hilfe......
Hallo hjboehmer
Man soll zwar nie "nie" sagen, aber meines wissens geht das, so wie beschrieben, nicht. Aber zuerst mal mehrere Bitten / Fragen:
1.) Welche Access-Version wird verwendet?
2.) Wie heißt das Programm in das die Daten rein sollen?
Warum die Fragen? Es gibt so viele Lösungswege (Direktimport, Anbindug aus dem anderen Programm, ODBC-Schnittstellen usw.), die man hier nicht alle aufzeigen kann.
Gebe einfach etwas mehr Informationen. Dann werden wahrscheinlich auch viele Antworten kommen.
Hallo edgar.basler,
danke für Deine Antwort.
Ich versuche, nochmal ein paar Zusatzdaten anzugeben.....
- es handelt sich um Access 2003
- das Programm, welches die Daten aus Access erhalten soll ist ein Tool, welches wiederum zu einem dritten Programm gehört. Diese exe-Datei hat einzig und allein die Funktion, Daten aus Fremdprogrammen, welche als Parameter übergeben werden, zum Hauptprogramm zu übertragen.
- der Weg soll also so aussehen, Access -> *.exe-Datei Wert1 Wert2 Wert3 -> Hauptprogramm. Hauptprogramm empfängt die Werte 1 bis 3 und kann diese weiterverarbeiten.
- das Hauptprogramm kann auch Daten über den TCP/IP Port 5555 entgegennehmen, da weiss ich aber gar nicht wie das funktionieren soll.
Ich hoffe das hilft bei der Lösung.....
Danke, schönes Wochenende
Hallo
Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteW" ( _
ByVal hwnd As Long, _
ByVal lpOperation As Long, _
ByVal lpFile As Long, _
ByVal lpParameters As Long, _
ByVal lpDirectory As Long, _
ByVal nShowCmd As Long) As Long
Sub WasWeisIch()
dim rs as dao.recordset
dim SQL as string
dim sParam as string
SQL = "Select DeinFeld1, DeinFeld2, DeinFeld3 From DeineTabelle/Abfrage Where [DeinBedingungsFeld1]=DeinBedingungsWert1"
set rs = Currentdb.OpenRecordset(SQL, dbOpenSnapshot)
do while rs.eof = False
rs.MoveFirst
sParam = rs(0) & space$(1) & rs(1) & space$(1) & rs(2)
ShellExecute 0, StrPtr("open"), StrPtr("DeinLW:\DeinPath\DeineExe"), StrPtr(sParam), 0, SW_SHOWNORMAL
exit Do
loop
End Sub
Hallo,
...
..
.
rs.MoveFirst
do while Not rs.eof
rs.MoveFirst
sParam = rs(0) & space$(1) & rs(1) & space$(1) & rs(2)
ShellExecute 0, StrPtr("open"), StrPtr("DeinLW:\DeinPath\DeineExe"), StrPtr(sParam), 0, SW_SHOWNORMAL
exit Do
rs.MoveNext
loop
Set rs = Nothing
End Sub
Hallo Peter
Wenn ich hjboehmer jetzt richtig verstanden habe ist das ergebnis der Abfrage nur einzeilig, daher brauchen wir kein movenext.
letztlich braucht das bsp in diesem Fall auch kein movefirst, ausser man will ne FM bei einer leeren Abfrage.
zusätzlich noch
...
loop
rs.close
Set rs = Nothing
Hallo,
wenn sichergestellt ist, dass tatsächlich IMMER nur ein DS geliefert wird hast du zweifelsohne recht.