Ako získať prístup k výsledkom dotazu VBA

...

Získať výsledky dotazu v Accesse pomocou VBA.

Vedieť, ako čítať výsledky z dotazu programu Microsoft Access, vám môže pomôcť zvýšiť dynamiku vašej aplikácie Access. Access je súčasťou balíka Microsoft Office a používa sa na vytváranie relačných databáz. Visual Basic for Applications (VBA) možno použiť v Accesse na vytváranie aplikácií pre Windows a získavanie údajov z databázy. Dotaz je vytvorený pomocou príkazov SQL (Structured Query Language) na vyžiadanie informácií z databázy.

Krok 1

Spustite Microsoft Office Access 2007 a vyberte „Prázdna databáza“ a potom kliknite na „Vytvoriť“. Kliknite na „Nástroje databázy“ a vyberte „Visual Basic“. Kliknite na pole „Vložiť“ a vyberte „Modul“.

Video dňa

Napíšte "Private sub readQueryResults" a stlačte "Enter" na vytvorenie nového podprogramu.

Krok 2

Zadajte nasledovné na deklarovanie premenných, ktoré použijete na čítanie výsledkov dotazu:

Dim RecordSt As Recordset Dim dBase As Database Dim stringSQL as String Dim rCnt As Integer

Krok 3

Ak chcete vytvoriť tabuľku „CityTbl“, zadajte nasledovné:

stringSQL = "CREATE TABLE CityTbl (Mesto TEXT(25), Stav TEXT(25));" DoCmd. RunSQL (stringSQL)

Krok 4

Ak chcete do tabuľky „CityTbl“ pridať dva nové záznamy, zadajte nasledujúce:

stringSQL = "INSERT INTO CityTbl ([Mesto], [Štát] ) " stringSQL = stringSQL & "VALUES ('Fort Worth', 'Texas');" DoCmd. SetWarnings False DoCmd. RunSQL (stringSQL)

stringSQL = "INSERT INTO CityTbl ([Mesto], [Štát] ) " stringSQL = stringSQL & "VALUES ('Dallas', 'Texas');" DoCmd. SetWarnings False DoCmd. RunSQL (stringSQL)

Krok 5

Zadajte nasledujúce, aby ste definovali svoj dotaz a otvorili svoju sadu záznamov:

stringSQL = "SELECT CityTbl.* FROM CityTbl;" Nastavte RecordSt = dBase. OpenRecordset (stringSQL)

Krok 6

Zadajte nasledujúci text, aby ste vytvorili „Pre slučku“ a zobrazili výsledky dotazu prostredníctvom okna so správou:

RecordSt. MoveFirst For rCnt = 0 To RecordSt. RecordCount MsgBox (RecordSt. Fields("City")).Value & ", " & RecordSt. Fields("State").Value) RecordSt. MoveNext Ďalší rCnt

Stlačením "F5" spustíte podprogram.