Как да направите заявка за VBA в Access списък таблици в база данни

Достъпът съхранява информация за структурата на базата данни в таблицата MSysObjects.

Получете списък с таблици

Стъпка 1

Създайте заявка за изпълнение на SQL командата, показана по-долу. Тази заявка получава списък на всички таблици в текущата база данни на Access. Където изявлението използва номер 1, за да покаже, че искаме само таблиците да се показват.

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

Стъпка 2

Получете списък, в който има само таблици в базата данни, които не са от системата, както е показано по-долу:

SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags от MSysObjects WHERE MSysObjects.Type = 1 И MSysObjects.Name не като "MSys"

Стъпка 3

Получете списък, който съдържа само таблици, които не са скрити в базата данни, като изпълните следната заявка:

SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags от MSysObjects WHERE MSysObjects.Type = 1 И MSysObjects.Flags 8

Стъпка 4

Сортирайте списъка с не скрити несистемни таблици, като използвате следния SQL код:

SELECT MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags от MSysObjects WHERE MSysObjects.Type = 1 И MSysObjects.Flags 8 И MSysObjects.Name не като "MSys *" ORDER BY MSysObjects.Name

Използвайте списъка с таблици във VBA

Стъпка 1

Заредете списъка си с таблици в обект за запис, като използвате VBA кода, показан по-долу:

Dim rsMisTablas Като DAO.Recordset Задайте rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')

Стъпка 2

Превъртете през цикъл през всеки запис, получен в заявката.

Dim rsMisTablas Като DAO.Recordset Задайте rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta')

Докато не rsMisTablas.EOF "Код за манипулиране на информацията

rsMisTablas.MoveNext Loop

Стъпка 3

Добавете имената на всяка таблица в падащ списък, който променя Вашия цикъл:

Dim rsMisTablas Като набор DAO.Recordset rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear

Докато не е rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Име]

rsMisTablas.MoveNext Loop

Стъпка 4

Затворете обекта си за запис, за да освободите използваната памет:

Dim rsMisTablas Като набор DAO.Recordset rsMisTablas = CurrentDb.OpenRecordset ('MyConsulta') Me.cmbMiComboBox.Clear

Докато не е rsMisTablas.EOF Me.cmbMiComboBox.AddItem rsMisTablas! [Име]

rsMisTablas.MoveNext Loop

rsMisTablas.Close Set rsMisTablas = Нищо