Как получить доступ в VBA-запросах к списку таблиц в базе данных

Автор: Robert Simon
Дата создания: 16 Июнь 2021
Дата обновления: 14 Май 2024
Anonim
Visual Studio + Access. Выполнение SQL-запроса на выборку данных (SELECT) из базы данных
Видео: Visual Studio + Access. Выполнение SQL-запроса на выборку данных (SELECT) из базы данных

Содержание

Microsoft Access - это система управления базами данных, которая позволяет пользователям создавать собственные базы данных, отчеты и формы. Доступ содержит все строительные блоки для разработки небольших приложений. Вы можете создавать таблицы данных, хранимые процедуры, функции и макросы, а также формы и отчеты. Все эти компоненты имеют свои собственные указатели или определения записей, хранящиеся в скрытой системной таблице. Access хранит записи каждой таблицы, отчета, формы и т. Д. который вы создаете, а также хранит данные, такие как дата его создания или обновления и системные флаги.


направления

Access хранит информацию о структуре базы данных в таблице MSysObjects (изображение для хранения данных Kir от Fotolia.com)

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

  1. Создайте запрос, который запускает команду SQL ниже. Этот запрос отображает список всех таблиц в текущей базе данных Access. Предложение «where», использующее число 1, служит для указания того, что нам нужны только таблицы в кавычках.

    ВЫБЕРИТЕ MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects, ГДЕ MSysObjects.Type = 1

  2. Возвратите запрос несистематических таблиц в базе данных, с примером ниже:

    ВЫБЕРИТЕ MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags FROM MSysObjects, ГДЕ MSysObjects.Type = 1 И MSysObjects.Name не похож на «MSys *»;


  3. Введите список скрытых таблиц базы данных, выполнив запрос ниже:

    ВЫБЕРИТЕ MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags ОТ MSysObjects ГДЕ MSysObjects.Type = 1 И MSysObjects.Flags <> 8

  4. Сортируйте список не скрытых, несистематических таблиц, используя следующий код SQL:

    ВЫБЕРИТЕ MSysObjects.Name, MSysObjects.DateCreate, MSysObjects.DateUpdate, MSysObjects.Type, MSysObjects.Flags ОТ MSysObjects, ГДЕ MSysObjects.Type = 1 И MSysObjects.Flags <> 8 И MSys Notame " ЗАКАЗАТЬ MSysObjects.Name

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

  1. Загрузите ваш список таблиц в объект записей, используя код VBA ниже:

    Dim rsMyTables As DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery")

  2. Прокрутите каждую запись выполненного запроса.

    Dim rsMyTables As DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery")


    Do As Not rsMyTables.EOF 'Код для манипулирования данными

    rsMyTables.MoveNext Loop

  3. Добавьте имя в каждую таблицу для списка, изменив его цикл:

    Dim rsMyTables As DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery") Me.cmbMyComboBox.Clear

    Делать, пока не rsMyTables.EOF Me.cmbMyComboBox.AddItem rsMyTables! [Имя]

    rsMyTables.MoveNext Loop

  4. Закройте объект реестра, чтобы освободить память, которую он использует:

    Dim rsMyTables As DAO.Recordset Set rsMyTables = CurrentDb.OpenRecordset ("MyQuery") Me.cmbMyComboBox.Clear

    Делать, пока не rsMyTables.EOF Me.cmbMyComboBox.AddItem rsMyTables! [Имя]

    rsMyTables.MoveNext Loop

    rsMyTables.Close Set rsMyTables = Nothing

чаевые

  • Макросы, созданные в Visual Basic для приложений (VBA), который является языком программирования Microsoft Office Standard.
  • Вы можете перечислить любой из этих объектов в Access, изменив фильтр «MSysObject.Type». Варианты этого значения перечислены ниже:
  • Таблица = 1
  • Query = 5
  • Связанная таблица = 4, 6 или 8
  • Форма = -32768
  • Отчет = -32764
  • Модуль = -32761