2016-10-05 1 views
0

У меня есть таблица в Access 2003, которая связана с таблицей сервера MS SQL. Я могу зайти в таблицу Access, вручную обновить ее и увидеть изменения , отраженные в таблице сервера MS Sql.Невозможно открыть таблицу Linked Access 2003 для MS SQL Server в коде VBA

Однако я не могу даже просто открыть таблицу и поместить результат в запись, установленную в моем коде VBA.

Set rs = CurrentDb.OpenRecordset("dbo_tbl_EventLogs", dbOpenTable) 

(RS всегда ни в чем)

Та же строка кода работает на 'локальный' таблицы Access.

ответ

2

Рассмотрите возможность использования dbOpenDynaset вариант, который используется по умолчанию для связанных таблиц или запросов, хранящуюся в то время как dbOpenTable является используется для локальных таблиц, как указано для OpenRecordset() метода:

Если вы открываете Recordset в рабочей области Microsoft Access и не указать тип, OpenRecordse t создает табличный тип Recordset, если возможно . Если вы указываете связанную таблицу или запрос, OpenRecordset создает набор записей типа dynaset.

Set rs = CurrentDb.OpenRecordset("dbo_tbl_EventLogs", dbOpenDynaset) 
+0

Вы избили меня, хотя я собирался предложить '..., dbOpenDynaset, dbSeeChanges)'. –

+0

Действительно, если в связанных таблицах MSSQL есть столбец идентификатора, может потребоваться указать 'dbSeeChanges' в зависимости от операций набора записей. – Parfait

0

Вам необходимо подключиться к вашей БД с помощью ADO. Простой и легкий. Просто перейдите на свою информацию и наслаждайтесь ею.

Dim cn As ADODB.Connection 
Dim rs As ADODB.Recordset 

ServerName = "yourServer,yourPort(example: 1442)" 'Enter your server name and a port here 
DatabaseName = "yourDBinTheServer" 'Enter your database name here 
UserID = "yourUserID" 'Enter your user ID here 
Password = "yourPassword" 'Enter your password here 

Set rs = New ADODB.Recordset 
Set cn = New ADODB.Connection 

cn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=" & DatabaseName & ";Uid=" & UserID & ";Pwd=" & Password & ";" 
rs.open yourQueryAsString, cn 
+0

это сделало бы меня напрямую подключиться к базе данных MS SQL Server. Я хочу использовать связанную таблицу – Eric

0

Убедитесь, что вы храните свои учетные данные, используемые для подключения к базе данных ... (атрибут dbAttachSavePWD)

+0

Добро пожаловать в Stack Overflow! Хотя это может быть ценным советом для решения проблемы, ответ действительно должен продемонстрировать решение. Пожалуйста, [править], чтобы предоставить пример кода, чтобы показать, что вы имеете в виду. В качестве альтернативы подумайте о том, чтобы вместо этого писать это как комментарий. –