Как да направите заявка за VBA в Access списък таблици в база данни
Получете списък с таблици
Стъпка 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 = Нищо