#vb.net #ms-access
#vb.net #ms-доступ #ms-access
Вопрос:
У меня есть база данных с несколькими объектами запроса внутри нее, я пытаюсь выполнить их все из Visual Studio, но для этого мне нужно имя каждого запроса. Есть ли какой-либо способ получить имя всех запросов внутри базы данных из Visual Studio?
Комментарии:
1. Поиск по OleDb.Connection. Получает схему.
2. Вы говорите о представлениях?
3. Если вы имеете в виду объекты QueryDef и запуск программы, созданной в VS, а не использование VS напрямую, то, похоже, в документации по объекту QueryDef (DAO) есть код для этого .
4. Стив, GetSchema была полезна только для получения списка объектов типа «Таблица» или «Сделать запрос к таблице», но мне не удалось извлечь имя объектов типа «Выбрать запрос». Вот код, который я использую для этого: ограничения (3) = «Просмотр» таблиц = cn.GetSchema («Таблицы», ограничения)
5. Эндрю, ты знаешь, как я могу использовать QueryDef для vb.net ? Поскольку я получаю тип ‘QueryDef’, не определен, ошибка при попытке его использовать
Ответ №1:
Я смог напечатать все имена запросов в ListBox, используя объект QueryDef, как предложил Эндрю, ниже приведен код, который я использовал:
Imports Microsoft.Office.Interop.Access.Dao
Private Sub UpdateList(PathDB As String, List As ListBox)
Dim db As Database
Dim qdfLoop As QueryDef
Dim DAOBEngine As New DBEngine()
'Old list is cleared
List.Items.Clear()
'Connection to the database is created
db = DAOBEngine.OpenDatabase(PathDB, False, False, "")
'Each query on the database is added to the ListBox
For Each qdfLoop In db.QueryDefs
List.Items.Add(qdfLoop.Name)
Next
'Connection to the database is closed
db.Close()
End Sub