Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Access 2010] Weergave leeftijd en recordlijst

Pagina: 1
Acties:

Verwijderd

Topicstarter
Goeiemorgen!

Ik heb in Access 2010 een formulier gemaakt om contacten bij te houden.
Nu heb je de mogelijkheid om een geboortedatum in te vullen, waarna automatisch de leeftijd berekend wordt.
Dit loopt via een stukje code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 Public Sub Form_Current()
    Dim varAge As Variant
    If Not IsNull([Geboortedatum]) Then
    
        varAge = DateDiff("yyyy", [Geboortedatum], Now)

        If Date < DateSerial(Year(Now), Month([Geboortedatum]), Day([Geboortedatum])) Then
           varAge = varAge - 1
                    
        End If
    Else
        varAge = "n.b."
    End If
    
    If IsNumeric(varAge) Then
        [Leeftijd] = CInt(varAge)
    Else
        [Leeftijd] = varAge
    End If
End Sub

Private Sub Geboortedatum_AfterUpdate()
    Call Form_Current
End Sub


Nu werkt dit stukje prima, behalve als ik op een nieuwe record kom, dus via de recordkiezers. De leeftijd die dan weergegeven wordt is 111. Terwijl er geen geboortedatum ingevuld is. Any clues?
Voor een idee:
Afbeeldingslocatie: http://img692.imageshack.us/img692/6188/rel1l.jpg

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Breakpoint zetten op regel 3 en kijken waarom hij WEL door de If statement gaat? ;)

Going for adventure, lots of sun and a convertible! | GMT-8


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Blijkbaar is er voor geboortedatum een defaultwaarde ingesteld in formulier of tabel van 0, d.w.z. 1-1-1900.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Rupie
  • Registratie: Augustus 2006
  • Laatst online: 13-11 11:58
Ik ben niet heel bekend met VBA, maar is het ook niet zo dat IsNull wat anders is dan Empty?
heb even zitten lezen maar dat lijkt er niets mee te maken te hebben. Eerder een default value inderdaad. Kom je er niet mee weg om af te vragen op geboortedatum <> 01/01/1900?

[ Voor 50% gewijzigd door Rupie op 20-05-2011 11:19 ]

Desktop | Server | Laptop


Verwijderd

Topicstarter
Het zou wel kunnen dat er een defaultwaarde op geboortedatum zit, maar als ik een bestaande record heb zonder geboortedatum zie ik wel "n.b." en enkel bij een nieuwe record doet dit probleem zich voor. (wanneer ik dus nog geen nieuw "ID" heb)

Maar zoals Snake zei zal ik is kijken waarom hij wel door de If statement gaat.

[ Voor 6% gewijzigd door Verwijderd op 20-05-2011 19:31 ]


  • Marko_J
  • Registratie: Maart 2010
  • Laatst online: 22-11 14:21
Verwijderd schreef op vrijdag 20 mei 2011 @ 19:29:
Het zou wel kunnen dat er een defaultwaarde op geboortedatum zit, maar als ik een bestaande record heb zonder geboortedatum zie ik wel "n.b." en enkel bij een nieuwe record doet dit probleem zich voor. (wanneer ik dus nog geen nieuw "ID" heb)
Standaardwaarden gelden dan ook alleen bij nieuwe records. Kijk eens in ontwerpweergave van de tabel of het formulier.

Verwijderd

Topicstarter
In standaardwaarde stond niks.
Maar ik heb het probleem als volgt opgelost, eigenlijk vrij simpel:
code:
3
If Not IsNull([Geboortedatum]) And Not IsEmpty([Geboortedatum]) Then


Ik weet niet of het de meeste nette manier is, maar ik ben blij dat het nu wel werkt.
Bedankt voor de hulp!

[ Voor 22% gewijzigd door Verwijderd op 21-05-2011 14:33 ]

Pagina: 1