SQL сервер имеет built-in replication functionality, что вы получаете бесплатно, так что вам не нужно беспокоиться о копировании на строки & отслеживания изменений. Существует несколько типов репликации SQL, которые используются для различных ситуаций, таких как репликация слиянием, репликация моментальных снимков и репликация транзакций. Эта последняя, транзакционная репликация звучит так, как вы хотите. Merge replication используется, когда у вас есть пользователи, которые могут отключиться, уйти и вернуться позже для синхронизации (например, удаленных пользователей). Transactional replication используется там, где подписчики и издатели надежно подключены. Snapshot replication генерирует новый моментальный снимок каждый раз, когда происходит синхронизация, и не думает об изменениях в данных. Прочтите документацию MSDN и найдите, какой из этих типов подходит для вашей ситуации.
Использование этих методов репликации потребует установки таблиц на SQL-сервере или экспресс-экземпляре - вы можете использовать это для синхронизации с вашим SQL-сервером и сохранить все остальное Access как интерфейс. Я думаю, вы хотите следовать предчувствию и использовать службу Windows для синхронизации. Однако вы можете настроить диспетчер синхронизации Windows, чтобы автоматически пытаться синхронизироваться при запуске, выключениях, когда компьютер находится в режиме ожидания и т. Д. Если вам нужен более тонкий контроль за запуском синхронизации, тогда используйте приложение Windows или услугу в качестве наблюдателя.
Вы видели: http://sqlserverpedia.com/blog/sql-server-tutorial/how-can-i-synchronize-data-between-ms-access-and-sql-server-databases/? – Fionnuala
@Remou: если бы вы поместили эту ссылку в ответ и немного ее вычеркнули, я бы подумал, что это будет лучший ответ (ключевым является использование связанного сервера SQL Server для отображения данных Jet/ACE на SQL Server, где вы можете запустить набор Appends/Deletes/Updates для синхронизации Jet/ACE с таблицами SQL Server). –
спасибо Remou.i проверить URL.it действительно полезен и практичен. Я сделал это раньше. Выше метод не является реальным временем. Есть ли способ сделать db-синхронизацию между базой данных доступа и сервером sql 2005, используя ACCESS LINKED TABLES? Я знаю это возможно, и я сделал it.i заменил исходные таблицы в базе данных доступа с некоторыми связанными таблицами с теми же именами.поэтому, когда приложение делает запрос к базе данных доступа, на самом деле он видит наш back sql server 2005 database.it имеет только один недостаток. У нас есть только одна копия данных, размещенная в SQL Server 2005. i должна быть копия данных в базе данных доступа. – muhremehr