Sådan får du adgang til VBA-forespørgsler for at liste tabellerne i databasen

Forfatter: Lewis Jackson
Oprettelsesdato: 14 Kan 2021
Opdateringsdato: 3 Juli 2024
Anonim
Sådan får du adgang til VBA-forespørgsler for at liste tabellerne i databasen - Artikler
Sådan får du adgang til VBA-forespørgsler for at liste tabellerne i databasen - Artikler

Indhold

Microsoft Access er et databasehåndteringssystem, der giver brugerne mulighed for at oprette deres egne databaser, rapporter og formularer. Adgang indeholder alle byggesten til små applikationsudvikling. Du kan oprette datatabeller, lagrede procedurer, funktioner og makroer samt formularer og rapporter. Alle disse komponenter har deres egne pointers eller record definitioner gemt i et skjult system bord. Adgang holder registreringer af hver tabel, rapport, formular mm som du opretter og også gemmer data som datoen den blev oprettet eller opdateret og systemflagger.


retninger

Adgang gemmer databasestrukturoplysninger i MSysObjects-tabellen (data lagringsbillede af Kir fra Fotolia.com)

    Få en liste over tabeller

  1. Opret en forespørgsel, der kører SQL-kommandoen nedenfor. Denne forespørgsel viser en liste over alle tabeller i den nuværende Access-database. "Hvor" -klausulen ved hjælp af nummer 1 tjener til at angive, at vi kun vil have de noterede tabeller.

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FRA MSysObjects WHERE MSysObjects.Type = 1

  2. Returner den ikke-systematiske tabel forespørgsel i databasen med nedenstående eksempel:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FRA MSysObjects WHERE MSysObjects.Type = 1 OG MSysObjects.Name Ikke som "MSys *";


  3. Indtast listen over de skjulte databasetabeller ved at køre spørgsmålet nedenfor:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FRA MSysObjects WHERE MSysObjects.Type = 1 OG MSysObjects.Flags <> 8

  4. Sorter listen over ikke-skjulte, ikke-systematiske tabeller ved hjælp af følgende SQL-kode:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FRA MSysObjects WHERE MSysObjects.Type = 1 OG MSysObjects.Flags <> 8 OG MSysObjects.Name Ikke som "MSys"; BESTIL AF MSysObjects.Name

    Brug listen over tabeller i VBA

  1. Indlæs din liste over tabeller i en postobjekt, ved hjælp af VBA-koden nedenfor:

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

  2. Rul gennem hver post af det udfyldte forespørgsel.


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

    Gør ikke rsMyTables.EOF 'Kode til at manipulere data

    rsMyTables.MoveNext Loop

  3. Tilføj et navn til hver tabel for en liste ved at ændre sin sløjfe:

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

    Gør mens ikke rsMyTables.EOF Me.cmbMyComboBox.AddItem rsMyTables! [Navn]

    rsMyTables.MoveNext Loop

  4. Luk dit registreringsobjekt for at frigøre den hukommelse, den bruger:

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

    Gør mens ikke rsMyTables.EOF Me.cmbMyComboBox.AddItem rsMyTables! [Navn]

    rsMyTables.MoveNext Loop

    rsMyTables.Close Set rsMyTables = Intet

tips

  • Makroer, der er lavet i Visual Basic for Applications (VBA), som er et Microsoft Office Standard programmeringssprog.
  • Du kan liste ethvert af disse objekter i Access ved at ændre filteret "MSysObject.Type". Indstillingerne for denne værdi er angivet nedenfor:
  • Tabel = 1
  • Forespørgsel = 5
  • Linked Table = 4, 6 eller 8
  • Form = -32768
  • Rapport = -32764
  • Modul = -32761