使用ADO操作SQL SERVER 通过'OLE DB 访问 ACCESS 数据库 ,实现数据交换

使用的存储过程简介
1、sp_addlinkedserver --- 为SQL SERVER 添加一个Link Server
2、sp_addlinkedsrvlogin --- 为Link Server 添加一个 Login
3、sp_droplinkedsrvlogin --- 删除Link Server的Login
4、sp_dropserver  --- 删除Link Server
详细请参考 SQL SERVER Book Online
使用的命令
1、use 切换到一个指定的数据库
2、OPENQUERY 从一个现有的Link Server  执行一个查询

    Dim cn As ADODB.Connection
    Dim strsql As String
    Dim rs As ADODB.Recordset
   
    '打开连接
    Set cn = New ADODB.Connection
    cn.Open "连接"
    strsql = "use master"
    cn.Execute strsql
    '添加一个LinkServer
    strsql = "exec sp_addlinkedserver"
    strsql = strsql & " @server = 'AccessDataSrv',"
    strsql = strsql & " @provider = 'Microsoft.Jet.OLEDB.4.0',"
    strsql = strsql & " @srvproduct = 'OLE DB Provider for Jet',"
    strsql = strsql & " @datasrc = 'C:/Test.mdb'"
    cn.Execute strsql
    '添加一个LinkServer Login 如果你的数据库有密码和用户认证的话
    'strsql = "EXEC sp_addlinkedsrvlogin 'AccessDataSrv', 'false', '当前用户', '用户', '密码'"

    strsql = "exec sp_addlinkedsrvlogin 'AccessDataSrv', 'false'"
   
    cn.Execute strsql
   
    strsql = "use tt"
    strsql = "insert into testlinsrv(id,field2)"
    strsql = strsql & " select * from OPENQUERY(AccessDataSrv,'select a1,a2 from testlinksrv')"
   
    cn.Execute strsql
   
    strsql = "use master"
   
    cn.Execute strsql
    '删除linksrv的login
    strsql = "exec sp_droplinkedsrvlogin 'AccessDataSrv', null"
   
    cn.Execute strsql
    '删除linksrv
    strsql = "exec sp_dropserver 'AccessDataSrv'"
   
    cn.Execute strsql
    '返回数据
    strsql = "select * from testlinsrv"
   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在VBA中将Access数据库中的数据写入到SQL Server,可以采用以下步骤: 1. 首先,在VBA代码中连接到Access数据库SQL Server数据库。可以使用ADODB对象模型来实现。例如,使用ADO连接字符串来连接到Access数据库: ```vba Dim conn As ADODB.Connection Set conn = New ADODB.Connection conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=YourAccessDatabase.accdb;Persist Security Info=False;" conn.Open ``` 以及连接到SQL Server数据库: ```vba Dim connSQL As ADODB.Connection Set connSQL = New ADODB.Connection connSQL.ConnectionString = "Provider=SQLOLEDB;Data Source=YourSQLServer;Initial Catalog=YourDatabase;User ID=YourUsername;Password=YourPassword;" connSQL.Open ``` 2. 使用ADODB.Recordset对象从Access数据库取数据。例如,从Access表中取用户信息: ```vba Dim rst As ADODB.Recordset Set rst = New ADODB.Recordset rst.Open "SELECT * FROM YourAccessTable", conn ``` 3. 创建一个INSERT INTO语句,以将数据插入SQL Server数据库中的相应表。例如,将用户信息插入SQL Server表中: ```vba While Not rst.EOF Dim sql As String sql = "INSERT INTO YourSQLTable (Column1, Column2) VALUES ('" & rst.Fields("Field1").Value & "', '" & rst.Fields("Field2").Value & "')" connSQL.Execute sql rst.MoveNext Wend ``` 4. 关闭连接和释放对象资源: ```vba rst.Close conn.Close Set rst = Nothing Set conn = Nothing Set connSQL = Nothing ``` 这样,就可以通过VBA将Access数据库中的数据写入到SQL Server数据库了。注意,在实际应用中,需要根据具体的表结构和字段设置来编写相应的SQL语句和字段值的拼接方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值