设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] 无源ADO如何显视表的全部内容[已解决]

[复制链接]
跳转到指定楼层
1#
发表于 2011-2-5 17:34:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 huangjingfeng88 于 2011-2-8 22:00 编辑

具体情况请看附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-2-5 18:47:45 | 只看该作者
下面的示例演示如何打开您自己的 ADO 连接 Microsoft SQL Server 数据库以及将窗体绑定到它:
打开示例数据库 Northwind.mdb。
在设计视图中打开客户窗体。
清除窗体,以取消绑定窗体的 记录源 属性。
Set the OnOpen property of the form to the following event procedure:
Private Sub Form_Open(Cancel As Integer)
   Dim cn As ADODB.Connection
   Dim rs As ADODB.Recordset
         
   'Create a new ADO Connection object
   Set cn = New ADODB.Connection

   'Use the Access 10 and SQL Server OLEDB providers to
   'open the Connection
   'You will need to replace MySQLServer with the name
   'of a valid SQL Server
   With cn
      .Provider = "Microsoft.Access.OLEDB.10.0"
      .Properties("Data Provider").Value = "SQLOLEDB"
      .Properties("Data Source").Value = "MySQLServer"
      .Properties("User ID").Value = "sa"
      .Properties("Password").Value = ""
      .Properties("Initial Catalog").Value = "NorthwindCS"
      .Open
   End With

   'Create an instance of the ADO Recordset class, and
   'set its properties
   Set rs = New ADODB.Recordset
   With rs
      Set .ActiveConnection = cn
      .Source = "SELECT * FROM Customers"
      .LockType = adLockOptimistic
      .CursorType = adOpenKeyset
      .Open
   End With
   
   'Set the form's Recordset property to the ADO recordset
   Set Me.Recordset = rs
   Set rs = Nothing
   Set cn = Nothing
End Sub

将下面的代码添加到窗体的卸载事件:
Private Sub Form_Unload(Cancel As Integer)
   'Close the ADO connection we opened
   Dim cn As ADODB.Connection
   Set cn = Me.Recordset.ActiveConnection
   cn.Close
   Set cn = Nothing
End Sub

3#
发表于 2011-2-5 19:04:26 | 只看该作者
详情请看微软的文章
http://support.microsoft.com/kb/281998/zh-cn
4#
 楼主| 发表于 2011-2-6 23:48:39 | 只看该作者
请老师再帮我看下,我改了下代码,但还是不成功,主要是SQL连接不上,我用ADP测试是能连上的,不知道是版本问题还是其它原因

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2011-2-7 08:37:03 | 只看该作者
Private Sub Form_Load()
Dim rs1 As New ADODB.Recordset
rs1.Open "库存表", CurrentProject.Connection, adOpenStatic, , adCmdTable
Set Me.Recordset = rs1
Me.出厂编号.ControlSource = "出厂编号"
Me.车型.ControlSource = "车型"
Me.数量.ControlSource = "数量"
End Sub
6#
 楼主| 发表于 2011-2-7 11:57:03 | 只看该作者
本帖最后由 huangjingfeng88 于 2011-2-7 12:10 编辑

谢谢版主回复,但版主是对本MDB内表的ADO连接,我想要的是对SQL的连接,我将代码改为
rs1.Open "库存表", Cnn, CurrentProject.Connection, adOpenStatic, , adCmdTable
报错误参数号或无数属性值

点击这里给我发消息

7#
发表于 2011-2-7 15:52:34 | 只看该作者
2 楼,正解
8#
 楼主| 发表于 2011-2-7 16:38:22 | 只看该作者
我按2楼老师的回复改了代码,但还是没成功,请老师帮我看下为什么好吗
9#
发表于 2011-2-8 15:59:24 | 只看该作者
先使用基于mdb的数据库表创建绑定窗体,然后在窗体的Open事件中加载连接到SQL Server的数据源。
前期绑定写法(必须引用ADO):
  1. Private Sub Form_Open(Cancel As Integer)
  2.     Dim cnn         As ADODB.Connection
  3.     Dim rst         As ADODB.Recordset
  4.     Dim strServer   As String
  5.     Dim strUserName As String
  6.     Dim strPassword As String
  7.     Dim strDatabase As String
  8.    
  9.     strServer = "(local)"
  10.     strUserName = "sa"
  11.     strPassword = "1234"
  12.     strDatabase = "db_Csell"
  13.    
  14.     cnn.Open "Provider=SQLOLEDB" & _
  15.              ";Data Source=" & strServer & _
  16.              ";Initial Catalog=" & strDatabase, _
  17.              strUserName, strPassword
  18.     rst.CursorLocation = adUseClient
  19.     rst.Open "SELECT * FROM 库存表;", cnn, adOpenKeyset, adLockOptimistic
  20.     Set Me.Recordset = rst
  21.     Set rst = Nothing
  22.     Set cnn = Nothing
  23. End Sub
复制代码
后期绑定写法(不需要引用ADO):
  1. Private Sub Form_Open(Cancel As Integer)
  2.     Dim cnn         As Object
  3.     Dim rst         As Object
  4.     Dim strServer   As String
  5.     Dim strUserName As String
  6.     Dim strPassword As String
  7.     Dim strDatabase As String
  8.    
  9.     strServer = "(local)"
  10.     strUserName = "sa"
  11.     strPassword = "1234"
  12.     strDatabase = "db_Csell"
  13.    
  14.     Set cnn = CreateObject("ADODB.Connection")
  15.     cnn.Open "Provider=SQLOLEDB" & _
  16.              ";Data Source=" & strServer & _
  17.              ";Initial Catalog=" & strDatabase, _
  18.              strUserName, strPassword
  19.     Set rst = CreateObject("ADODB.Recordset")
  20.     rst.CursorLocation = 3
  21.     rst.Open "SELECT * FROM 库存表;", cnn, 1, 3
  22.     Set Me.Recordset = rst
  23.     Set rst = Nothing
  24.     Set cnn = Nothing
  25. End Sub
复制代码
10#
 楼主| 发表于 2011-2-8 21:58:47 | 只看该作者
谢谢红尘老师的指点,问题已解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-9 19:46 , Processed in 0.196250 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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