Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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;" & ";Data Source=ds4.mdb;" & _
                "User ID=Admin;Jet OLEDB:System database=System.mdw;";)
            ;DB.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 её явно не понимает :(

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам