Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Datumsformat in SQL ändern





Frage

Hallo, ich lasse vom Anwender ein Datum abfragen , das er in ein Textfeld schreiben soll(zb 29.07.03).Danach werden alle Datensätze zu diesem Datum aufgelistet.Da die abfrage über SQL läuft funzt das ganze nur wenn mann 07/29/03 eingibt. Wie muss ich meine Anweisung umformulieren,das ich das Datum in das Format tt.mm.jj bekomme? Option Compare Database Const Kriterien = 10 Dim fn(1 To Kriterien) As Variant, ft(1 To Kriterien) As Variant Private Sub Alle_Click() Dim suchall As String suchall = "SELECT Tabelle1.* FROM Tabelle1;" Liste25.RowSource = suchall Liste25.Requery Me("LISTE25").Visible = True End Sub Private Sub erneut_Click() Dim i As Integer Me("Liste25").Visible = False For i = 1 To Kriterien Me(fn(i)).ControlSource = "" Next i End Sub Private Sub Form_Load() fn(1) = "Version": ft(1) = "n" fn(2) = "Dokument": ft(2) = "n" fn(3) = "Archivdatum": ft(3) = "d" fn(4) = "Titel": ft(4) = "a" fn(5) = "Bemerkung": ft(5) = "a" fn(6) = "DokumentenNr": ft(6) = "a" fn(7) = "[Ersetzt durch]": ft(7) = "a" fn(8) = "[Erstell-Datum]": ft(8) = "d" fn(9) = "Versio": ft(9) = "a" fn(10) = "Änderungsdatum": ft(10) = "d" Dim i As Integer Me("Liste25").Visible = False For i = 1 To Kriterien Me(fn(i)).ControlSource = "" Next i Me("Suchen").Enabled = True Me("Alle").Enabled = True End Sub Private Sub info_Click() MsgBox ("BLABLABLA") End Sub Private Sub Suchen_Click() Dim i As Integer Me("Alle").Enabled = True Dim such As String such = "SELECT Tabelle1.Version," such = such + "Tabelle1.Dokument," such = such + "Tabelle1.Archivdatum, " such = such + "Tabelle1.Titel, " such = such + "Tabelle1.Bemerkung, " such = such + "Tabelle1.DokumentenNr, " such = such + "Tabelle1.[Ersetzt durch], " such = such + "Tabelle1.[Erstell-Datum], " such = such + "Tabelle1.Versio," such = such + "Tabelle1.Änderungsdatum " such = such + "FROM Tabelle1 " Dim flag As Integer Dim inhalt As Variant Dim k As String Dim typ As Variant Dim v As Integer Dim s As Integer flag = 0 s = 0 For i = 1 To Kriterien inhalt = Me(fn(i)) typ = ft(i) If Not IsNull(inhalt) Then s = s + 1 If flag = 1 Then k = k + "AND" k = k + "(Tabelle1." + fn(i) If InStr(inhalt, ">") Or InStr(inhalt, "<") Or InStr(inhalt, "=") Then v = 1 If InStr(inhalt, ">=") Or InStr(inhalt, "<=") Or InStr(inhalt, "<>") Then v = 2 Else v = 0 End If If typ = "n" Then If v <> 0 Then k = k + inhalt Else k = k + "=" + inhalt End If ElseIf typ = "a" Then If v <> 0 Then k = k + Left(inhalt, v) + "'" + Mid(inhalt, v + 1) + "'" Else If InStr(inhalt, "*") Or InStr(inhalt, "?") Then k = k + " LIKE'" + inhalt + "'" Else k = k + "='" + inhalt + "'" End If End If ElseIf typ = "d" Then If v <> 0 Then k = k + Left(inhalt, v) + "#" + Mid(inhalt, v + 1) + "#" Else If InStr(inhalt, "*") Or InStr(inhalt, "?") Then k = k + " LIKE'" + inhalt + "'" Else k = k + "=#" + inhalt + "#" End If End If End If k = k + ")" flag = 1 End If Next i If s = 0 Then MsgBox ("Sie haben keine Suchkriterien eingegeben! Es werden alle Datensätze aufgelistet!") End If If flag Then such = such + "WHERE" such = such + "(" + k + ");" End If Me.Liste25.RowSource = such Me.Liste25.Requery Me("Liste25").Visible = True End Sub

Antwort 1 von JohnnyLoser

Zitat:
Wie muss ich meine Anweisung umformulieren,das ich das Datum in das Format tt.mm.jj bekomme?


Du mußt Dein Datum nicht in das Format tt.mm.jj bekommen, sondern in das Format mm/dd/yyyy.

Schreibe Dir in Dein CommonFunction-Modul eine Funktion, der Du Dein Datum übergibst:

Public Function SQLDate (xDate) As String
SQLDate = "#" & Format(CvDate(xDate),"mm\/dd\/yyyy") & "#"
End Function

'''Aufruf
SQLDate(Me.Datumsfeld)


Du solltest natürlich abchecken, ob Du ein gültiges Datum übergibst.

Gruß

Johnny


Antwort 2 von CLU

Super funktioniert einwandfrei. Danke

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: