设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1641|回复: 4
打印 上一主题 下一主题

[模块/函数] 求助:帮忙看看代码有什么问题?

[复制链接]
跳转到指定楼层
1#
发表于 2011-5-26 00:45:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
有本地Access数据库 Test1
有远程Sqlserver 数据库Test2,表aaa

将Sqlserver中Test2.aaa 复制到本地Test1中。

SUB Test()
        On Error GoTo aaa
        Dim ErrorCode As Long
        Dim cnnA As New ADODB.Connection
        Dim rsA As New ADODB.Recordset
        Dim cnnAStr, StrAccess As String
        cnnAStr = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test1.mdb"
        cnnA.Open cnnAStr
        
        Dim cnnS As New ADODB.Connection
        Dim rsS As New ADODB.Recordset
        Dim cnnSStr, StrSql As String
        cnnSStr = "rovider=SQLOLEDB;Data Source=123.45.54.321;Database=Test2;User ID=saassword=123"
        cnnS.Open cnnSStr
        
        
        StrAccess = "select * from aaa"
        rsA.Open StrAccess, cnnA, adOpenStatic, adLockOptimistic
        If ErrorCode = 0 Then
            rsA.Close
            Set rsA = Nothing
            '表已存在!","
            cnnA.Execute ("Drop Table  aaa")
        End If
        StrSql = "select * into aaa from [" & cnnSStr & "].aaa"
        Set rsA = cnnA.Execute(StrSql)
        rsA.Close
        Set rsA = Nothing
        MsgBox "ok!"
        Exit Sub
aaa:
        ErrorCode = Err.Number
        Resume Next
End Sub

执行到红色一行,报错:-2147467259   找不到可安装的 ISAM。
检查注册表没法现问题。两个数据库连接正常。
感觉问题出在 StrSql = "select * into aaa from [" & cnnSStr & "].aaa"
请高手帮忙!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
5#
发表于 2011-5-29 18:14:44 | 只看该作者
本帖最后由 aslxt 于 2011-5-30 12:41 编辑

直接在查询中试一下,应该可行:
select * into 本地access表 from [ODBC;Driver=SQL Server;Server=服务器IP;Uid=sql用户登录名;wd=sql登录密码;database=sql服务器数据库名].sql表名
4#
 楼主| 发表于 2011-5-28 15:24:04 | 只看该作者
回复 roych 的帖子

目前就是打开记录集时出的问题。
我觉得 StrSql = "select * into aaa from [" & cnnSStr & "].aaa"
中的[" & cnnSStr & "].aaa 应该是远端的sqlserver的表。后面是打开本地access记录集。
想实现的应该是 select * into 本地access.aaa from 远端sqlserver.aaa。
3#
发表于 2011-5-26 13:48:12 | 只看该作者
cnnS.Open cnnSStr只是打开数据库连接。还应该打开表。aaa是里面的表吧?改成这样看看?
StrSql = "select * into aaa from aaa",只是你的生成表怎么会跟生成表查询同名呢?这很是
2#
 楼主| 发表于 2011-5-26 12:03:27 | 只看该作者
没人能帮忙吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-26 04:47 , Processed in 0.102761 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表