Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Mokkie am Dezember 15, 2025, 08:54:26

Titel: Datumsübergabe an SQL - Kein Ergebnis
Beitrag von: Mokkie am Dezember 15, 2025, 08:54:26
Hallo, 

ich habe ein Listenfeld, dieser Liste liegt eine Abfrage zugrunde,  ich möchte nun noch einen Filterfuktio einbauen. Hier kann ich den Fehler nicht finden. Es wird kein Ergebnis angezeigt. Leider bkommet man bei den Listenfeldern ja auch kein fehler angezeigt.
Das ganze Funktioniert aber wenn ich das Datuem 'hart Eintrage' im SQL.
Hat jemand eine Idee?
Dim VonDatum As String
    Dim BisDatum As String
   
    VonDatum = Format(Me.txtDateVon, "dd/mm/yyyy")
    BisDatum = Format(Me.txtDatebis, "dd/mm/yyyy")

    Me.lstProvisionen.RowSource = " SELECT Count(ZV.ZV_TURNOVER) AS Anzahl_Trx, TERMINAL.TERMINAL_TID AS TerminalNo, PROVISION.PROVISION_FIX AS Fix, PROVISION.PROVISION_PT AS ProTrx, " _
                                & " ROUND(Count([ZV_TURNOVER])*[PROVISION].[PROVISION_PT]+[PROVISION].[PROVISION_FIX],2) AS Provisionsergebnis, ZV.ZV_DATE" _
                                & " FROM RESELLER INNER JOIN ((ZV INNER JOIN TERMINAL ON ZV.TERMINAL_ID = TERMINAL.TERMINAL_ID) INNER JOIN PROVISION ON TERMINAL.TERMINAL_ID = PROVISION.TERMINAL_ID) ON RESELLER.RESELLER_ID = PROVISION.RESELLER_ID" _
                                & " GROUP BY TERMINAL.TERMINAL_TID, PROVISION.PROVISION_FIX, PROVISION.PROVISION_PT, ZV.ZV_DATE, Left([TERMINAL_TID],3), ZV.TERMINAL_ID " _
                                & " HAVING ZV.ZV_DATE Between '" & VonDatum & "' and  '" & BisDatum & "'  and Left([TERMINAL_TID],3)<>999 And Left([TERMINAL_TID],3)<>998 " _
                                & " ORDER BY ZV.ZV_DATE;"

Titel: Re: Datumsübergabe an SQL - Kein Ergebnis
Beitrag von: Doming am Dezember 15, 2025, 09:12:10
Moin Mokkie,

Du musst Dein VonDatum und BisDatum in eine SQL-kompatible Schreibweise umwandeln, also
SQLDatum1 =Format(VonDatum, "\#mm\/dd\/yyyy\#")oder Du baust Dir eine Funktion wie diese, welche Du Dir in ein Modul schreibst:
Public Function fncDatSQL(vardatum As Date) As String
    On Error GoTo Fehler:
    If IsDate(vardatum) Then
      fncDatSQL = Format(vardatum, "\#mm\/dd\/yyyy\#")
    End If
Ende:
    Exit Function
Fehler:
    MsgBox Err.Description
    Resume Ende
End Function

Dann könntest Du Deine Abfrage so aufbauen
& " HAVING ZV.ZV_DATE Between " & fncDatSQL(VonDatum) & " and " & fncdatSQL(BisDatum) & " and Left([TERMINAL_TID],3)<>999 And Left([TERMINAL_TID],3)<>998 " _
                                & " ORDER BY ZV.ZV_DATE;"

Gruß
Doming
Titel: Re: Datumsübergabe an SQL - Kein Ergebnis
Beitrag von: Mokkie am Dezember 15, 2025, 09:41:20
Hallo Doming,

ja, das wars, ich weiß auch nicht warum ich da immer wieder drüber stoplere.

Danke  :)