Cum se face o interogare VBA în Access lista tabele într-o bază de date
Obțineți o listă de tabele
Pasul 1
Creați o interogare pentru a executa comanda SQL prezentată mai jos. Această interogare obține o listă cu toate tabelele din baza de date curentă din Access. Instrucțiunea unde utilizează numărul 1 pentru a indica faptul că dorim să apară doar tabelele.
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1
Pasul 2
Obțineți o listă care are doar tabelele din bază de date care nu sunt din sistem, cu exemplul furnizat mai jos:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 ȘI MSysObjects.Name nu ca "MSys"
Pasul 3
Obțineți o listă care conține numai tabelele care nu sunt ascunse în baza de date executând următoarea interogare:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 ȘI MSysObjects.Flags 8
Pasul 4
Sortați lista tabelelor non-ascunse care nu sunt ascunse folosind următorul cod SQL:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 ȘI MSysObjects.Flags 8 ȘI MSysObjects.Name nu ca "MSYS *" ORDER BY MSysObjects.Name
Utilizați lista tabelelor din VBA
Pasul 1
Încărcați lista de tabele într-un obiect setat de înregistrare folosind codul VBA prezentat mai jos:
Dim rsMisTablas Ca DAO.Recordset Set rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')
Pasul 2
Derulați printr-un ciclu prin fiecare înregistrare obținută în interogare.
Dim rsMisTablas Ca DAO.Recordset Set rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')
În timp ce nu rsMisTablas.EOF "Cod pentru a manipula informații
rsMisTablas.MoveNext Loop
Pasul 3
Adăugați numele fiecărui tabel într-o listă derulantă care vă modifică ciclul în timp:
Dim rsMisTablas Ca set DAO.Recordset rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear
În timp ce nu rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Nume]
rsMisTablas.MoveNext Loop
Pasul 4
Închideți obiectul setului de înregistrări pentru a elibera memoria pe care o utilizați:
Dim rsMisTablas Ca set DAO.Recordset rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear
În timp ce nu rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Nume]
rsMisTablas.MoveNext Loop
rsMisTablas.Close Set rsMisTablas = Nimic