Jak utworzyć zapytanie VBA w Access liście tabel w bazie danych
Uzyskaj listę tabel
Krok 1
Utwórz zapytanie, aby wykonać polecenie SQL pokazane poniżej. Ta kwerenda uzyskuje listę wszystkich tabel w bieżącej bazie danych programu Access. Instrukcja where używa numeru 1, aby wskazać, że chcemy tylko wyświetlić tabele.
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1
Krok 2
Uzyskaj listę, która ma tylko tabele w bazie danych, które nie są z systemu, z przykładem podanym poniżej:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Name Nie odpowiada "MSys"
Krok 3
Uzyskaj listę zawierającą tylko tabele nie ukryte w bazie danych, wykonując następujące zapytanie:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags 8
Krok 4
Sortuj listę niewidocznych niesystemowych tabel za pomocą następującego kodu SQL:
SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags 8 AND MSysObjects.Name Nie odpowiada "MSys *" ORDER BY MSysObjects.Name
Skorzystaj z listy tabel w VBA
Krok 1
Załaduj listę tabel do obiektu zestawu rekordów, używając poniższego kodu VBA:
Dim rsMisTablas Jako DAO.Recordset Set rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')
Krok 2
Przewiń cykl przez każdy rekord uzyskany w zapytaniu.
Dim rsMisTablas Jako DAO.Recordset Set rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')
Do While Not rsMisTablas.EOF 'Kod do manipulowania informacjami
rsMisTablas.MoveNext Loop
Krok 3
Dodaj nazwy każdej tabeli do listy rozwijanej modyfikującej Twój cykl:
Dim rsMisTablas Jako DAO.Recordset Set rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear
Do While Not rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Nazwa]
rsMisTablas.MoveNext Loop
Krok 4
Zamknij obiekt zestawu rekordów, aby zwolnić pamięć, której używasz:
Dim rsMisTablas Jako DAO.Recordset Set rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear
Do While Not rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Nazwa]
rsMisTablas.MoveNext Loop
rsMisTablas.Close Set rsMisTablas = Nic