Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Problem mit Recordsource

Begonnen von shadock, September 18, 2011, 23:16:13

⏪ vorheriges - nächstes ⏩

shadock

Hallo,

ich habe eine Tabelle mit den Spalten "vname" vom Type Text und
"Datum" vom Type Datum/Uhrzeit Format Datum, kurz.
Habe hier ein Endlosformular dem ich einen bestimmten Datensatz mittels
Recordsource übergeben will.

Nun löse ich folgendes Ereignis aus

Dim SQLString As String
     
     SQLString = "select tabelle2.vname, tabelle2.datum from tabelle2 where tabelle2.datum = 02.09.2011"
     
     Form_Formular2.endlos2.Form.RecordSource = SQLString


Wenn das Ereignis ausgelöst wird bekomme ich folgende Fehlermeldung.
"Laufzeitfehler '3075': Syntaxfehler in Zahl in Abfrageausdruck 'tabelle2.datum = 02.09.201'."
Was mache ich falsch? Hab es schon mit Hochkommata versucht und so weiter.
Lasse mir zum Test den SQL-String als Textdatei ausgeben und dort steht folgendes drin.
select tabelle2.vname, tabelle2.datum from tabelle2 where tabelle2.datum = 02.09.2011

shadock

bahasu

Moin shadock,

was passiert mit:
SQLString = "select tabelle2.vname, tabelle2.datum from tabelle2 where tabelle2.datum = Format([tabelle2.datum],'yyyy.mm.dd')='2011.09.02';"

Harald
Servus

DF6GL

#2
Hallo,

eher so:

SQLString = "select tabelle2.vname, tabelle2.datum from tabelle2 where tabelle2.datum = #09/02/2011#"


wobei man sich mit solchen "magic numbers"  (feststehenden Zahlen im Code/SQL) keinen Gefallen tut.

Wenn man sich entschliesst, das Vergleichsdatum aus einer (Datums-)Variablen zu entnehmen, dann etwa so:


Dim datKrit as Date
datKrit =nz(Me!Datumskriterium,Date)   ' falls das Kriterium in einem Form-Textfeld steht, bzw. eingegeben wurde.

SQLString = "select tabelle2.vname, tabelle2.[datum] from tabelle2 where tabelle2.[datum] = " & Format(datKrit,"\#yyyy-mm-dd\#")
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

shadock

Hallo,

habe mittlerweilen herausgefunden wie es geht. Man muss das Datum Formatieren
und die Rautezeichen setzen. Wusste ich nicht.

Hier mein code falls es jemanden interesiert.


Dim condatum As String
Dim condatum2 As String
   
   condatum = CDate(Form_erstellen_frm.datum_tf.Text)
   condatum2 = "#" & Format$(condatum, "m-d-yy") & "#"


condatum2 setze ich dann in den String ein.

Danke für eure Hilfe.

shadock


database

Hallo shadock,

sieh mal ...  http://www.donkarl.com?FAQ6.8

...gar nicht sooo schwer zu finden...  ;) :D ;D

...und ein wenig einfacher als dein Konstrukt  8)