Jak vytvořit dotaz VBA v seznamu Access seznamy tabulek v databázi

Přístup uchovává informace o struktuře databáze v tabulce MSysObjects.

Získejte seznam tabulek

Krok 1

Vytvořte dotaz, který provede příkaz SQL uvedený níže. Tento dotaz získá seznam všech tabulek v aktuální databázi aplikace Access. Příkaz kde používá číslo 1 znamená, že chceme pouze, aby se tabulky zobrazily.

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

Krok 2

Získejte seznam, který obsahuje pouze tabulky v databázi, které nejsou ze systému, s příkladem uvedeným níže:

SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags z MSysObjects WHERE MSysObjects.Type = 1 a MSysObjects.Name ne jako 'MSys'

Krok 3

Získat seznam obsahující pouze tabulky, které nejsou skryty v databázi spuštěním následujícího dotazu:

SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags z MSysObjects WHERE MSysObjects.Type = 1 a MSysObjects.Flags 8

Krok 4

Třídit seznam skrytých nesystémových tabulek pomocí následujícího kódu SQL:

SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags z MSysObjects WHERE MSysObjects.Type = 1 a MSysObjects.Flags 8 a MSysObjects.Name ne jako 'MSys *' ORDER BY MSysObjects.Name

Použijte seznam tabulek ve VBA

Krok 1

Vložte seznam tabulek do objektu sady záznamů pomocí kódu VBA uvedeného níže:

Dim rsMisTablas Jako DAO.Recordset Nastavit rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')

Krok 2

Projděte cyklus přes každý záznam získaný v dotazu.

Dim rsMisTablas Jako DAO.Recordset Nastavit rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')

Zatímco není rsMisTablas.EOF 'Kód pro manipulaci s informacemi

rsMisTablas.MoveNext Loop

Krok 3

Přidejte názvy jednotlivých tabulek do rozevíracího seznamu upravujícího cyklus cyklu:

Dim rsMisTablas Jako soubor DAO.Recordset Nastavit rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear

Zatímco není rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Name]

rsMisTablas.MoveNext Loop

Krok 4

Uzavřete objekt sady záznamů, abyste uvolnili paměť, kterou používáte:

Dim rsMisTablas Jako soubor DAO.Recordset Nastavit rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear

Zatímco není rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Name]

rsMisTablas.MoveNext Loop

rsMisTablas.Close Set rsMisTablas = nic