verwijderquery van uit een menu

Status
Niet open voor verdere reacties.

AnneliseH

Gebruiker
Lid geworden
6 jan 2020
Berichten
6
Ik heb verschillende verwijderquery's gemaakt die werken, records < 01-01-2015 worden uit diverse bestanden verwijderd. De datum is handmatig in de query's gezet. Graag wil ik die datum vanuit een menu elk jaar kunnen wijzigen zonder de query's te wijzigen, de gebruikers kunnen dat niet.

Zie de bijlageverwAT.PNG
 
Dat kan uiteraard; zelf zou ik de query laten uitvoeren vanaf het formulier, zodat je de hele syntax vanaf het formulier samenstelt.
 
Wat ik meestal doe: ik kopieer de SQL van de complete huidige query, dus inclusief het datumfilter. Voorbeeldje:
1. Dit is de huidige query: DELETE * FROM gebdatum WHERE gebdat<#1/1/1957#;. Hier moet de datum dus uit een tekstvak komen.
2. Onder een knop hang je deze actie, met flexibele datum
Code:
Private Sub cmdVerwijderen_Click()
    With DoCmd
        .SetWarnings False
        .RunSQL "DELETE * FROM gebdatum WHERE CDbl(gebdat) < " & CDbl(Me.txtDatum), dbFailOnError
        .SetWarnings False
    End With
End Sub
Het enige stukje dat een beetje tricky is, is de conversie van de datum naar een getal (CDbl(gebdat) om de datums uit de tabel te converteren, en CDbl(Me.txtDatum) om de formulierdatum te converteren). Dit is nodig omdat je in VBA met Amerikaanse datums werkt, en op je formulier vermoedelijk met Europese. En dan krijg je problemen met datums als 10-5: is dat 10 mei, of 5 oktober? Door de datum terug te rekenen naar een getal (een datum is ook niets anders als een getal) voorkom je dat je de verkeerde datums verwijdert.
 
Hallo,

als je altijd 1-1-jaartal gebruikt hoeft die omzetting niet. Ik dacht trouwens dat de laatste versies van Access daar iets slimmer mee omgaan als je aan het formulierveld een datum formatering geeft. Ik ben daar niet 100% zeker van maar dacht het wel.
 
Ik dacht trouwens dat de laatste versies van Access daar iets slimmer mee omgaan als je aan het formulierveld een datum formatering geeft. Ik ben daar niet 100% zeker van maar dacht het wel.
Nee dus.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan