Jak vytvořit dotaz VBA v seznamu Access seznamy tabulek v databázi
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