2016-11-01 4 views
0

Из-за ms доступа 2GB ограничений на пространство; Я рассматриваю возможность разделения базы данных на две части.ADODB Подключение к двум базам данных доступа

Однако я регулярно полагаться на заявления SQL, такие как: INSERT INTO [...] SELECT [...]

Есть ли способ в ADODB для выполнения выше, т.е. INSERT INTO таблицы в файл 1, данные SELECT из таблицы в файле 2?

Большое спасибо за ваш совет.

+0

Может быть, пришло время рассмотреть более RDMS? SQL Server Express, может быть? – HardCode

ответ

3

Вот пример обновления одного ACCDB из другого с помощью VBA и ADO:

Sub AddDataFromAccessToAccess() 
    Dim cn    As Object 
    Dim sDatabase As String 
    Dim sDatabase2 As String 

    ' change these paths 
    sDatabase = "C:\Database1.accdb" 
    sDatabase2 = "C:\Database2.accdb" 

    Set cn = CreateObject("ADODB.Connection") 
    With cn 
     .Provider = "Microsoft.ACE.OLEDB.12.0" 
     .ConnectionString = "Data Source='" & sDatabase & "'" 
     .Open 
     ' change table and field names here 
     .Execute "INSERT INTO Table1 ([Field1]) SELECT [Field2] FROM [MS Access;DATABASE=" & sDatabase2 & ";].[Table2]" 
     .Close 
    End With 

End Sub 
+0

Спасибо Рори !! Он отлично работает с одним полем, но когда я добавляю больше полей, я получаю ошибку времени выполнения: синтаксическая ошибка (запятая) в выражении запроса. Мое утверждение: «INSERT INTO Temp_Fees (Account, TradeDate, Description) SELECT (Account, TradeDate, Description) FROM [MS Access; DATABASE =" & sDatabase2 & ";] .Temp_Fees " – Kelaref

0

Вместо установки вашего db в CurrentDB используйте OpenDatabase.

eg. 
    set DB = opendatabase("fkdslfjslj") 
+1

Но если вы «разделили» базу данных, вы бы связали таблицы с другой базой данных, так что вы просто ссылались бы на (связанные) таблицы в соответствии с нормальным. – geeFlo

+1

Табличные ссылки между двумя файлами заднего плана были бы гораздо более аккуратным решением. Возможно, вы могли бы добавить это предложение к своему ответу? –

+0

@ GordThompson Я понял после публикации, что он говорил о «split», поэтому я добавил комментарий о ссылках на таблицы. – geeFlo

Смежные вопросы