GREENHORN COMPUTER-FORUM - Freundliche Hilfe für PC-Einsteiger und Fortgeschrittene

    

 · Home · Impressum & Datenschutz · Suche

Seiten mit Postings: 1

zum Seitenende

 Forum Index —› Programmierung —› Access 2003, VBA und SQL: Funktion gesucht
 


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



 Forum Index —› Programmierung —› Access 2003, VBA und SQL: Funktion gesucht
 



Version 3.1 | Load: 0.001768 | S: 1_2