Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 有关MS Access和SQL Server 2008的帮助_Database_Sql Server 2008_Ms Access_Vb6_Synchronization - Fatal编程技术网

Database 有关MS Access和SQL Server 2008的帮助

Database 有关MS Access和SQL Server 2008的帮助,database,sql-server-2008,ms-access,vb6,synchronization,Database,Sql Server 2008,Ms Access,Vb6,Synchronization,我需要有人给我指出正确的方向,我有一个由HP设备更新的MS Access数据库,我必须将它与SQL Server 2008同步 我有一些想法,我想知道你对此有何看法: 访问时是否有类似触发器的内容?如果是,我可以与SQL Server通信吗? 是否有任何方法可以使用VBA以便access告诉我的VBA宏或任何东西在SQL Server上进行更新? 有没有一种简单的方法可以从VB6连接到SQLServer2008? 使用在后台运行的脚本,并在X分钟或秒时检查数据库。 欢迎提出任何其他想法或建议 谢

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

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

访问时是否有类似触发器的内容?如果是,我可以与SQL Server通信吗? 是否有任何方法可以使用VBA以便access告诉我的VBA宏或任何东西在SQL Server上进行更新? 有没有一种简单的方法可以从VB6连接到SQLServer2008? 使用在后台运行的脚本,并在X分钟或秒时检查数据库。 欢迎提出任何其他想法或建议


谢谢你的英文版。你可以尝试将MS Access数据库链接到SQL server, 现在,您可以从MS Access中的SQL server查询数据。 我不知道MS ACCESS上的触发器,但您可以在中实现一些循环 MS SQL将周期计数或选择数据以检查新数据。 要在对象资源管理器->服务器对象->链接服务器->右键单击->新建链接服务器上的SQL MGM Studio中创建链接服务器 然后在新查询中简单地调用任意表,如

Select * from [linked server].dbo.mytable

在MS SQL中,您可以实现它,只需在adopilot的答案中添加几点即可

1 Access 2010确实有触发器和存储过程,但它们更多地是关于本机Access/jet表,而不是我认为的链接SQL表

2&3如果您希望将VB6或VBA连接到SQL server,则所使用的技术称为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作业在服务器端执行此操作,但由于提供的信息有限,因此不确定哪种操作最适合您的情况

您可以在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) 
-

您可以使用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

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

在第3点中,您询问了VB6。是的,VB6可以很好地连接到SQL Server 2008。与Access或Office中的VBA非常相似。如果在Access中使用ODBC链接表,则不需要ADO。