Access'te bir VBA sorgusu Access veritabanındaki tabloları nasıl yapılır

Access, veritabanının yapısıyla ilgili bilgileri MSysObjects tablosunda depolar.

Tabloların bir listesini al

1. Adım

Aşağıda gösterilen SQL komutunu çalıştırmak için bir sorgu oluşturun. Bu sorgu, geçerli Access veritabanındaki tüm tabloların listesini alır. Burada, yalnızca tabloların görünmesini istediğimizi belirtmek için 1 numaralı rakam kullanılır.

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

2. Adım

Aşağıdaki örnekte, yalnızca sistemde olmayan veritabanındaki tabloların bulunduğu bir liste edinin:

MSysObjects.Name MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags MSysObjects WHERE MSysObjects.Type = 1 VE MSysObjects.Name 'MSys' gibi değil SELECT MSESObjects.Name

3. adım

Aşağıdaki sorguyu yürüterek yalnızca veritabanında gizlenmeyen tabloları içeren bir liste edinin:

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

4. Adım

Aşağıdaki SQL kodunu kullanarak gizli olmayan sistem dışı tabloların listesini sıralayın:

MSysObjects.Name MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags MSysObjects WHERE MSysObjects.Type = 1 VE MSysObjects.Flags 8 VE MSysObjects.Name gibi değil MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.Name

VBA'daki tabloların listesini kullan

1. Adım

Aşağıda listelenen VBA kodunu kullanarak tablo listenizi bir kayıt kümesi nesnesine yükleyin:

Dim rsMisTablas DAO.Recordset Set olarak rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')

2. Adım

Sorguda elde edilen her kayıttan bir döngüde ilerleyin.

Dim rsMisTablas DAO.Recordset Set olarak rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')

RsMisTablas.EOF 'Bilgi işlemek için Kod

rsMisTablas.MoveNext Döngü

3. adım

Her tablonun isimlerini, while döngüsünü değiştiren bir açılır listeye ekleyin:

Dim rsMisTablas DAO.Recordset Set olarak rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear

Yaparken değil rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [İsim]

rsMisTablas.MoveNext Döngü

4. Adım

Kullandığınız belleği bırakmak için kayıt kümesi nesnesini kapatın:

Dim rsMisTablas DAO.Recordset Set olarak rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear

Yaparken değil rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [İsim]

rsMisTablas.MoveNext Döngü

rsMisTablas.Close Set rsMisTablas = Hiçbir şey