GREENHORN COMPUTER-FORUM - Freundliche Hilfe für PC-Einsteiger und Fortgeschrittene |
|
Seiten mit Postings: 1 | zum Seitenende |
|
Autor | Mitteilung |
everstream Boardkönig Beiträge: 1818 | Gesendet: 09:02 - 17.01.2010 Moin, moin alle zusammen! ich arbeite mit meiner Gruppe gerade an einem Projekt bei dem wir unter anderem ein Prognose-Modul entwickeln sollen. Das es nicht läuft brauche ich mal eure Hilfe. Die Funktionsweise soll wie folgt sein: in ein Formular werden einige Daten eingetragen; per Klick auf einen Button soll dann ein Code ausgeführt werden der die eingegebene Daten als Variablen übernimmt und anschließend in SQL-Abfragen verwendet. Die SQL-Abfragen liefern dann jeweils nur einen einzigen Wert der in Datentyp Integer oder String umgewandelt und in einfachen mathematischen Berechnungen verwendet werden soll. Das Ganze sieht etwa so aus(einige Variablendeklarationen habe ich jetzt ausgelassen, sie werden in ähnlichen Situationen verwendet) Option Compare Database Private Sub PrognoseStartFläche_Click() Dim stDocName As String OrtFormular = Forms!KiTa_Formular!OrtFormular KiTa_Art = Forms!KiTa_Formular!KiTa_Art JahrFormular = Forms!KiTa_Formular!JahrFormular GesZahlBoegen03 = Forms!KiTa_Formular!GesZahlBoegen03 GesZahlBoegen36 = Forms!KiTa_Formular!GesZahlBoegen36 GesZahlBoegen610 = Forms!KiTa_Formular!GesZahlBoegen610 OrtAnz (MeinOrt2) End Sub Public Function OrtAnz() Dim MeinOrt2 As String MeinOrt2 = CStr(OrtZuordnen3()) MsgBox MeinOrt2 End Function Public Function OrtZuordnen3() Dim strSQL As String Dim stAbfrage As String Dim db As DAO.Database stAbfrage = "OrtAbfrage" strSQL = "SELECT ID_Ort FROM KiTa_Plan_Kreis_Ploen_Backend.Ort WHERE Ort = ' " & OrtFormular & " ' " Set db = CurrentDb DoCmd.RunSQL (strSQL) End Function Das Problem ist, dass DoCmd.RunSQL oder alternativ CurrentDb.Execute, die die SQL-Abfragen ganz einfach aus dem VBA-Code heraus ausführen können, nur für Aktionsabfragen, also für INSERT, DELETE, UPDATE und ähnliche geeignet sind...allein die SELECT-Abfrage kann damit nicht durchgeführt werden Kennt jemand von euch solche eine Funktion, ähnlich wie DoCmd.RunSQL aber für die SELECT-Abfragen ? Vielen Dank im Voraus ! MfG everstream |
Piranha
Boardkaiser Beiträge: 2746
|
Gesendet: 11:17 - 17.01.2010 SELECT ist KEINE Abfrage. SELECT muss in ein query (Abfrage) eingepackt werden und um die zu lesen musst du das Ganze auch noch fetchen (abholen). Frag mich nicht, wie genau man "query" oder "fetch" in SQL schreibt, ich nehme an, das kannst du aus Beispielen zu INSERT oder UPDATE rauslesen, ansonsten steht das auch im SQL Handbuch. In MySql geht das so: strSQL = mysql_fetch_object(mysql_query("SELECT ID_Ort FROM KiTa_Plan_Kreis_Ploen_Backend.Ort WHERE Ort = ' " & OrtFormular & " ' ")) |
everstream
Boardkönig Beiträge: 1818
|
Gesendet: 11:52 - 17.01.2010 Danke für den Versuch Piranha ! Leider sieht es in Access einbisschen anders aus und dort gibt es nichts ähnliches, habe die Beispiele alle angeschaut. Eine Query kann man zwar erstellen lassen, aber nachher ist das Ding schon da, lässt sich nicht überschreiben und den Wert kann ich nicht auslesen. Hat noch jemand eine Idee ? MfG everstream |
Piranha
Boardkaiser Beiträge: 2746
|
Gesendet: 17:45 - 17.01.2010 Ich vermute mal, dass DoCmd.RunSQL (strSQL) im Prinzip nichts anderes macht als es in ein query zu packen, was dir bei UPDATE oder INSERT 0 oder Fehlercode zurück gibt. Theoretisch müsste es entweder ein DoCmd.irgendwas () geben, geraten würde ich sagen: DoCmd.FetchSQL () was statt 0 oder Fehler ein Array mit den Daten zurück gibt, oder ein Fetch ( DoCmd.RunSQL (strSQL) ) Der Grund warum du den Wert nicht auslesen kannst ist, da kommt immer ein Array zurück, kein String, darum liefert die Ausgabe "As String" kein brauchbares Ergebnis. |
everstream
Boardkönig Beiträge: 1818
|
Gesendet: 18:18 - 17.01.2010 Ok, ich werde es auch noch auf diese Weise versuchen Ist auf jeden Fall logisch die Erklärung Danke nochmals ! |
Seiten mit Postings: 1 | - Access 2003, VBA und SQL: Funktion gesucht - | zum Seitenanfang |
|
Version 3.1 | Load: 0.001768 | S: 1_2 |