Formatierungsproblem

Alfred_

Erfahrenes Mitglied
Hi,
ich habe eine Routine, bei der ich nicht sicher bin, ob ich die "WHERE Klauses" in ein Hochkomma stellen soll oder nicht.
Diese Frage ist momentan eher rhetorischer Natur, da ich diesen Löschvorgang nur dann benötige, wenn ich während eines Filtervorganges Stromausfall habe. Ich muss dann alle Datensätze mit einem bestimmten Datum löschen.
In meinen "Unterlagen" finden sich z.B. keine Hinweise wie ich - wie im folgenden Fall - , ein Label (lblDate) in einen String einbaue.

Für jede Hilfe bin ich dankbar!

Private Sub mnuDelLastDate_Click()
Dim Filter
Filter = CStr(Format(lblDate.Caption, "dd.mm.yyyy"))

If MsgBox("Letzten Filtervorgang vom >> " & Filter & " << löschen", _
32 + 4, "Frage") = 6 Then
'...Löschvorgang einleiten
Dim goDb As DAO.Database
Set goDb = goWs.OpenDatabase(gsStammdatDB, True, False)
goDb.Execute "DELETE * FROM Irgendwas WHERE [Datum] = 'lblDate.Caption'"
'...und tschüss
Else
Exit Sub
End If
End Sub
 
Hallo

Es kommt darauf an wie du deine Felder in der Datenbank definiert hast.

Bei einer Text-Formatierung must ein Hochkomma gesetzt werden, bei einem Integerwert brauch kein Hochkomma gesetzt werden
 
Hi,
danke für Deinen Hinweis.
Das Datenbankfeld ist mit Datum/Uhrzeit deklariert und die Datensätze werden mit
mkRs.Fields("Datum") = Format(lblDate.Caption, "dd.mm.yyyy") hinzugefügt.
Es ist also kein Textfeld!
Das Label lbl.Date zeigt mir den letzten Datums-Filtervorgang an (dieses hole ich mir in der Form_Load).
Über dieses Label möchte ich auch den Löschvorgang starten, wenn mein Filtervorgang durch welche Gründe auch immer, unterbrochen wird.
Es wäre nämlich recht mühsam bis zu ~ 12.000 Datensätze "per Fuß" zu löschen.
Für Deine neuerliche Meinung wäre ich Dir dankbar.
Alfred
 
Hi,
ich habe das Problem gelöst. (...genauer gesagt ein hilfreicher Forumsteilnehmer aus einem anderem Forum) :D

Der String lautet richtig:
goDb.Execute "DELETE * FROM Irgendwas WHERE [Datum] = #" & Format(lblDate, "mm\/dd\/yyyy") & "#"

Grüße
 
Zurück