PDA

Vollständige Version anzeigen : Datum aus SQL auslesen


Mokkie
19.03.2013, 12:29
Hallo,

ich versuche die ganze ziet schon über folgende SQL-Anweisung an ein Datum zu kommen. Diese möchte ich abspeichern und dann einer Funktion übergeben.

SELECT Auftraege.Datum FROM Auftaege INNERJOIN ON Connection_tabel " _
& " on Auftrage.Auftrags_id=Connection_tabel.Auftrags_id " _
& " WHERE Connection_tabel.id_Connection_tabel= " & connection_tabelID & ";"
Die Variable die das Ergebnis des SQL abspeichern soll habe ich als String deklariert. Umwandeln würde ich es dann mit:
actualDate = Format(date_string, "\#yyyy\-mm\-dd\#")

Kann mir jemand einen Tip geben?

Gruß, Babsi

maikek
19.03.2013, 12:53
Moin,
was ist denn aus dem DLookup geworden?
Eine SQL Select-Anweisung kannst du nicht direkt per VBA ausführen oder den Wert in einer Variable speichern,
dazu müsstest du über ein Recordset gehen.
Mit der Anweisung Format(...) erzeugst du einen String.
Wenn actualDate also nach wie vor vom Typ Date ist, musst du, wie auch schon im vorherigen Thema gesagt, umwandeln mit CDate o.ä.
maike

Anne Berg
19.03.2013, 13:02
Hallo,Eine SQL Select-Anweisung kannst du nicht direkt per VBA ausführen ...aber fast! ;)

So könnte das klappen:Dim strSQL As String
strSQL = "SELECT Auftraege.Datum FROM Auftaege INNER JOIN Connection_tabel " & _
" ON Auftrage.Auftrags_id=Connection_tabel.Auftrags_id " & _
" WHERE Connection_tabel.id_Connection_tabel= " & connection_tabelID & ";"
actualDate = CurrentDB.OpenRecordSet(strSQL)(0)
actualDate = Format(actualDate, "\#yyyy\-mm\-dd\#") ' <-- wozu???Die Rechtschreibfehler im SQL-Code musst du allerdings noch selbst korrigieren, wir wissen ja nicht, was davon richtig ist.

maikek
19.03.2013, 13:23
@Anne
Hab'ch doch gesacht:
dazu müsstest du über ein Recordset gehen.
imho, wenn man den Vorgängerthread betrachtet, ist das aber nur ein Versuch, Probleme zu umgehen, die so auch nicht gelöst werden.
maike

ebs17
19.03.2013, 13:31
actualDate = CurrentDB.OpenRecordSet(strSQL)(0)
Und hier gibt es einen Fehler für den Fall, dass ein leeres Recordset zurückgegeben wird, vgl. Vgl. 2er DLookUp-Varianten
(http://www.ms-office-forum.net/forum/showthread.php?t=254492).

Mokkie
19.03.2013, 13:31
Hi Anne,

genial!

Das mit dem:
actualDate = CurrentDb.OpenRecordset(date_string)(0)

Ist Super! Ich danke Dir!

Gruß, Babsi

Mokkie
19.03.2013, 13:34
Hi Maike,

über Recordset klappt wunderbar.
Der Vorhergehende Traed hat insofern damit nichts mehr zu tun.

ich danke Dir, Gruß, Babsi

Mokkie
19.03.2013, 13:35
Hei,

O.K., aber das kann nicht passieren, das fange ich vorher ab.

Gruß, Babsi