Как импортировать / прикрепить таблицы / отношения SQL Server Compact Edition с Microsoft Access? - PullRequest
2 голосов
/ 07 июля 2010

Мне нужно переместить мою базу данных Sql Server CE в MS Access, чтобы мои пользователи, знакомые с Access, могли выполнять запросы к данным. Есть ли бесплатный способ сделать это?

Спасибо! David

1 Ответ

3 голосов
/ 08 июля 2010

У вас есть два варианта, вы можете либо импортировать данные в доступ, либо связать таблицы в доступе, чтобы данные оставались в SQL CE и просто ссылались на доступ.

Я не думаю, что access может импортировать его напрямую, поэтому вам придется установить ODBC-соединение с вашим файлом CE с помощью программы администратора ODNC в Windows. Сделав это, вы можете перейти к следующему шагу

В меню «Файл» перейдите, чтобы получить внешние данные, а затем либо импортировать, либо связать в зависимости от того, какую опцию вы хотите, в следующем диалоговом окне выберите базы данных ODBC в качестве типа файла и выберите только что установленное соединение ODBC.

Следуйте указаниям на экране оттуда и Робертс, брат вашей матери

EDIT:

Извините, да, я имел в виду ODBC, мой палец, должно быть, поскользнулся на клавиатуре. В любом случае, да, похоже, что драйвер ODBC не существует, однако драйвер OLEDB делает так, что вы можете открыть базу данных в коде с помощью ADO и либо манипулировать ею там, либо проходить по каждой таблице и вставлять ее в таблицу доступа, созданную ранее. Вот некоторый код, показывающий, как открыть набор записей SQL CE в VBA

Sub test()
Dim pConn As ADODB.Connection
Dim pRS As ADODB.Recordset
Set pConn = New ADODB.Connection
Dim cmd As New ADODB.Command
Set pRS = New ADODB.Recordset
' For 3.0 use PROVIDER=Microsoft.SQLSERVER.MOBILE.OLEDB.3.0
pConn.ConnectionString = 
"PROVIDER=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=C:\Northwind.sdf"
pConn.Open

cmd.ActiveConnection = pConn
cmd.CommandText = "SELECT * FROM Products"
Set pRS = cmd.Execute
' Open the recordset
While Not pRS.EOF
    Debug.Print pRS(0)
    Debug.Print pRS(1)
    pRS.MoveNext
Wend
End Sub
...