jensgebken
Goto Top

Access query Frage bzgl. Datum

Hallo Gemeinschaft,

habe folgendes Problem - ich benötige in einer query immer das Datum vom nächsten Samstag

strSQL = "SELECT * FROM Kurtaxe where Kd_anreise = DateValue('5/8/2023')"  

könnt ihr mir das helfen

Content-Key: 8048189727

Url: https://administrator.de/contentid/8048189727

Printed on: April 27, 2024 at 07:04 o'clock

Member: Snuffchen
Snuffchen Aug 04, 2023 at 13:38:30 (UTC)
Goto Top
So sollte das funktionieren, das sah nach VBA in Microsoft Access aus oder?

SELECT * 
FROM Kurtaxe 
WHERE Kd_anreise = (
    SELECT 
        IIf(DatePart("w", Date()) <= 5,   
            DateAdd("d", 6 - DatePart("w", Date()), Date()),   
            DateAdd("d", 6 - DatePart("w", Date()) + 7, Date())  
        )
);
Member: Lochkartenstanzer
Lochkartenstanzer Aug 04, 2023 at 13:40:20 (UTC)
Goto Top
Moin,

Weil Freitag ist:

Access desktop database reference

lks
Member: mbehrens
mbehrens Aug 04, 2023 at 13:45:44 (UTC)
Goto Top
Zitat von @jensgebken:

habe folgendes Problem - ich benötige in einer query immer das Datum vom nächsten Samstag

Als Grundlage mal mit einem vernünftigen Backend:

SELECT
        GETDATE() AS [Now],
	DATEADD(DAY, DATEDIFF(DAY, -1, GETDATE()) / 7 * 7, -1) AS [Last sunday]
Member: jensgebken
jensgebken Aug 04, 2023 at 13:46:19 (UTC)
Goto Top
@Snuffchen - wie würde das nur in vba aussehen
Member: Snuffchen
Snuffchen Aug 04, 2023 at 13:50:05 (UTC)
Goto Top
Du musst doch nur dein strSQL = "xxx" drumherum machen, der SQL-Befehl bleibt ja der gleiche
Member: Snuffchen
Snuffchen Aug 04, 2023 at 13:51:54 (UTC)
Goto Top
Oder hier nochmal als VBA Funktion mit DAO:

Sub ExecuteQuery()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSql As String
    Dim nextSaturday As Date

    ' Berechnung des nächsten Samstags  
    If DatePart("w", Date()) <= 5 Then  
        nextSaturday = DateAdd("d", 6 - DatePart("w", Date()), Date())  
    Else
        nextSaturday = DateAdd("d", 6 - DatePart("w", Date()) + 7, Date())  
    End If

    ' SQL-Abfrage  
    strSql = "SELECT * FROM Kurtaxe WHERE Kd_anreise = #" & Format(nextSaturday, "mm/dd/yyyy") & "#"  

    ' Datenbankverbindung öffnen  
    Set db = CurrentDb
    Set rs = db.OpenRecordset(strSql)

    ' Hier können Sie den Recordset 'rs' weiterverarbeiten  

    ' Schließen der Verbindungen  
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub
Member: Trommel
Trommel Aug 04, 2023 at 14:13:44 (UTC)
Goto Top
Unser täglich @jensgebken gib uns heute face-big-smile

Schönes WE.

Trommel
Member: Lochkartenstanzer
Lochkartenstanzer Aug 04, 2023 at 14:16:24 (UTC)
Goto Top
Zitat von @Trommel:

Unser täglich @jensgebken gib uns heute face-big-smile


Wenn er denn mal Reference Manuals lesen würde. Dafür sind die da.

lks