Slik får du tilgang til VBA-spørringer for å liste tabellene i databasen

Forfatter: Robert Simon
Opprettelsesdato: 15 Juni 2021
Oppdater Dato: 1 Desember 2024
Anonim
Slik får du tilgang til VBA-spørringer for å liste tabellene i databasen - Artikler
Slik får du tilgang til VBA-spørringer for å liste tabellene i databasen - Artikler

Innhold

Microsoft Access er et databasebehandlingssystem som lar brukerne lage egne databaser, rapporter og skjemaer. Tilgang inneholder alle byggeklosser for liten applikasjonsutvikling. Du kan opprette datatabeller, lagrede prosedyrer, funksjoner og makroer, samt skjemaer og rapporter. Alle disse komponentene har sine egne pekere eller rekorddefinisjoner lagret i et skjult systembord. Tilgang holder register over hver tabell, rapport, skjema etc. som du oppretter og lagrer også data som datoen den ble opprettet eller oppdatert og systemflagger.


retninger

Få tilgang til databasestrukturinformasjon i MSysObjects-tabellen (data lagringsbilde av Kir fra Fotolia.com)

    Få en liste over tabeller

  1. Lag en spørring som kjører SQL-kommandoen nedenfor. Denne spørringen viser en liste over alle tabellene i den nåværende Access-databasen. "Hvor" -klausulen ved hjelp av tallet 1, tjener til å indikere at vi bare vil ha tabellene sitert.

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

  2. Returner ikke-systematisk tabellforespørsel i databasen, med eksemplet nedenfor:

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


  3. Skriv inn listen over de skjulte databasetabellene ved å kjøre spørringen 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 hjelp av 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"; BESTILLE AV MSysObjects.Name

    Bruk listen over tabeller i VBA

  1. Legg inn listen over tabeller i et arkivobjekt, ved hjelp av VBA-koden nedenfor:

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

  2. Bla gjennom hver post av det ferdige spørsmålet.


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

    Gjør mens ikke rsMyTables.EOF 'Kode for å manipulere data

    rsMyTables.MoveNext Loop

  3. Legg til et navn på hvert bord for en liste ved å endre sin sløyfe:

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

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

    rsMyTables.MoveNext Loop

  4. Lukk registreringsobjektet for å frigjøre minnet det bruker:

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

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

    rsMyTables.MoveNext Loop

    rsMyTables.Close Set rsMyTables = Ingenting

tips

  • Makroer som er laget i Visual Basic for Applications (VBA), som er et Microsoft Office Standard programmeringsspråk.
  • Du kan liste noen av disse objektene i Tilgang ved å endre "MSysObject.Type" -filteret. Alternativene for denne verdien er oppført nedenfor:
  • Tabell = 1
  • Forespørsel = 5
  • Koblet tabell = 4, 6 eller 8
  • Form = -32768
  • Rapport = -32764
  • Modul = -32761