Hvordan få tilgang VBA Query til List opp tabeller i en database

Hvordan få tilgang VBA Query til List opp tabeller i en database


Microsoft Access er en database management system for enkeltpersoner å lage sine egne databaser, rapporter og brukerskjemaer. Tilgang inneholder alle byggesteinene for å utvikle små applikasjoner. Du kan lage tabeller for data, lagrede prosedyrer, brukerdefinerte funksjoner og makroer i tillegg til rapporter og skjemaer. Alle disse komponentene har sine egne tips eller spille inn definisjoner som er lagret i et skjult system bord. Fi holder styr på hvert bord, rapport, skjema, etc. du oppretter og lagrer informasjon slik som da den ble opprettet eller oppdatert og system flagg.

Bruksanvisning

Å få en liste over tabeller

1 Lag en spørring for å kjøre SQL-kommandoen nedenfor. Denne spørringen henter en liste over alle bordene i gjeldende Access-databasen. Den der klausulen bruker nummer 1 for å vise at vi bare vil tabellene returnert.

VELG MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
Fra MSysObjects
HVOR MSysObjects.Type = 1

2 Returnere en liste med bare de ikke-systemtabeller i databasen med eksempelet gitt:

VELG MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
Fra MSysObjects
HVOR MSysObjects.Type = 1 OG MSysObjects.Name not like "MSYS *"

3 Returnere en liste med bare de ikke-skjulte tabeller i databasen ved å kjøre spørringen under:

VELG MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
Fra MSysObjects
HVOR MSysObjects.Type = 1 AND MSysObjects.Flags & lt; & gt; 8

4 Sorter listen av ikke-skjulte, ikke-system tabeller ved hjelp av SQL-kode nedenfor:

VELG MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags
Fra MSysObjects
HVOR MSysObjects.Type = 1 AND MSysObjects.Flags & lt; & gt; 8 OG MSysObjects.Name not like "MSYS *"
ORDER BY MSysObjects.Name

Bruk listen over tabeller i VBA

5 Last listen over tabeller i en post sett objekt med VBA-kode som vist nedenfor:

Dim rsMyTables Som DAO.Recordset
Sett rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")

6 Loop gjennom hver post returnert i søket.

Dim rsMyTables Som DAO.Recordset
Sett rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")

Gjør Mens Ikke rsMyTables.EOF
& # 039; Kode for å manipulere data

rsMyTables.MoveNext
Loop

7 Legg hvert bord navn til en rullegardinlisten ved å endre din mens loop:

Dim rsMyTables Som DAO.Recordset
Sett rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")
Me.cmbMyComboBox.Clear

Gjør Mens Ikke rsMyTables.EOF
Me.cmbMyComboBox.AddItem rsMyTables! [Navn]

rsMyTables.MoveNext
Loop

8 Lukk posten sett objekt slik at det frigjør minne den bruker:

Dim rsMyTables Som DAO.Recordset
Sett rsMyTables = CurrentDb.OpenRecordset ( "MyQuery")
Me.cmbMyComboBox.Clear

Gjør Mens Ikke rsMyTables.EOF
Me.cmbMyComboBox.AddItem rsMyTables! [Navn]

rsMyTables.MoveNext
Loop

rsMyTables.Close
Sett rsMyTables = Nothing