Toon posts:

[VBA in ACCESS] If statement met categorien

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een tijdsregistratie programma voor een sportvereniging en probeer dat te maken in access. Nu moeten de deelnemers afhankelijk van hun geboortedatum in een categorie ingedeeld worden. Ik krijg dit helaas niet werkend met de case en if statements die ik heb geprobeerd:


Kan iemand mij hierbij helpen?

Via het case statement:

Select Case Gebdatum
Case < Date And Gebdatum > 30 - 6 - 1993 Then
Categorie = "Pupillen"
Else

Via het if state

If Gebdatum < 1 - 7 - 1993 And Gebdatum > 30 - 6 - 1991 Then
Categorie = "Junioren C"

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 25-07 16:36

Dido

heforshe

Een else in een case statement? Ik maak me sterk dat er een werkend voorbeeld bij de ACCESS vba help staat bij het CASE statement. Daar al gekeken? Dan zou je namelijk geen enkel probleem mogen hebben, lijkt me?

Sterker nog, even gekeken, en de help in Access is uitstekend op dit punt. Hint: kijk naar wat er staat over CASE IS > Blaat.

[ Voor 23% gewijzigd door Dido op 04-01-2007 16:37 ]

Wat betekent mijn avatar?


Verwijderd

Topicstarter
Sorry de ELSE had ik er ook niet in staan, was een rommelig knip en plak foutje.

Maar de CASE statement is wel degene die zou moeten werken? Ook met datums?

Voel me dom dat ik het moet zeggen maar in die access help bij mij staat bijna niets... kan wel een stukje vinden met een vb van een CASE maar geen uitleg erover

[ Voor 39% gewijzigd door Verwijderd op 04-01-2007 18:01 ]


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Case of if, de manier waarop je je datum-literals mishandeld is tenenkrommend en zou meteen allerlei compile errors moeten geven... ;) M.a.w. als je hier wat neer zet zonder te kijken of het echt de code is die je gebruikt kunnen wij er ook niet veel mee.

Verder is het wel handig als je ook even aangeeft wat er niet goed gaat. Als er foutmeldingen zijn, tik die dan even over.

Check trouwens ook even of je VBA help file wel geisnstalleerd is. Dat is standaard namelijk niet het geval.

offtopic:
en welkom op GoT
:)

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


  • onkl
  • Registratie: Oktober 2002
  • Nu online
Kijk hier eens. Het laatste voorbeeld, met Case... To... is voor jou wel handig. En, inderdaad, met Niesje, je kan niet zomaar een datum intypen en ervanuitgaan dat VBA dat snapt. I.h.a. als je iets wilt weten, google op het zoekwoord (in 't Engels) gecombineerd met VBA en tutorial, in dit voorbeeld "VBA date notation tutorial". Dit is allemaal vrij simpele code, dus maakt het niet uit of je voorbeelden van Excel, Word of Access gebruikt, dat is qua code allemaal gelijk.

[ Voor 7% gewijzigd door onkl op 04-01-2007 20:52 ]


  • mhaket
  • Registratie: Augustus 2006
  • Laatst online: 25-07 12:04
Als ik het me goed herinner moet je in VBA ''#'om datums plaatsen dus:

VBScript:
1
2
3
4
5
6
7
IF (Gebdatum < #1-7-1993# AND Gebdatum > #30-6-1991#) THEN
   Categorie = "Junioren C"
ELSEIF (Gebdatum <= #30-6-1991# AND Gebdatum > #mm-dd-jjj#) THEN
   Categorie = "aaa"
ELSE
   Categorie = "bbb"
END IF


Zou ook even goed opletten met de '>' en de '<', voor je het weet mis je een datum.

Ik zou niet weten hoe je dit met CASE kunt oplossen omdat je twee vergelijkingen doet.

Verwijderd

Topicstarter
Ok bedankt voor jullie reacties. Helpen me al in een betere denkrichting. Heb nu weer iets om op verder te puzzelen.

Verwijderd

Topicstarter
Hele dag mee bezig geweest maar hij werkt, zat hem in de #:

Het probleem is nu wel dat de code elk jaar aangepast moet worden. Zit nog even voor mezelf te prakiseren hoe ik dat het beste kan oplossen. Zal wel iets richting een sysdate - gebdate worden. dat getal moet dan weer tussen een paar case statements liggen.


Private Sub Categorie_GotFocus()

Select Case Gebdatum
Case #1/1/1993# To Date
Categorie = "Pupillen"

Case #6/30/1991# To #1/7/1993#
Categorie = "Junioren C"

Case #6/30/1989# To #1/7/1991#
Categorie = "Junioren B"

Case #6/30/1987# To #1/7/1989#
Categorie = "Junioren A"

Case #6/30/1966# To #1/7/1997#
Categorie = "(Neo)Senioren "

Case #6/30/1900# To #1/7/1966#
Categorie = " Veteranen "

Case Else
MsgBox "Dit is geen geldige geboorte datum"

End Select


End Sub
Pagina: 1