Ako vytvoriť parametrický dotaz prostredníctvom prístupu k údajom objektov

DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:142938
Tento článok bol archivovaný. Je publikovaný v aktuálnej podobe a už nebude aktualizovaný.
SUHRN
Tento článok vysvetľuje, ako vytvoriť a používať parametrický dotaz pomocou údajovObjekty programu Access (DAO). Parametrický dotaz je typ QueryDef špecifické predatabázový nástroj Microsoft Jet, používa program Visual Basic, Microsoft Access,a iné výrobky. Parametrické dotazy umožňuje automatizáciu procesumeniace sa kritériá dotazu. Pomocou parametrického dotazu, môžete nastaviť nové hodnotypre parametre vždy, keď spustíte dotaz.
DALSIE INFORMACIE
Parametrický dotaz je vytvorená v programe pomocou CreateQueryDef()Funkcia. Nasleduje syntax pre CreateQueryDef() funkcie:
Nastaviť querydef = databázy.CreateQueryDef (meno, sqltext)

QueryDef - objektu QueryDef
databáza - objektu databázy
názov - reťazec obsahujúci názov dotazu
sqltext - reťazec obsahujúci text dotazu SQL
Sqltext reťazec je voliteľná alebo môže byť definované pomocou.SQLVlastnosť QueryDef. Ak chcete vytvoriť parametrický dotaz, umiestnitePARAMETRE vyhlásenie v sqltext reťazci. Tu je syntax prePARAMETRE vyhlásenie:
PARAMETRE parametertext datatype

parametertext - názov parametra
údajový typ - typ parametra
Nasledujúca tabuľka uvádza príslušný typ údajov Microsoft Jet SQLže sa môže použiť parametre vyhlásenie, ako ajzodpovedajúce pole typu Microsoft Access, premennej typ jazyka Visual Basic,a konštantnú hodnotu z DATACONS.TXT súboru.

Poznámka: Visual Basic 4.0 a novšej a Office 95 a novších verziách Basicpodporujú ďalšie typy údajov (Boolean, Byte, bajtové pole). Nižšie uvedená tabuľkauvádza rovnocenné základné typy pre staršie verzie základného:
   Microsoft      Microsoft        Visual   Access SQL     Access Field     Basic Type      DATACONS.TXT Constant   ---------------------------------------------------------------------   Bit            Yes/No           Integer/Boolean   DB_BOOLEAN = 1   Byte           Byte             Integer/Byte      DB_BYTE = 2   Short          Integer          Integer           DB_INTEGER = 3   Long           Long Integer     Long              DB_LONG = 4   Currency       Currency         Double            DB_CURRENCY = 5   IEEESingle     Single           Single            DB_SINGLE = 6   IEEEDouble     Double           Double            DB_DOUBLE = 7   DateTime       Date/Time        Variant           DB_DATE = 8   Binary         Binary           String/Byte Array   Text           Text             String            DB_TEXT = 10   LongBinary     OLE Object       String/Byte Array DB_LONGBINARY = 11   LongText       Memo             String            DB_MEMO = 12				
Po parametre vyhlásenie v sqltext reťazci, miesto dotaz.Dotaz môže byť parameter (parametertext) s názvom vPARAMETRE vyhlásenie. Kdekoľvek dotazu odkazuje na parameter, aktuálnehodnota sa nahradí, keď dotaz je popravený.

Napríklad, ak je text dotazu:
PARAMETRE som krátky; Vyberte priečinok od tbl kde priečinok = i
a parameter bol nastavený na 42 v programe, parameter by sanahradené a výsledné dotazu by sa rovná:
Vyberte priečinok od tbl kde priečinok = 42

Viaceré parametre v parametre vyhlásenie

Je tiež možné mať viacero parametrov v parametre vyhlásenie.Vykonáte to použitie čiarok na oddeľovanie parametrov takto:
PARAMETRE parametertext datatype, údajový typ parametertext...
Pred vykonaním dotaz nastaviť parametre pomocou nasledovnej syntaxe:
QueryDef! parametertext = hodnota

QueryDef - objektu QueryDef parametertext - názov parametra vo výkaze parametre hodnota - hodnota parametra bude mať
V predchádzajúcom príklade by ste použiť QD! i = 42 pred vykonaním dotaz.

Akonáhle sú nastavené parametre, ste pripravení spustiť dotaz. Existujútri metódy (spustiť, CreateDynaset a CreateSnapshot) podporovanéQueryDef, že spôsobí dotazu.

Príklad parametrické dotazy

Nasledujúci príklad ilustruje použitie krátkych parameter v dotaze.V príklade má dve časti. Prvá časť vytvorí nové QueryDef preBIBLIO.MDB (vzorka databázy Microsoft Access že lode s VisualBasic) a by mala byť vykonaná len raz. Druhá časť používa QueryDefAk chcete vytvoriť snímku, ktorá sa potom zobrazí. Otestovať príklad, umiestnitekaždý nasledujúci kód segmentov na CommandButton kliknite na položku udalosti.

Poznámka: Existuje niekoľko menších rozdielov medzi staršie DAO syntax použiťVisual Basic 3.0 a prístup 1.x a novšie syntax použiť navzájomvýrobky, na ktoré sa tento článok sa uplatňuje. Staré a nové DAO syntax sú oznaèenéPoznámky:
   'Create QueryDef "by date"   Dim Db As Database   Dim Qd As QueryDef   Set Db = OpenDatabase("C:\VB\BIBLIO.MDB")                 ' Old   Set Db = DBEngine(0).OpenDatabase("C:\VB4-32\BIBLIO.MDB") ' New   Set Qd = Db.CreateQueryDef("By date") 'Create the query "By date"   QdText = "PARAMETERS dp Short; "   QdText = QdText & "SELECT * from Titles WHERE [Year Published] = dp"   Qd.SQL = QdText   Print Qd.SQL   Qd.Close   ' Create Snapshot from QueryDef   Dim Rs As Snapshot                   ' Old   Set Qd = Db.OpenQueryDef("By Date")  ' Old   Dim Rs As Recordset                  ' New   Set Qd = Db.QueryDefs("By Date")     ' New   Qd!dp = 1991                         'Set the value of the dp parameter   Set Rs = Qd.CreateSnapshot()                ' Old   Set Rs = Qd.OpenRecordset(dbOpenSnapshot)   ' New   Do Until Rs.EOF      For i = 1 To Rs.Fields.Count - 1         Print Rs(i);                   'Display results of query      Next      Print      Rs.MoveNext   Loop   Rs.Close   Qd.Close   Db.Close
Druhý príklad zobrazuje, ako použiť akciu parametrický dotaz. Všimnite si, žeakčné dotazy sú vyvolaná s spustiť metódu, nie CreateDynaset aleboCreateSnapshot, pretože nemôže vrátiť záznamy:
   'Create QueryDef   Dim Db As Database   Dim Qd As QueryDef   Set Db = OpenDatabase("C:\VB\BIBLIO.MDB")                 ' Old   Set Db = DBEngine(0).OpenDatabase("C:\VB4-32\BIBLIO.MDB") ' New   Set Qd = Db.CreateQueryDef("Delete by name") 'Create the query   QdText = "PARAMETERS p1 Text; "   QdText = QdText & "DELETE * FROM Authors WHERE Author = p1;"   Qd.SQL = QdText   Print Qd.SQL   Qd.Close   ' Execute the QueryDef   Set Qd = Db.OpenQueryDef("Delete by name")  ' Old   Set Qd = Db.QueryDefs("Delete by name")     ' New   Qd!p1 = "Bob"   Qd.Execute           'Perform the action query   Qd.Close   Db.Close				
ODKAZY
Viac informácií o parametrické dotazy je k dispozícii v jazyku Visual Basic,verzia 3.0 a 4.0, "Profesionálne funkcie Book 2."
Parametrický querydefs

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 142938 – Posledná kontrola: 12/04/2015 13:06:07 – Revízia: 2.0

Microsoft Visual Basic 5.0 Professional Edition, Microsoft Access 1.0 Standard Edition, Microsoft Access 1.1 Standard Edition, Microsoft Access 2.0 Standard Edition, Microsoft Access 97 Standard Edition, Microsoft Excel 97 Standard Edition, Microsoft Word 97 Standard Edition

  • kbnosurvey kbarchive kbhowto kbprogramming kbmt KB142938 KbMtsk
Pripomienky