Vraag & Antwoord

Programmeren

(access 97) koppelling dropdown en subformulier via vba+sql

3 antwoorden
  • Als stagiair binnen een bank werk ik als bij-opdracht aan een probleem- en actieregister in MS Access 97. Bij het formulier om de problemen, en de daaraan gekoppelde acties, te bewerken, wil ik aan de hand van een dropdown menu het probleemnummer selecteren, om vervolgens op basis daarvan de andere gegevens op te halen: - de gegevens uit de tabel tbl_probleem naar het hoofdformulier - dit werkt ondertussen (grotendeels) - de gegevens uit de tabel tbl_actie naar het subformulier - hier gaat het mis onder het dropdown-menu zit de volgende code: [code:1:738009d44d]Option Compare Database Option Explicit 'haal de gegevens uit tbl_probleem op naar het hoofdformulier, op basis van het geselecteerde probleemnummer Private Sub txt_probleemnummer_Change() txt_Prioriteit = DLookup("[prioriteit]", "tbl_probleem", "[probleemnummer] =" _ & Forms!frm_probleem_bewerk!txt_Probleemnummer) txt_Onderwerp = DLookup("[onderwerp]", "tbl_probleem", "[probleemnummer] =" _ & Forms!frm_probleem_bewerk!txt_Probleemnummer) txt_Datum_ontstaan = DLookup("[datum ontstaan]", "tbl_probleem", "[probleemnummer] =" _ & Forms!frm_probleem_bewerk!txt_Probleemnummer) txt_Deadline = DLookup("[deadline]", "tbl_probleem", "[probleemnummer] =" _ & Forms!frm_probleem_bewerk!txt_Probleemnummer) txt_verantwoordelijke = DLookup("[verantwoordelijke]", "tbl_probleem", "[probleemnummer] =" _ & Forms!frm_probleem_bewerk!txt_Probleemnummer) txt_Herkomst = DLookup("[herkomst]", "tbl_probleem", "[probleemnummer] =" _ & Forms!frm_probleem_bewerk!txt_Probleemnummer) txt_Probleem = DLookup("[probleem]", "tbl_probleem", "[probleemnummer] =" _ & Forms!frm_probleem_bewerk!txt_Probleemnummer) txt_Aanbeveling = DLookup("[aanbeveling]", "tbl_probleem", "[probleemnummer] =" _ & Forms!frm_probleem_bewerk!txt_Probleemnummer) 'haal de bijbehorende gegevens uit tbl_actie op naar het subformulier [frm_probleem_bewerk Subformulier].Form.RecordSource = "SELECT tbl_actie.actie, tbl_actie.status_huidig, " & _ "tbl_actie.status_oud FROM " & _ "tbl_actie WHERE tbl_actie.probleemnummer= '" & _ Me![txt_Probleemnummer] & "'" [frm_probleem_bewerk Subformulier].Requery End Sub Sub Form_Load() Me!txt_Probleemnummer.RowSource = "SELECT DISTINCT probleemnummer FROM tbl_Probleem" End Sub[/code:1:738009d44d] als ik vervolgens een probleemnummer selecteer, krijg ik de foutmelding [quote:738009d44d]"fout 2001" tijdens uitvoering: u hebt de vorige bewerking geannuleerd[/quote:738009d44d] kan iemand mij vertellen wat er in de code foutzit?
  • update: ik heb wat zitten experimenteren, en kom tot de volgende conclusie: het probleem zit in de "WHERE" conditie - maak ik hier een absolute waarde van, dan werkt de code - in die zin dat dan natuurlijk de acties horende bij het nummer dat als absolute waarde is opgegeven worden opgehaald dit werkt dus: [code:1:af13a090d4]'haal de bijbehorende gegevens uit tbl_actie op naar het subformulier [frm_probleem_bewerk Subformulier].Form.RecordSource = "SELECT tbl_actie.actie, tbl_actie.status_huidig, " & _ "tbl_actie.status_oud FROM " & _ "tbl_actie WHERE tbl_actie.probleemnummer= 4" [frm_probleem_bewerk Subformulier].Requery[/code:1:af13a090d4] de fout zit dus volgens mij in dit stukje code: [code:1:af13a090d4] WHERE tbl_actie.probleemnummer= '" & _ Me![txt_probleemnummer] & "'"[/code:1:af13a090d4]
  • Inderdaad, in je "absolute" versie geef je de waarde numeriek door, terwijl je in de "dynamische" versie de waarde als string doorgeeft, door er quotes omheen te zetten. Probeer eens: "...WHERE tbl_actie.probleemnummer= " & Me![txt_probleemnummer] In je DLookup's doe je het wel goed.

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.