Keuzelijst aanvullen a.h.v. vinkje

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

fmeca

Gebruiker
Lid geworden
7 sep 2009
Berichten
95
Het ene probleem opgelost, dient mijn grootste probleem zich aan. Hier worstel ik al weken mee.:rolleyes:

Ik wil dat een keuzelijst met invoervak, gelijk aangevuld wordt met een bepaald ID, door een vinkje, bij dit ID, uit te vinken. Deze staat standaard aan.

Ik heb een .doc document toegevoegd met enkele screenshots en een hopelijk duidelijke omschrijving van de werking en de doelstelling van mijn database inclusief het probleem.
De database is te groot (zelfs leeg) om mee te posten vandaar op deze manier.

Mijn dank zal groot zijn.

PS indien meer info gewenst FF melden.
 
Laatst bewerkt:
Ik snap niet helemaal wat je bedoelt met:
Met het vinkje (uit) (ent_typicalSel) geef ik aan welke Entiteit de Parent is en met de keuzelijst kies ik welke storing hier rechtstreeks aan wordt gekoppeld.(de parent typical).
Ik spreek graag een woordje over de grens, en bij voorkeur in een buitenland, maar wat je mett Parent bedoelt? Met een vinkje neem ik aan dat je een Ja/Nee veld bedoelt dat je aan- of uit kunt zetten. Maar wat betekent het dan voor je formulier? Wat zegt de status van dit veld?
Als ik de tabellenstructuur bekijk, dan heb je dus een tabel apparaten, (Entiteit) en een tabel met storingsinfo (functStoringen) met een aantal vaste storingsomschrijvingen.
Beide tabellen zijn aan elkaar verbonden via de tabel vbtr_Typical. Tot zover niks bijzonders. Zou allemaal tadellos (zoals ik al zei, ik spreek graag een woordje over de grens...) moeten werken.

Wat jij een verbindingstabel noemt, is eigenlijk je hoofdtabel in deze constructie. Je hebt namelijk van te voren dus bepaald welke storingen mogen worden geregistreerd aan welke apparaten. Als je bij schuurmachine hebt ingevoerd dat er een breuk in het netsnoer kan optreden, en je voegt die optie niet toe aan het apparaat Boormachine, dan zul je de klacht <Breuk in netsnoer> niet kunnen toepassen op een boormachine.

Komen we nu bij de vraag:
Hoe kan ik de keuzelijst updaten na of bij het veranderen van de status van het
vinkje op het hoofdformulier?

Eigenlijk is die vraag simpel te beantwoorden. Je hebt een query gemaakt op de keuzelijst die je gebruikt. Die zou ik er afhalen. Ik zou de query toekennen via VBA, en wel op twee plaatsen: de gebeurtenis <Bij laden> van het formulier, en de gebeurtenis <Na bijwerken> van de keuzelijst. De reden dat de constructie nu niet werkt, ligt in het feit dat je een vaste query aan de keuzelijst hebt hangen. Je wilt echter dat de query afhankelijk wordt van je selectievakje. Dat betekent voor het formulier, dat je dus twee queries nodig hebt, voor elke status van het selectievakje één.
Door bij het laden van het formulier één van de queries uit te laten voeren, zorg je ervoor dat de keuzelijst werkt bij het starten. Door dezelfde actie te gebruiken voor de gebeurtenis <Na bijwerken> van het formulier zorg je ervoor dat de andere query wordt gebruikt als je de waarde van het selectievakje verandert.

Heb je hier hulp bij nodig, dan maak ik wel een voorbeeldje waar e.e.a. in is verwerkt.
 
Beste Michel,

Alvasrt bedankt voor de moeite, het is niet gemakkelijk de functionaliteit te doorgronden. Maar het is je grotendeels gelukt.
De oplossing die jij aandraagt heb ik ook gedachte, echter ik krijg de query die nu in de eigenschappen van de rijbron gedefinieerd wordt niet in VBA.
Want zoals ik in het .doc ik al schrijf. Na het openen en sluiten van de query (rijbron)zonder überhaupt (Ik srpiek ook ein bisschen across the border, ik pas mij aan) iets te wijzigen, is de keuzelijst 'wel' geupdate.

Dus in principe moet ik de rijbroncode in VBA runnen voor het openen van de keuzelijst, of na wijzigen van het vinkje. Waarbij de laatste denk ik, de beste is.

De code in de rijbron maakt de Query afhankelijk van de staus van het vinkje:
Code rijbron:
SELECT DISTINCT Entiteit.ID_Entiteitnr, Entiteit.ent_TagCode, FunctStoringen.ID_FuncStor, Entiteit.ent_Systeem, Entiteit.ent_Object FROM Entiteit INNER JOIN FunctStoringen ON Entiteit.ID_Entiteitnr = FunctStoringen.ID_Entiteitnr WHERE (((Entiteit.ent_TypicalSel)=False)) ORDER BY Entiteit.ent_TagCode, Entiteit.ent_Systeem;

In woorden: Toon alle entiteiten waarbij het vinkje 'uit' staat.(zijn dus parent = moederentiteit).waarbij ik de ID van de storing in feite selecteer voor een koppeling met deze gekozen entiteit.
Rest voor bij de vraag: Hoe krijg ik de rijbron code in VBA of hoe definieer ik een query in VBA.

Bijgevoegd doc toont enkele screenshots van een Parent entiteit en een Typical.

vr.gr.
Eric

PS een voorbeeldje is misschien makkelijk.
 
Laatst bewerkt:
Momenteel eindelijk de VBA gevonden om de Query te definieren.

Dim strSQL As String

strSQL = "SELECT DISTINCT Entiteit.ID_Entiteitnr, Entiteit.ent_TagCode, FunctStoringen.ID_FuncStor, Entiteit.ent_Systeem, Entiteit.ent_Object FROM Entiteit INNER JOIN FunctStoringen ON Entiteit.ID_Entiteitnr = FunctStoringen.ID_Entiteitnr WHERE (((Entiteit.ent_TypicalSel)=False)) ORDER BY Entiteit.ent_TagCode, Entiteit.ent_Systeem;"

Hiermee lukt het af en toe wel en af en toe niet. Het is nog ff zoeken waar en wanneer de instructie gestart moet worden.

Toch alvast iedereeen bedankt!
 
Ik zal de query nog voor je testen; kijken of ik tegen dezelfde problemen aanloop.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan