Vraag & Antwoord

Anders (software)

access 97/2000 tabelvraag

4 antwoorden
  • k heb een database met een tabel waarin storingen geregistreerd worden. De eerste keuze in een veld is software of hardware. Vervolgens naar een volgend veld waarin een keuzelijst staat met alle soft- en hardware. Wat ik eigenlijk wil is: Bij het kiezen van het eerste veld: software of hardware dat het volgende veld niet met alle hard-en software tevoorschijnt komt maar afhankelijk van wat er in veld 1 gekozen is. Dus kies ik hardware dan wil ik een keuze lijst in veld 2 met alle hardware. Dit maakt het overzichtelijker anders zijn er teveel mogelijheden. Weet iemand hoe ik dit kan bewerkstelligen? Via macro's of iets dergelijks? Bedankt!
  • Ik heb even een opzetje gemaakt met twee tabellen. RFS is de hoofdtabel, errors de tabel met de foutbeschrijvingen. RFS: [code:1:5a05a531a4] ID HW/SW Error [/code:1:5a05a531a4] Errors: [code:1:5a05a531a4] ErrorID HW/SW Error [/code:1:5a05a531a4] Alle velden in de tabellen zijn normale velden (geen comboboxes en zo). In HW/SW vul je in of het een software of hardware fout betreft (dit kun je evt via een combobox doen). Maak een formulier gebaseerd op RFS. Verander de eigenschappen van het veld 'error' naar combobox en bouw de query voor de rowsource. Die combobox is gebaseerd op de tabel errors, en de query vergelijkt de waarde van HW/SW die je net hebt ingevuld in het formulier met die in de tabel en laat alleen die zien waarbij ze gelijk zijn. De SQL-code voor de rowsource ziet er als volgt uit: [code:1:5a05a531a4] SELECT Errors.Error FROM Errors WHERE (((Errors.[HW/SW])=[Forms]![rfs]![HW/SW])); [/code:1:5a05a531a4] Enigste probleem dat je nog hebt is dat de query slechts een keer uitgevoerd wordt (de eerste keer dat je de combobox activeert). Je moet dus iedere keer dat de combobox geactiveerd wordt, deze refreshen. Dat doe je door in VBA bv een stukje code te bouwen en dat te knopen aan de event 'on got focus' van het veld error. [code:1:5a05a531a4] Private Sub Error_GotFocus() Error.Requery End Sub [/code:1:5a05a531a4] Verder moet je misschien nog wat fout-afhandeling inbouwen, maar dat hangt van jezelf af. BV als iemand eerst HW had gekozen en een hardware error had opgegeven en daarna HW verandert in SW. Dan heb je dus een sw geselecteerd, maar de error staat nog steeds op een HW error.
  • Natuurlijk bedankt voor je reaktie maar ik snap er niets van. Wat is een combobox en wat is een rowsource. En dan niet te vergeten hoe voer ik een "on got focus"? Wellicht te simpel voor je maar toch bedankt!
  • 'Combobox' is een invoerveld met een pijltje aan de rechterkant. Als je op dat pijlje klikt krijg je een lijstje. Weet niet hoe dat in het Nederlands heet. De 'row source' is een van de eigenschappen van de combobox en geeft aan uit welke tabel welke gegevens gehaald worden. Ook hier weet ik de nederlandse benaming niet voor (met de kromme vertalingen die je af een toe tegenkomt zou het iets van rij-bron zijn). Als je je formulier gemnaakt hebt, gebaseerd op de tabel, kun je in 'design-view' (ontwerp-weergave?) rechts klikken op het veld error en dan kies je 'change to' (verander in?). Je kunt het type dan veranderen van tekst naar 'listbox' (lijstdoos?) of 'combobox' (keuzedoos?). Na dat gedaan te hebben klik je weer met rechts en kies je 'properties' (eigenschappen). Kies het tabblad data (gegevens?). Je kunt daar een aantal zaken invullen. In ACC97 (engels) is de eerste 'control source'. Dit geeft aan welk veld van een tabel aan dit veld in het formulier geknoopt is. De tweede is 'input mask' (invoer masker?). De 3e is 'row source type' en geeft aan wat de bron is (dit kom je alleen tegen als het veld van het type combobox of listbox is) en zou nu iets moeten aangeven van 'table/query'. Het 4e dat je kunt invullen is de 'row source'. Nadat je de 'row source' hebt opgegeven kies je het tabblad event (gebeurtenis?). Hierin staan alle events ten aanzien van dit veld. Voorbeelden zijn 'on click' (als je klikt op dat veld), 'on dbl click' (als je dubbel klikt op dat veld) en 'on got focus' (als het veld de focus krijgt). Plaats de cursor in 'on got focus' (of hoe dat in het nederlands dan ook mag heten) en klik op de 3 puntjes. Kies 'code builder' en je krijgt een nieuw scherm waarin je de regel 'error.requery' (zonder aanhalingstekens) kunt typen op de plek waar de cursor staat. Venster afsluiten, formulier in 'form view' schakelen en testen. Hoop dat dit lange verhaal een beetje duidelijk is.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.