Oprettelse parameterforespørgsler med Microsoft Access VBA ( Visual Basic for Applications ) indebærer anvendelse af Access s foruddefinerede objekter , herunder QueryDef og database objekter. Søgestrengen bruges med disse objekter er den samme som anvendes , når du opretter Access forespørgsler uden VBA (fx " SELECT * fra MinTabel WHERE myfield = [ user_entered_parameter ] "). Ting du har brug
Microsoft Access
Vis Flere Instruktioner
1
Open Access og oprette en tabel af prøven data i følgende rækker. Indtast den første række tekst , som tabellens feltnavne.
Bog, datesold , netsalefurthering ord 12/1/2009 , $ 5.03furthering ord 2009/12/03 , $ 4.97der meisterstringer , 2009/12/05 , $ 1.97der meisterstringer , 2009/12/06 , $ 0,97
2
Gem tabellen som " bøger ", derefter indtaste Visual Basic IDE (Integrated Development Environment ) ved at trykke på " Alt- F11 . "
3
Klik på" indsæt ", efterfulgt af" Module " på IDE værktøjslinje , og derefter indsætte følgende kode i kodevinduet : Hej
Public sub param_q_select ( ) Dim db Som DAO.DatabaseDim qd Som DAO.QueryDefDim sqry Som StringSet db = CurrentDbsqry = " select * FROM bøger WHERE bog som [Enter bogtitel ] " Set qd = db.CreateQueryDef ( " qpSelect " sqry ) End Sub
4
Kør makroen ved at placere markøren et sted inde i denne subrutine og trykke på " F5 ".
5
Return til Access og lukke navigation vinduet på venstre, hvis den er åben . Genåbne vinduet og mærke den nye , opbevares forespørgsel ( " qpSelect "). Dobbeltklik på denne forespørgsel til at køre det , og skriv " * fur * " ved prompten. Bemærk forespørgslen resultater : kun de rækker med " der fremmer ordene" vises
6
Retur til IDE ved at trykke på " Alt- F11 ", og køre makroen ved hjælp Step 4 anvisninger. . Læg mærke til fejl, der vises denne gang ( " objekt" qpSelect 'eksisterer allerede " )
7
Revidere koden for at forhindre fejlen ved at erstatte den med denne kode: .
Public sub param_q_select ( ) Dim db Som DAO.DatabaseDim qd Som DAO.QueryDefDim sqry Som StringSet db = CurrentDbOn Fejl GoTo skip_deletedb.QueryDefs.Delete " qpSelect " skip_delete : sqry = " select * FROM bøger WHERE bog som [Enter bogtitel ] "Set qd = db.CreateQueryDef ( " qpSelect " , sqry ) End Sub
8
Re -run kode ved hjælp Step 4 anvisninger. Bemærk, at der er ingen fejl denne gang
9
Revidere makroen , så din programmets brugeren kan vælge, hvilke felter til at oprette en parameterforespørgsel fra : . Kopiere hele param_q_select subrutine og indsætte det i et tomt område af koden vinduet. Omdøb denne to eksemplarer param_q_choose_field
10
Erstat det eksisterende program kode param_q_choose_field , mellem "on fejlen ... " og " End Sub " udsagn . Indtast eller indsæt denne kode i stedet : Hej
Dim sfsf = InputBox ("Indtast feltnavn " ) sqry = " select * FROM bøger WHERE " & sf & " gerne [Enter " & sf & "] " On Error GoTo skip_deletedb.QueryDefs.Delete " qpSelect " skip_delete : Set qd = db.CreateQueryDef ( " qpSelect " , sqry ) End Sub
11
Re - køre underprogram hjælp Step 4 anvisninger og type " netsale ", når "Enter feltnavnet " prompt vises .
12
Kør forespørgslen skabt af subrutine hjælp Trin 5 anvisninger. Men indtaste " * 0 * ", når du bliver bedt om det netsale parameter. Tryk på " Enter" , og bemærk , at der kun rækker , hvis " netsale " felt indeholder et "0" blev returneret .