Страница: 1 |
Страница: 1 |
Вопрос: Таблицы в Access
Добавлено: 07.02.08 03:05
Автор вопроса:
s12
Помогите плз!!!
Как на VB7 получить список таблиц в БД. При чем так чтобы код работал на любой Access новее '97, без предварительного изменения параметров безопасности "ручками" в самой базе?
Срочно нужно..
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа: s12
Вопросов: 24
Ответов: 363
Профиль | | #1
Добавлено: 07.02.08 03:37
Поспешил с вопросом. Все оказалось очень просто.
1.Делаем копию System.mdw, в каталог с программой.
2.Открываем копию System.mdw и настраиваем:
а)Сервис-Параметры-Вид-Показать системные объекты
б)Сервис-Защита-Разрешения: Даем Admin права на чтение таблицы MSysObjects.
в)Сохраняем все.
В программе пишем:
Dim cmd As New OleDbCommand()
Dim rid As OleDbDataReader
Dim s As String
Dim DB as OleDbConnection
'объявляем соединение, указав имя и путь к System.mdw
DB = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "ata Source=ds4.mdb;" & _
"User ID=Admin;Jet OLEDB:System database=System.mdw;"
 B.Open()
'выбираем созданные пользователем таблицы
cmd = New OleDbCommand("SELECT * FROM MSysObjects WHERE (Left([Name],1)<>'~') AND (Left([Name],4) <> 'MSys') AND ([Type] In (1, 4, 6))" 'MSysObjects
cmd.Connection() = DB
rid = cmd.ExecuteReader(CommandBehavior.SingleResult)
Do While rid.Read
s = s & rid.GetString(11) & ","
Loop
Msgbox (s)
В ds4.mdb не требуется никаких изменений.
Номер ответа: 2
Автор ответа: GuG
Вопросов: 1
Ответов: 2
Профиль | | #2
Добавлено: 19.02.08 14:11
SQL:
show tables from `mydatabase`
это стандартная команда SQL, но ACCESS её явно не понимает