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

[Access 2003] Ja/nee automatisch vullen

Pagina: 1
Acties:

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 07:59
Ik heb een database gemaakt in MS Access. Hierin staan alle gegevens van onze medewerkers. Adressen, telefoonnummers, maar ook bepaalde cursussen.

Nu is het zo dat die cursussen een bepaalde geldigheidsduur hebben. Tevens zijn er 5 cursussen die door iedereen gevolgd moeten zijn, zo niet, dan zijn ze niet current.
Ik heb dus in de tabel met persoonlijke gegevens een aantal kolommen. Deze worden door mij gevuld met de verloopdatum van de betreffende cursus. Naast elke datumkolom heb ik een kolom met een ja/nee waarde. Zo kan ik snel een overzicht krijgen wie er niet en wie er wel current is.

Wat ik nu graag zou willen, is dat de ja/nee waarden door het programma aangepast worden naar gelang een datum verstreken is.
Daarnaast zou ik dan van 5 ja/nee waarden een totale ja/nee waarde willen zien die alleen ja weergeeft als alle 5 de cursussen de waarde ja hebben.

Ik heb enkele jaren geleden een blauwe maandag op m’n opleiding wat over MS Access gehad. Ik weet er alleen nog te weinig van om bovenstaand vraagstuk op te kunnen lossen. Ik krijg komend jaar een 4 daagse cursus Access, maar hoop bovenstaande zsm. (met een klein beetje hulp) op te kunnen lossen. Ben er de afgelopen dagen een aantal maal mee bezig geweest, maar ook met behulp van GoT en Google kom ik er (nog) niet uit.

  • Moirraine
  • Registratie: Mei 2008
  • Laatst online: 13-02-2024
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Public sub HuidigeKlantenUpdaten()

with currentdb.openrecordset("SELECT * FROM JouwTabel WHERE JouwVerloopDatumVeld > Date() ")
    Do while not .EOF = true
        .edit
         !JouwJa/NeeVeld = true
        .update
        .movenext
         loop
    .close
end with

end sub


vb subje
Periodiek draaien, bijvoorbeeld bij het starten van de database en je bent er.

Jouwtabel en de velden JouwVerloopDatumVeld en JouwJa/NeeVeld uiteraard vervangen door je eigen waarden.

Je kunt ook een Bijwerk query maken, maar daar komen van de waarschuwing bij ( "U staat op het punt een query blablabla").

Spelfouten onder voorbehoud.

[ Voor 4% gewijzigd door Moirraine op 16-12-2009 19:24 . Reden: .edit en .update vergeten ]


  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik zou dit persoonlijk niet zo doen, maar conditional formatting ("less than" met Now()) toepassen in een multiple items form.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 07:59
Moirraine schreef op woensdag 16 december 2009 @ 19:20:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Public sub HuidigeKlantenUpdaten()

with currentdb.openrecordset("SELECT * FROM JouwTabel WHERE JouwVerloopDatumVeld > Date() ")
    Do while not .EOF = true
        .edit
         !JouwJa/NeeVeld = true
        .update
        .movenext
         loop
    .close
end with

end sub


vb subje
Periodiek draaien, bijvoorbeeld bij het starten van de database en je bent er.

Jouwtabel en de velden JouwVerloopDatumVeld en JouwJa/NeeVeld uiteraard vervangen door je eigen waarden.

Je kunt ook een Bijwerk query maken, maar daar komen van de waarschuwing bij ( "U staat op het punt een query blablabla").

Spelfouten onder voorbehoud.
Hier ga ik nu even induiken, bedankt voor de tip. Zal zsm wat feedback posten.
pedorus schreef op woensdag 16 december 2009 @ 21:32:
Ik zou dit persoonlijk niet zo doen, maar conditional formatting ("less than" met Now()) toepassen in een multiple items form.
Als ik het formulier open in ontwerpweergave en het ja/nee vakje selecteer is voorwaardelijke opmaak niet beschikbaar. Klik ik een ander element aan (bijvoorbeeld het datumveld) dan is voorwaardelijke opmaak wel beschikbaar.
Daarnaast ben ik nog benieuwd naar jouw reden, waarom je het liever met conditonal formatting doet?

[ Voor 3% gewijzigd door Niek_ op 17-12-2009 08:12 ]


  • Moirraine
  • Registratie: Mei 2008
  • Laatst online: 13-02-2024
Conditional formatting is ook een optie inderdaad, maar dan om een andere reden.

Stel, je doet genoemde conditional format en geeft aan dat die records dikgedrukt moeten worden. In een gegevensblad worden dan alle records die dus verlopen zijn dikgedrukt, dan zie je
a) alle records, dus niet alleen de verlopen
b) worden alle verlopen records dikgedrukt, ook makkelijk te herkennen dus (waarschijnlijk makkelijker dan dat je een vinkje aan en uit zet). Dan kun je sorteren ook sorteren op bijv achternaam en toch overzicht houden. Let wel dat Conditional formatting in grote lijsten (2500+ records) erg traag kan worden, zeker als je de database splitst en over een netwerk deelt.
c) je kunt het ja/nee veld schrappen.

Het vinkje dat je aan en uit zet redundant, omdat je immers al aan het datum veld kunt zien of deze verlopen is. dan zit je ook niet met een recordset die je moet openen en sluiten en dus krijg je geen fouten.
De reden dat ik een recordset doorloop en niet het commando CurrentDB.Execute(<BijwerkQuery>) gebruik, is omdat ALS er een fout optreed, je deze makkelijker kan vinden. Conditional Formatting kan even lastig zijn als je het nog nooit eerder gedaan hebt om hem aan het draaien te krijgen, maar als deze het eenmaal doet heb je er geen omkijken meer naar.

  • Niek_
  • Registratie: Februari 2002
  • Laatst online: 07:59
Ah, ik snap nu ook waarom conditional formatting niet werkte op het ja/nee veld.
Ik zou dus ook de verlopen datums in het rood kunnen weergeven met conditional formatting. Dat is inderdaad wel een handige manier om snel het overzicht te krijgen.

Bedankt voor jullie hulp en uitleg.
Pagina: 1