Hallo zusammen,
ich habe eine Frage bezüglich der UPDATE Funktion. Meinen bisherigen Code seht ihr unten. Falls der Nutzer bei einem bestimmten Event an einem bestimmten Datum (welches schon in der Tabelle angelegt ist) einen anderen Preis angibt, soll er gefragt werden ob er den vorherigen Datensatz mit dem neunen Preis überschreiben soll.
(Ich hoffe es wird durch den Code verständlicher :D)
Dim strSQL As String
Dim Box As String
If DCount("*", "tblEvents", "Event = '" & Me!EventName & "' AND Datum = " & Format(CDate(Me!Datum), "\#yyyy-mm-dd\#")) > 0 Then
Box = MsgBox("Für dieses Event wurde am angegebenen Datum schon ein Preis festgelegt. Soll dieser überschrieben werden?", vbYesNo)
If Box = vbNo Then
Cancel = True
Else
strSQL = "UPDATE tblEvents SET Preis = '" & Me!Preis & "' WHERE Event = '" & Me!EventName & "' AND Datum = " & Format(CDate(Me!Datum), "\#yyyy-mm-dd\#)")
End If
Else [Neuer Datensatz wird angelegt.]
End If
Ich vermute irgendwas stimmt bei dem "UPDATE"-Teil nicht, da das Programm derzeit reoibungslos durchläuft jedoch nichts überschrieben wird...
Danke schonmal!
Hallo,
abgesehen von den Syntaxfehlern sollte es im Fall, dass "Preis" vom Datentyp "Währung" oder "Double" ist, so lauten:
strSQL = "UPDATE tblEvents SET Preis = " & Str(nz(Me!Preis,0.)) & " WHERE Event = '" & Me!EventName & "' AND [Datum] = " & Format(CDate(Me![Datum]), "\#yyyy-mm-dd\#")
BTW:
Datum ist ein reserviertes Wort und sollte in Eckklammern stehen.
Warum wird ein (Event-)Name als Kriterium benutzt? Gibt es keinen numerischen Primärschlüssel?