Toegang krijgen tot VBA-query's om de tabellen in de database weer te geven

Schrijver: Lewis Jackson
Datum Van Creatie: 14 Kunnen 2021
Updatedatum: 12 Kunnen 2024
Anonim
Toegang krijgen tot VBA-query's om de tabellen in de database weer te geven - Artikelen
Toegang krijgen tot VBA-query's om de tabellen in de database weer te geven - Artikelen

Inhoud

Microsoft Access is een databasebeheersysteem waarmee gebruikers hun eigen databases, rapporten en formulieren kunnen maken. Access bevat alle bouwstenen voor de ontwikkeling van kleine applicaties. U kunt gegevenstabellen, opgeslagen procedures, functies en macro's, evenals formulieren en rapporten maken. Al deze componenten hebben hun eigen pointers of recorddefinities opgeslagen in een verborgen systeemtabel. Toegang houdt records bij van elke tabel, rapport, formulier, etc. die u maakt en slaat ook gegevens op zoals de datum waarop deze is gemaakt of bijgewerkt en systeemvlaggen.


routebeschrijving

Krijg toegang tot databasestructuurinformatie in de MSysObjects-tabel (gegevensopslagafbeelding door Kir uit Fotolia.com)

    Een lijst met tabellen krijgen

  1. Maak een query die de onderstaande SQL-opdracht uitvoert. Deze query geeft een lijst weer van alle tabellen in de huidige Access-database. De "where" -clausule met nummer 1 dient om aan te geven dat we alleen de tabellen willen citeren.

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

  2. Retourneer de niet-systematische tabellenquery in de database, met het onderstaande voorbeeld:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Name Not Like "MSys *";


  3. Voer de lijst met verborgen databasetabellen in door de onderstaande query uit te voeren:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8

  4. Sorteer de lijst van niet-verborgen, niet-systematische tabellen met behulp van de volgende SQL-code:

    SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags <> 8 AND MSysObjects.Name Not Like "MSys"; BESTELLING DOOR MSysObjects.Name

    Gebruik de lijst met tabellen in VBA

  1. Laad uw lijst met tabellen in een recordsobject met behulp van de VBA-code hieronder:

    Dim rsMyTables Als DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery")

  2. Blader door elke record van de voltooide query.


    Dim rsMyTables Als DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery")

    Do While Not rsMyTables.EOF 'Code om gegevens te manipuleren

    rsMyTables.MoveNext Loop

  3. Voeg een naam toe aan elke tabel voor een lijst door de lus ervan aan te passen:

    Dim rsMyTables Als DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery") Me.cmbMyComboBox.Clear

    Do While Not rsMyTables.EOF Me.cmbMyComboBox.AddItem rsMyTables! [Name]

    rsMyTables.MoveNext Loop

  4. Sluit uw registerobject om het geheugen vrij te maken dat het gebruikt:

    Dim rsMyTables Als DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery") Me.cmbMyComboBox.Clear

    Do While Not rsMyTables.EOF Me.cmbMyComboBox.AddItem rsMyTables! [Name]

    rsMyTables.MoveNext Loop

    rsMyTables.Close Set rsMyTables = Niets

tips

  • Macro's die zijn gemaakt in Visual Basic for Applications (VBA), een programmeertaal van Microsoft Office Standard.
  • U kunt een van deze objecten in Access weergeven door het filter "MSysObject.Type" te wijzigen. De opties voor deze waarde worden hieronder vermeld:
  • Tabel = 1
  • Zoekopdracht = 5
  • Gekoppelde tabel = 4, 6 of 8
  • Form = -32768
  • Rapport = -32764
  • Module = -32761