Помощь с MS Access и SQL Server 2008 - PullRequest
       20

Помощь с MS Access и SQL Server 2008

0 голосов
/ 13 августа 2010

Мне нужен кто-то, чтобы указать мне правильное направление, у меня есть БД MS Access, которая обновляется устройствами HP, и я должен синхронизировать ее с SQL Server 2008.

У меня есть несколько идей, и я хотел бы знать, что вы думаете по этому поводу:

  1. Есть ли что-то вроде триггеров на доступ?Если это так, могу ли я подключиться к SQL Server?
  2. Есть ли способ использовать VBA, чтобы доступ сообщал мой макрос VBA или что-то еще для обновления на SQL Server?
  3. Есть ли простой способподключиться из VB 6 к SQL Server 2008?
  4. Использование сценария, который выполняется в фоновом режиме и проверять базу данных в течение X минут или секунд.

Любые другие идеи или предложения приветствуются.

Спасибо и, как всегда, извиняюсь за английский.

Ответы [ 3 ]

1 голос
/ 13 августа 2010

Просто добавьте несколько моментов к ответу приемного специалиста.

1) В Access 2010 действительно есть триггеры и хранимые процедуры, но они больше относятся к собственным таблицам доступа / jet, а не к связанным таблицам SQL, как мне кажется.

2 & 3) Если вы хотите подключить VB6 или VBA к серверу SQL, то для этого используется технология ADO, например, здесь приведен код для открытия соединения и выполнения оператора SQL

Dim dbCon as NEW ADODB.Connection
dbCon.ConnectionString = strSQL_con_string
dbCon.Provider = "sqloledb"
dbCon.Open

dbCon.Execute “UPDATE tblFoo SET bar=5 WHERE Foo=1”

dbCon.Close

4) Вы можете сделать это на стороне клиента с событием таймера / ожидания в VB6 / Access или на стороне сервера с заданием SQL, не зная, что лучше всего подходит для вашей ситуации, учитывая предоставленную ограниченную информацию

1 голос
/ 13 августа 2010

Вы можете обратиться к базе данных SQL Server или к базе данных MS Access, встроенной в ваш SQL:

UPDATE SQLTable (ID, Stuff) 
SELECT ID, Stuff
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'c:\External\MyAccess.mdb';'admin';'', Table1) 

- Из базы данныхJournal

Вы можете выполнитьэтот запрос с использованием ADO с подключением к SQL Server

- Строки подключения

Вы также можете сделать то же самое со стороны доступа с ODBC

Dim cn As New ADODB.Connection

scn = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" _
    & DBFullName
cn.Open scn

s = "INSERT INTO [ODBC;Description=TEST;DRIVER=SQL Server;" _
& "SERVER=Server\Instance;Trusted_Connection=Yes;" _
& "DATABASE=test].Table2 (ID, Stuff) SELECT ID, Stuff FROM Table1"
cn.Execute s

Вы можете запустить ADO с VBScript или другим подходящим сценарием и использовать планировщик заданий Windows, чтобы запускать сценарий с подходящими интервалами.Это не без боли.

0 голосов
/ 13 августа 2010

Вы можете попытаться связать базу данных MS Access с сервером SQL,
Теперь вы можете запрашивать данные с сервера SQL, который находится в MS Access.
Я не знаю о триггерах на MS ACCESS, но вы можете реализовать некоторые циклы в MS SQL для подсчета периодичности или выбора данных для проверки нового.
Чтобы сделать связанный сервер в SQL MGM Studio в обозревателе объектов -> Объект сервера -> Связанный сервер -> щелкните правой кнопкой мыши -> Новый связанный сервер После этого в новом запросе просто вызовите любую таблицу типа

Select * from [linked server].dbo.mytable

В MS SQL есть команда WAITFOR , которую можно реализовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...