Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Ms access 将数据从sqlserver数据库复制到access数据库,反之亦然_Ms Access_Sql Server 2012_Ado - Fatal编程技术网

Ms access 将数据从sqlserver数据库复制到access数据库,反之亦然

Ms access 将数据从sqlserver数据库复制到access数据库,反之亦然,ms-access,sql-server-2012,ado,Ms Access,Sql Server 2012,Ado,我已经建立了一个由ms access作为前端的程序,并将数据保存在sql server数据库中。我的程序中还有一些本地表。 我的程序通过连接字符串连接到sql server,我可以读取、写入、删除和更新数据。有时我需要将查询结果复制到本地表到access中,有时我想将一个access表附加到sql表中 我已编写了一个连接,并尝试按如下方式执行: Function CopyData() Dim cn as ADODB.Connection Dim strServer, strDatabas

我已经建立了一个由ms access作为前端的程序,并将数据保存在sql server数据库中。我的程序中还有一些本地表。 我的程序通过连接字符串连接到sql server,我可以读取、写入、删除和更新数据。有时我需要将查询结果复制到本地表到access中,有时我想将一个access表附加到sql表中

我已编写了一个连接,并尝试按如下方式执行:

Function CopyData()
Dim cn as ADODB.Connection    
Dim strServer, strDatabase, strUsername, strPassword As String
    Dim strConnectionString As String
    strServer = "10.25.2.120"
    strDatabase = "dbKala"
    strUsername = "javid"
    strPassword = "1234"

    strConnectionString = "Provider=SQLOLEDB;Data Source=" & strServer & ";Initial Catalog=" & strDatabase & ";User ID=" & strUsername & ";Password=" & strPassword & ";"

    Set cn = New ADODB.Connection
    cn.ConnectionString = strConnectionString
    cn.CommandTimeout = 0
    cn.Open
   cn.Execute "INSERT INTO GetTelServer Select * FROM dbo.telefone"
End Function
但数据不会从sql复制到access,并向我显示一条关于无效对象的消息—我的access表
我需要帮助我如何将查询从sql复制到access表,反之

使用链接的DAO.Tables,这项任务会容易得多,但需要sql Server的适当ODBC驱动程序

如果Ms Access和SQL Server的位匹配(x64),您可以尝试在SQL Server上使用从那里访问Ms Access表

例如

插入SqlServerTable(SqlServerField)从OPENROWSET('Microsoft.Jet.OLEDB.4.0'中选择AccessField,
“C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb”;
“admin”;“”,AccessTable);
如果比特数不匹配,则必须创建两个不同的连接并使用记录集(或插入操作查询)

一个用于选择数据,第二个用于插入:

Dim cn作为ADODB.Connection,rs作为ADODB.Recordset
Dim cn2作为ADODB.Connection,rs2作为ADODB.Recordset
Set cn=New ADODB.Connection
cn.Open“Provider=SQLNCLI11;Server=Server;Database=db;Trusted\u Connection=yes
设置cn2=新的ADODB.连接
cn2.Open“Provider=Microsoft.ACE.OLEDB.12.0;数据源=Path\To\AccessDb
设置rs=cn.Execute(“从SQLSERVERTable中选择SqlServerField”)
设置rs2=cn2.Execute(“从AccessTable中选择AccessField”)
直到rs2.Eof为止
艾德纽卢比
rs.Fields(“SqlServerField”).Value=rs2.Fields(“AccessField”).Value
rs.更新
rs2.MoveNext
环
rs.Close
rs2.关闭
cn.Close
cn2.关闭

当然,字段数据类型必须兼容。

请提供完整代码,特别是如何初始化
cn
。此外,我的程序通过连接字符串连接到sql server意味着什么?你们有链接表吗?我使用ms access作为前台,我的数据库是sql server,我没有链接表。我在上面编辑代码