2.2k Aufrufe
Gefragt in Datenbanken von Mitglied (335 Punkte)
Hallo liebe Leute,

ich stehe mal wieder auf''m Schlauch.

Und zwar will ich ein Recordset öffnen und nachschauen, ob bereits Datensätze - entsprechend meiner Textboxeingaben - vorhanden sind.

Die Auswahlkriterien sind Valid_From, Valid_To und Currency. Zu diesen Spaltennamen existieren auch die Eingabefelder.

Dazu habe ich folgenden Code geschrieben:

rst00.Open "SELECT * FROM Lnk_A2_006_F_Freight_data where Valid_From='" & "#" & Me!txt_Valid_From & "#" & "' And Valid_To='" & "#" & Me!txt_Valid_To & "#" & "' And Currency ='" & Me!cbo_Currency & "' ORDER BY Valid_From", CurrentProject.Connection, adOpenDynamic, adLockOptimistic

Leider kommt hier die Meldung "Data Type Mismatch". Ich habe verschiedene Änderungen probiert aber da kommt dann die Fehlermeldung "Format kann in diesem Kontext nicht werden".

Könntet Ihr mir bitte weiterhelfen? Ich bin echt am verzweifeln.

Gruss

Peter

6 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Peter,

Das Kriterium muss folgender Syntax entsprechen
valid_to = #12/31/2009#
somit müsste aus deinen Kriterien "'" um die Datumsangabe raus. Fall dein Datumsfeld
obigen Angaben genügt, sollte es funktionieren, andernfall über
format(cdate(<formularfeld>),"mm\/dd\/yyyy")
konvertieren.

Gruß Ralf
0 Punkte
Beantwortet von Mitglied (335 Punkte)
Hallo Ralf,

sry aber irgendwie stehe ich voll neben mir.

Deine Vorschläge funzen leider immer noch nicht. Irgendwie kann ich nicht "'" wegnehmen, um #txt_datumsfeld# zu erreichen.

Mit der Formatierung kriege ich "txt_datumsfeld", was ich nicht eingebaut kriege.

Ich schätze ich scheiter mal wieder bei all den "s und 's (heul).

Unten ist mein letzter Status, bei dem fromdate aber als fromdate und leider nicht als txt_datumsfeld zurückgegeben wird.

fromdate = Format(CDate(Me!txt_Valid_From), "mm/dd/yyyy")
rst00.Open "SELECT * FROM Lnk_A2_006_F_Freight_data where Valid_From=" & fromdate & ", CurrentProject.Connection, adOpenDynamic, adLockOptimistic"

Könntest Du mir bitte noch den finalen Schubser geben :)?

Gruss

Peter
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Peter,

klar, wie immer gerne. Es fehlen die #-Zeichen. Das letzte "-Zeichen hat Access wohl dran gesetzt, da eins fehlte


fromdate = "#" & Format(CDate(Me!txt_Valid_From), "mm\/dd\/yyyy") & "#"
rst00.Open "SELECT * FROM Lnk_A2_006_F_Freight_data where Valid_From = " & fromdate , CurrentProject.Connection, adOpenDynamic, adLockOptimistic


Noch'n Tipp: Wenn du die Datumsfelder in deinem Formular als Datum formatierst (Unter Eigenschaft --> Format --> Format --> Datum, kurz) kannst du dir das "cdate" sparen und Eingaben wie 1.3 werden automatisch zu 01.03.2010 ergänzt. Probpiere es mal aus.

Gruß
Ralf
0 Punkte
Beantwortet von Mitglied (335 Punkte)
Hallo Ralf,

probiere Deine Lösung gleich mal aus. Bin gerade auf Dienstreise und hier im Osten ist das mit dem I-Net nicht so pralle.

Danke für Deine schnelle Antwort.

Gruss

Peter
0 Punkte
Beantwortet von Mitglied (335 Punkte)
Hi Ralf,

Deine Lösung funzt.

Nur noch eine letzte Frage.

Wie verknüpfe u. g. Befehl mit der Currency, da diese Angabe kein Datum ist?

fromdate = "#" & Format(CDate(Me!txt_Valid_From), "mm\/dd\/yyyy") & "#"
todate = "#" & Format(CDate(Me!txt_Valid_To), "mm\/dd\/yyyy") & "#"
curren = Me!cbo_Currency
rst00.Open "SELECT * FROM Lnk_A2_006_F_Freight_data where Valid_From = " & fromdate & " And Valid_To = " & todate & " And Currency = " & curren, CurrentProject.Connection, adOpenDynamic, adLockOptimistic

Oben verlangt er ein Objekt, was aber da ist.

U. g. Befehl haut zwar hin, kann ihn aber nicht als drittes Kriterium öffnen.

rst00.Open "SELECT * FROM Lnk_A2_006_F_Freight_data where Currency ='" & Me!cbo_Currency & "'", CurrentProject.Connection, adOpenDynamic, adLockOptimistic

Dann hammers.

ich gelobe Besserung mit den ganzen 's und "s :).

Gruss

Peter
0 Punkte
Beantwortet von Mitglied (335 Punkte)
Ralf,

ich habs hingekriegt :))

fromdate = "#" & Format(CDate(Me!txt_Valid_From), "mm\/dd\/yyyy") & "#"
todate = "#" & Format(CDate(Me!txt_Valid_To), "mm\/dd\/yyyy") & "#"
rst00.Open "SELECT * FROM Lnk_A2_006_F_Freight_data where Valid_From = " & fromdate & " And Valid_To = " & todate & " And Currency = '" & Me!cbo_Currency & "'", CurrentProject.Connection, adOpenDynamic, adLockOptimistic

Thx.

Peter
...