设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] ADO作为窗体数据源,一段可读写,一段只读,为什么?

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-29 15:41:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 老鬼 于 2012-8-29 15:42 编辑

两段用ADO连接SQL SERVER并作为窗体数据源,一段可读写,一段只读,为什么?
  1. Private Sub Form_Open(Cancel As Integer)
  2.    '这段在窗体上可读写
  3.    Dim cn As ADODB.Connection
  4.    Dim rs As ADODB.Recordset

  5.    Set cn = New ADODB.Connection
  6.    With cn
  7.       .Provider = "Microsoft.Access.OLEDB.10.0"
  8.       .Properties("Data Provider").Value = "SQLOLEDB"
  9.       .Properties("Data Source").Value = "127.0.0.1"
  10.       .Properties("User ID").Value = "sa"
  11.       .Properties("Password").Value = "密码"
  12.       .Properties("Initial Catalog").Value = "库名"
  13.       .Open
  14.    End With

  15.    Set rs = New ADODB.Recordset
  16.    With rs
  17.       Set .ActiveConnection = cn
  18.       .Source = "SELECT * FROM TblAssets"
  19.       .LockType = adLockOptimistic
  20.       .CursorType = adOpenKeyset
  21.       .Open
  22.    End With
  23.    
  24.    Set Me.Recordset = rs
  25.    Set rs = Nothing
  26.    Set cn = Nothing
  27. End Sub
复制代码
  1. Private Sub Form_Open(Cancel As Integer)
  2.    '这段在窗体上为只读
  3.    Dim cn As ADODB.Connection
  4.    Dim rs As ADODB.Recordset

  5.    Set cn = New ADODB.Connection
  6.    cn.Open "Provider=SQLOLEDB;Server=127.0.0.1;Database=库名;UID=sa;PWD=密码;"

  7.    Set rs = New ADODB.Recordset
  8.    With rs
  9.       Set .ActiveConnection = cn
  10.       .Source = "SELECT * FROM TblAssets"
  11.       .LockType = adLockOptimistic
  12.       .CursorType = adOpenKeyset
  13.       .Open
  14.    End With
  15.    
  16.    Set Me.Recordset = rs
  17.    Set rs = Nothing
  18.    Set cn = Nothing
  19. End Sub
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2012-8-29 16:51:28 | 只看该作者
说明一下:两段代码不一样的地方只有cn的连接字符串。

点击这里给我发消息

3#
发表于 2012-8-29 21:02:38 | 只看该作者
前一段的ADO的提供者是Microsoft.Access.OLEDB.10.0,后一段的提供者是SQLOLEDB,这就是原因。
4#
发表于 2012-8-29 22:47:13 | 只看该作者
zhuyiwen 发表于 2012-8-29 21:02
前一段的ADO的提供者是Microsoft.Access.OLEDB.10.0,后一段的提供者是SQLOLEDB,这就是原因。

学习了
5#
 楼主| 发表于 2012-8-30 09:20:21 | 只看该作者
zhuyiwen 发表于 2012-8-29 21:02
前一段的ADO的提供者是Microsoft.Access.OLEDB.10.0,后一段的提供者是SQLOLEDB,这就是原因。

那后一段怎么改可以读写呢?
6#
 楼主| 发表于 2012-8-30 09:26:45 | 只看该作者
改成下面这样可以读写了,{:soso_e113:}
  1. cn.Open "Provider=Microsoft.Access.OLEDB.10.0;Data Provider=SQLOLEDB;Server=127.0.0.1;Database=库名;UID=sa;PWD=密码;"
复制代码

点击这里给我发消息

7#
发表于 2012-8-30 10:19:17 | 只看该作者
老鬼 发表于 2012-8-30 09:26
改成下面这样可以读写了,
  1. cn.Open "Provider=Microsoft.Access.OLEDB.10.0;Data Provider=SQLOLEDB;Server=127.0.0.1;Database=库名;UID=sa;PWD=密码;"
复制代码


OK!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 05:52 , Processed in 0.099224 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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