Страница: 1 |
Страница: 1 |
Вопрос: Access: список существующих таблиц и ссылки на них
Добавлено: 18.06.08 20:46
Автор вопроса: Marki
Приветствую всех!
Имеется 2 вопроса:
1) Необходимо получить список всех таблиц, имеющихся в базе данных Access.
2) Необходимо ПОДКЛЮЧИТЬ к базе Access новую таблицу, взятую из другой базы (т.е. добавить новую таблицу в качестве ссылки на таблицу другой базы).
Используется VB EE 2008.
Заранее спасибо всем за помощь.
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
Marki
Вопросов: 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 = "" As Boolean
' осноные параметры (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
Автор ответа:
Marki
Вопросов: 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".Value = strFileName
'имя таблицы в исходном файле
.Properties("Jet OLEDB:Remote Table Name".Value = strTblName
.Properties("Jet OLEDB:Create Link".Value = True
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
Автор ответа:
Marki
Вопросов: 42
Ответов: 94
Профиль | | #6
Добавлено: 21.06.08 18:01
Очень похоже, что ADOX несколько из другой (или совсем из другой) оперы.
Тем не менее - спасибо, но ВОПРОС ОСТАЕТСЯ ОТКРЫТЫМ.