Cara membuat kueri VBA di Access daftar tabel dalam database

Akses menyimpan informasi tentang struktur database di tabel MSysObjects.

Dapatkan daftar tabel

Langkah 1

Buat kueri untuk menjalankan perintah SQL yang ditunjukkan di bawah ini. Kueri ini memperoleh daftar semua tabel dalam database Access saat ini. Pernyataan di mana menggunakan angka 1 untuk menunjukkan bahwa kita hanya ingin tabel muncul.

PILIH MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags DARI MSysObjects WHERE MSysObjects.Type = 1

Langkah 2

Dapatkan daftar yang hanya memiliki tabel dalam database yang tidak berasal dari sistem, dengan contoh yang diberikan di bawah ini:

PILIH MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags DARI MSysObjects WHERE MSysObjects.Type = 1 DAN MSysObjects.Name Tidak Suka 'MSys'

Langkah 3

Dapatkan daftar yang berisi hanya tabel yang tidak disembunyikan dalam database dengan mengeksekusi kueri berikut:

PILIH MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags DARI MSysObjects WHERE MSysObjects.Type = 1 DAN MSysObjects.Flags 8

Langkah 4

Urutkan daftar tabel non-sistem yang tidak tersembunyi menggunakan kode SQL berikut:

PILIH MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags DARI MSysObjects WHERE MSysObjects.Type = 1 DAN MSysObjects.Flags 8 DAN MSysObjects.Name Tidak Suka 'MSys *' ORDER BY MSysObjects.Name

Gunakan daftar tabel di VBA

Langkah 1

Muat daftar tabel Anda ke dalam objek set record menggunakan kode VBA yang ditunjukkan di bawah ini:

Dim rsMisTablas Sebagai DAO.Recordset Atur rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')

Langkah 2

Gulir melalui siklus melalui setiap catatan yang diperoleh dalam kueri.

Dim rsMisTablas Sebagai DAO.Recordset Atur rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')

Do While Not rsMisTablas.EOF 'Kode untuk memanipulasi informasi

rsMisTablas.MoveNext Loop

Langkah 3

Tambahkan nama setiap tabel ke daftar tarik-turun yang memodifikasi siklus saat Anda:

Dim rsMisTablas Sebagai DAO.Recordset Atur rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear

Do While Not rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Nama]

rsMisTablas.MoveNext Loop

Langkah 4

Tutup objek set rekaman Anda untuk melepaskan memori yang Anda gunakan:

Dim rsMisTablas Sebagai DAO.Recordset Atur rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear

Do While Not rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Nama]

rsMisTablas.MoveNext Loop

rsMisTablas.Close Set rsMisTablas = Tidak ada