Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Unlösbar? Ich hoffe nicht. Brauche dringend Hilfe

Begonnen von hjboehmer, November 23, 2012, 11:02:44

⏪ vorheriges - nächstes ⏩

hjboehmer

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......

edgar.basler

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.

hjboehmer

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

daolix

Hallo

Code (Ist nur ein Muster und ungetestet) [Auswählen]


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


database

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

daolix

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

database

Hallo,

wenn sichergestellt ist, dass tatsächlich IMMER nur ein DS geliefert wird hast du zweifelsohne recht.