【问题标题】:Help with MS Access and SQL Server 2008MS Access 和 SQL Server 2008 帮助
【发布时间】:2010-08-13 01:59:28
【问题描述】:

我需要有人指出正确的方向,我有一个由 HP 设备更新的 MS Access 数据库,我必须将它与 SQL Server 2008 同步。

我有一些想法,我想知道您对此有何看法:

  1. 是否有类似访问触发器之类的东西?如果可以,我可以与 SQL Server 通信吗?
  2. 是否有任何方法可以使用 VBA,以便访问告诉我的 VBA 宏或其他任何内容以在 SQL Server 上进行更新?
  3. 是否有从 VB 6 连接到 SQL Server 2008 的简单方法?
  4. 使用在后台运行并在 X 分钟或秒内检查数据库的脚本。

非常欢迎任何其他想法或建议。

谢谢,总是对英语感到抱歉。

【问题讨论】:

  • 在第 3 点中,您询问了 VB6。是的,VB6 可以很好地连接到 SQL Server 2008。与 Access 或 Office 中的 VBA 非常相似。

标签: database sql-server-2008 ms-access vb6 synchronization


【解决方案1】:

只是为了给adopilot的回答加几分

1) Access 2010 确实有触发器和存储过程,但我认为它们更多是关于本机访问/喷射表,而不是链接 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 作业执行服务器端,但鉴于提供的信息有限,不确定哪个最适合您的情况

【讨论】:

  • 如果您在 Access 中使用 ODBC 链接表,则不需要 ADO。
【解决方案2】:

您可以在 SQL 中内联引用 SQL Server 数据库或 MS Access 数据库:

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

-- From databasejournal

您可以使用连接到 SQL Server 的 ADO 执行此查询

-- Connection strings

您也可以使用 ODBC 从 Access 端执行相同操作

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

您可以使用 VBScript 或其他合适的脚本运行 ADO,并使用 Windows 任务计划程序以合适的时间间隔启动脚本。这并非没有痛苦。

【讨论】:

    【解决方案3】:

    您可以尝试将 MS Access 数据库链接到 SQL 服务器,
    现在您可以从 MS Access 中的 SQL Server 查询数据。
    我不知道 MS ACCESS 上的触发器,但你可以在 MS SQL 用于周期性计数或选择数据以检查新数据。
    在对象资源管理器 -> 服务器对象 -> 链接服务器 -> 右键单击​​ -> 新建链接服务器上在 SQL MGM Studio 中创建链接服务器 然后在新查询中简单调用任何表,如

    Select * from [linked server].dbo.mytable
    

    在 MS SQL 中有 WAITFOR command 您可以实现

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2016-06-30
      相关资源
      最近更新 更多