Страница: 1 |
Вопрос: Access: список существующих таблиц и ссылки на них | Добавлено: 18.06.08 20:46 |
Автор вопроса: ![]() |
Приветствую всех!
Имеется 2 вопроса: 1) Необходимо получить список всех таблиц, имеющихся в базе данных Access. 2) Необходимо ПОДКЛЮЧИТЬ к базе Access новую таблицу, взятую из другой базы (т.е. добавить новую таблицу в качестве ссылки на таблицу другой базы). Используется VB EE 2008. Заранее спасибо всем за помощь. |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 42 Ответов: 94 |
Профиль | Цитата | #1 | Добавлено: 18.06.08 22:20 |
ответ на первый вопрос найден.
Для интересующихся: http://vbnet.ru/forum/show.aspx?id=34229&page=1 |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 6 Ответов: 13 |
Профиль | Цитата | #2 | Добавлено: 19.06.08 00:17 |
В старом варианте подключения (DAO) была некая фишка типа TableDef:
Public Function doTable(ByVal Name As String, ByVal dbcd As String, Optional ByVal CreateName As String = "" ![]() ' осноные параметры (Name - Название исходной таблицы, dbcd - строка подключения к базе ( в формате asConstStr = ";database=C:\Base.mdb;PWD=pass" ), CreateName - имя в нововй базе) Dim tbl As DAO.TableDef doTable = False If CreateName = "" Then tbl = CurrentDb.CreateTableDef(Name) Else tbl = CurrentDb.CreateTableDef(CreateName) End If ' On Error GoTo UnError tbl.Connect = dbcd tbl.SourceTableName = Name CurrentDb.TableDefs.Append(tbl) CurrentDb.TableDefs.Refresh() doTable = True UnError: End Function ' Функция присоединения таблицы из внешней базы Я так подозреваю, что и в новых вариантах подключения есть что-то подобное. |
Номер ответа: 3 Автор ответа: ![]() ![]() Вопросов: 42 Ответов: 94 |
Профиль | Цитата | #3 | Добавлено: 19.06.08 00:25 |
Вот в том то и дело, чтобы это "новое" найти ![]() Пока нашел ответ только на первый вопрос... Будем продолжать поиски и ожидать помощи от специалистов. В любом случае - спасибо ![]() |
Номер ответа: 4 Автор ответа: ![]() ![]() Вопросов: 6 Ответов: 13 |
Профиль | Цитата | #4 | Добавлено: 19.06.08 00:32 |
Ну вот можно через ADOX:
Public Sub ADOXCreateLinkTable(strFileName As String, _ strTblName As String, _ Optional strLinkTblName As String = "" ![]() 'создание связанной таблицы MS ACCESS 'strFileName - путь к БД ACCESS, в которой находится таблица 'strTblName - имя таблицы в исходной БД 'strLinkTblName - имя, под которым будет создана связанная таблица 'если strLinkTblName опущено, то создается таблица с именем strFileName Dim adoxCat As ADOX.Catalog Dim adoxTbl As New ADOX.Table Dim strType As String Set adoxCat = New ADOX.Catalog 'получаем ссылку на текущую БД adoxCat.ActiveConnection = CurrentProject.Connection If strLinkTblName = "" Then strLinkTblName = strTblName With adoxTbl .ParentCatalog = adoxCat .Name = strLinkTblName 'имя создаваемой таблицы 'путь к файлу .Properties("Jet OLEDB:Link Datasource" ![]() 'имя таблицы в исходном файле .Properties("Jet OLEDB:Remote Table Name" ![]() .Properties("Jet OLEDB:Create Link" ![]() End With adoxCat.Tables.Append adoxTbl 'добавляем таблицу в БД Set adoxCat = Nothing Set adoxTbl = Nothing End Sub |
Номер ответа: 5 Автор ответа: ![]() ![]() Вопросов: 6 Ответов: 13 |
Профиль | Цитата | #5 | Добавлено: 19.06.08 00:33 |
Предыдущий текст взят отсюда ( может пригодится ? ) :
http://hiprog.com/index.php?option=com_content&task=view&id=251661555 |
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 42 Ответов: 94 |
Профиль | Цитата | #6 | Добавлено: 21.06.08 18:01 |
Очень похоже, что ADOX несколько из другой (или совсем из другой) оперы.
Тем не менее - спасибо, но ВОПРОС ОСТАЕТСЯ ОТКРЫТЫМ. |
Страница: 1 |
|