Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 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 несколько из другой (или совсем из другой) оперы.
Тем не менее - спасибо, но ВОПРОС ОСТАЕТСЯ ОТКРЫТЫМ.

Ответить

Страница: 1 |

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



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