Datums in access

  • Onderwerp starter Onderwerp starter VHU
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

VHU

Gebruiker
Lid geworden
15 nov 2005
Berichten
96
Geachte,

Ik heb deze vraag voor het eerst gesteld onderde titel MSAC maar dat is niet de juiste manier.

In bijlage een bestandje waar mijn probleem tot uiting komt.
10/01/2008 wordt 01/10/2008, eenmaal de 12de dag voorbij is er geen probleem.
Dit probleem is inderdaad al meerdere malen besproken in diverse forums maar ik kom er niet uit.

Ik heb geprobeerd om via het numeriek getal het juiste resultaat te krijgen, maar dan krijg ik de datumvan het getal 0.

Dank u bij voorbaat
 

Bijlagen

Visual Basic gebruikt intern (bij berekeningen en vergelijkingen) altijd Amerikaanse notatie. Je kunt het best dus de volgende code gebruiken
Code:
format(datum_die_je_wilt_testen, "mm/dd/yyyy")
 
Ja, dat is waardeloos die datums. Intern worden die datums bewaard als een long. Kijk maar als je in je immediate window
Code:
?clng(date())
geeft, het resultaat is dan 39594. Dat is het aantal dagen na 30-12-1899.

Dus als je je datum in je database opslaat als een long dan hoef je je geen zorgen meer te maken dat dat niet goed gaat.
Code:
?format(39594, "dd/mm/yyyy")
geeft weer
26-05-2008

HTH:D
 
Dag Guus,

Ik geraak er niet uit.
Ik heb het probleem (19/11/2007) van collega Basbrommer gevonden en proberen te volgen, dit is volgens mij vergelijkbaar met mijn probleem.

De datums blijven er verkeerd doorkomen.

Dus alle hulp is nog welkom

Groeten
 
Op mijn manier komen je datums er altijd goed uit. Heb je die al geprobeerd?

Ik kan je rar bestandje niet lezen want dat hebben ze hier niet.
 
Geachte,

Ik heb de zoekdatum omgezet met de functie CLng.

Als de zoekdatum niet gevonden wordt dan wordt de tabel geupgrade ahv de zoekdatum. Die datum moet dan in het veld lkDatum geplaatst worden maar dat gebeurt niet. De upgrade gebeurt wel.

Als ik zelf een datum vb1/07/2008 invul in de tabel en ga nadien zoeken dan wordt de tabel niet geupgrade, dit werkt perfect, maar dan krijg ik de foutmelding "Kan veld | niet vinden waaraan verwezen wordt in de expressie"

Het gegevenstype van lkDatum is nummeriek en de veldlengte is lange integer

Wat doe ik hier fout??

Groeten
 

Bijlagen

Ik heb je code een beetje aangepast:
Code:
Private Sub Controle()

    Dim stDocNaam As String
    Dim stQryNaam As String
    Dim vntRetVal As Variant

    If KaderControle = 1 And KaderCampus = 1 Then
         vntRetVal = DLookup("[lkDatum]", "[tblLokaaskruistabelCH]", "[lkDatum]=" & CLng([Forms]![frmZoekenControle]![ZoekenDatumControle]))
         If Len(Nz(vntRetVal),"") > 0 Then ' Default value will be ZLS when null.
            stDocNaam = "frmLokaasCH"
            DoCmd.OpenForm stDocNaam, , , (CLng([Forms]![frmZoekenControle]![ZoekenDatumControle]) = [lkDatum])
         Else
             stQryNaam = "qryLokaastabelCH"
             DoCmd.OpenQuery stQryNaam
             CurrentDb.Execute "UPDATE [qryLokaasCH] SET [qryLokaasCH]![lkDatum] = " & CLng([ZoekenDatumControle]) & " WHERE (([qryLokaasCH]![lkDatum]) Is Null)"
            
             stDocNaam = "frmLokaasCH"
             DoCmd.OpenForm stDocNaam, , , (CLng([Forms]![frmZoekenControle]![ZoekenDatumControle]) = [lkDatum]), acFormEdit
         
         End If
    End If

End Sub
Een IF statement reageert alleen op booleans. Het DLookup statement geeft in jou geval een datum of Null terug. Beide zijn altijd false. Ik heb ook je SELECT CASE statement aangepast omdat die op die plek niet zinnig is. Maar misschien is die code wel onderdeel van veel meer.

Share and Enjoy!
 
Dag Guus2005

Bedankt, ik heb mijn code aangepast.

Bij verder nazicht heb ik na aanpassing van ronde haken, weglaten van vierkante haken, bijplaatsen van " " verkregen wat ik wil.

De select case is inderdaad een stukje van een groter geheel, ik heb namelijk verschillende kontroles op verschillende plaatsen en dan is een select case een gemakkelijke tool

Hartelijk bedankt en tot het volgende "probleem"

Groeten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan