Het creëren parameter query's met Microsoft Access VBA ( Visual Basic for Applications ) gaat met behulp van voorgedefinieerde objecten Access 's , waaronder de QueryDef en database objecten. De query string gebruikt met deze objecten is hetzelfde gebruikt bij het maken van Access-query's zonder VBA ( bijv. " SELECT * van mytable WAAR myfield = [ user_entered_parameter ] " ) . Wat je nodig hebt Microsoft Access Toon Meer Aanwijzingen 1 Open Access en maak een tabel van de steekproef gegevens met behulp van de volgende rijen . Voer tekst in de eerste rij als veldnamen van de tabel. Boek , datesold , netsalefurthering woorden , 2009/12/01 , $ 5.03furthering woorden , 2009/12/03 , $ 4.97der meisterstringer , 12/5/2009 , $ 1.97der meisterstringer , 2009/12/06 , $ 0,97 kopen van 2 Sla de tabel als "boeken ", voer dan de Visual Basic IDE ( Integrated Development Environment ) door op ' Alt - F11 . " 3 Klik op " invoegen ", gevolgd door" Module "op de IDE 's werkbalk , dan is de volgende code in het code-venster plakken : Public sub param_q_select ( ) Dim db als DAO.DatabaseDim qd Zoals DAO.QueryDefDim sqry Zoals StringSet db = CurrentDbsqry = " select * FROM boeken WHERE boek graag [Enter boektitel ] " Set qd = db.CreateQueryDef ( " qpSelect " , sqry ) End Sub 4 de macro uitvoeren door de cursor ergens in deze subroutine en druk op " F5 . " 5 Keer terug naar Access en sluit de navigatie raam naar links als het open is . Heropen de raam en ziet de nieuwe , opgeslagen query ( " qpSelect " ) . Dubbelklik op deze query om het uit te voeren , en typ " * bont * " op de prompt . Let op de resultaten van de query : alleen de rijen met " het bevorderen woorden " worden getoond 6 Terug naar de IDE door op ' Alt - F11 , " en de macro uitvoeren met behulp van instructies Stap 4's . . Let op de foutmelding die verschijnt deze keer ( " Object ' qpSelect ' bestaat al" ) 7 Herzien van de code om de fout te voorkomen door het te vervangen met deze code : . Public sub param_q_select ( ) Dim db als DAO.DatabaseDim qd Zoals DAO.QueryDefDim sqry Zoals StringSet db = CurrentDbOn Error GoTo skip_deletedb.QueryDefs.Delete " qpSelect " skip_delete : sqry = " select * FROM boeken WHERE boek graag [Enter boektitel ] " Stel qd = db.CreateQueryDef ( " qpSelect " , sqry ) End Sub 8 Re - run de code met behulp van instructies Stap 4 's . Merk op dat er geen fout deze keer 9 Herziening van de macro zodat de gebruiker uw programma 's kunt kiezen welk gebied om een parameter query te maken van : . Kopieer de volledige param_q_select subroutine en plak het in een leeg gebied van het venster code . Hernoem deze dupliceren als param_q_choose_field 10 Vervang de bestaande programmacode van param_q_choose_field , tussen de "op fout ... " en " End Sub " verklaringen . Typ of plak deze code in plaats : Dim sfsf = InputBox ( " Voer de naam van het veld " ) sqry = " select * FROM boeken WHERE " & sf & " willen [ Enter " & sf & " ] " On Error GoTo skip_deletedb.QueryDefs.Delete " qpSelect " skip_delete : Set qd = db.CreateQueryDef ( " qpSelect " , sqry ) End Sub 11 Re - lopen de subroutine met behulp Stap 4 's instructies , en typ " netsale " wanneer de " Enter veldnaam " prompt verschijnt . 12 Voer de query die door de subroutine met Stap 5 's instructies. Echter , voer " * 0 * " wanneer gevraagd wordt om de netsale parameter . Druk op "Enter " en merkt dat alleen rijen wiens veld " netsale " bevat een " 0 " werden teruggestuurd .
|