精华内容
下载资源
问答
  • 需要在object设置中参数...然后定义object对象型recordset参数 Dim objRst As Object Dim conn As Object Set conn = New ADODB.Connection Set objRst = New ADODB.Recordset 在objRst.open前设置客户端指针: ...

    需要在object设置中参数设置,勾选ActiveX Data Objects参数

    然后定义object对象型recordset参数

    Dim objRst As Object
    Dim conn As Object

    Set conn = New ADODB.Connection
    Set objRst = New ADODB.Recordset

    在objRst.open前设置客户端指针:

    objRst.CursorLocation = adUseClient

    展开全文
  • Filter 和 RecordCount 属性示例 (VB)Filter and RecordCount properties example (VB)09/18/2015本文内容适用于:Access 2013、Office 2013Applies to: Access 2013, Office 2013本示例打开 Pubs 数据库 Publishers...

    Filter 和 RecordCount 属性示例 (VB)Filter and RecordCount properties example (VB)

    09/18/2015

    本文内容

    适用于:Access 2013、Office 2013Applies to: Access 2013, Office 2013

    本示例打开 Pubs 数据库 Publishers(发行商)表上的一个 Recordset。This example open a Recordset on the Publishers table in the Pubs database. 然后使用 Filter 属性将可见的记录数限制为发行商属于特定国家/地区的记录。It then uses the Filter property to limit the number of visible records to those publishers in a particular country/region. RecordCount 属性用于显示筛选和未筛选的记录集之间的差值。The RecordCount property is used to show the difference between the filtered and unfiltered recordsets.

    'BeginFilterVB

    'To integrate this code

    'replace the data source and initial catalog values

    'in the connection string

    Public Sub Main()

    On Error GoTo ErrorHandler

    ' recordset variables

    Dim rstPublishers As ADODB.Recordset

    Dim Cnxn As ADODB.Connection

    Dim strCnxn As String

    Dim SQLPublishers As String

    ' criteria variables

    Dim intPublisherCount As Integer

    Dim strCountry As String

    Dim strMessage As String

    ' open connection

    Set Cnxn = New ADODB.Connection

    strCnxn = "Provider='sqloledb';Data Source='MySqlServer';" & _

    "Initial Catalog='Pubs';Integrated Security='SSPI';"

    Cnxn.Open strCnxn

    ' open recordset with data from Publishers table

    Set rstPublishers = New ADODB.Recordset

    SQLPublishers = "publishers"

    rstPublishers.Open SQLPublishers, strCnxn, adOpenStatic, , adCmdTable

    intPublisherCount = rstPublishers.RecordCount

    ' get user input

    strCountry = Trim(InputBox("Enter a country to filter on (e.g. USA):"))

    If strCountry <> "" Then

    ' open a filtered Recordset object

    rstPublishers.Filter = "Country ='" & strCountry & "'"

    If rstPublishers.RecordCount = 0 Then

    MsgBox "No publishers from that country."

    Else

    ' print number of records for the original recordset

    ' and the filtered recordset

    strMessage = "Orders in original recordset: " & _

    vbCr & intPublisherCount & vbCr & _

    "Orders in filtered recordset (Country = '" & _

    strCountry & "'): " & vbCr & _

    rstPublishers.RecordCount

    MsgBox strMessage

    End If

    End If

    ' clean up

    rstPublishers.Close

    Cnxn.Close

    Set rstPublishers = Nothing

    Set Cnxn = Nothing

    Exit Sub

    ErrorHandler:

    ' clean up

    If Not rstPublishers Is Nothing Then

    If rstPublishers.State = adStateOpen Then rstPublishers.Close

    End If

    Set rstPublishers = Nothing

    If Not Cnxn Is Nothing Then

    If Cnxn.State = adStateOpen Then Cnxn.Close

    End If

    Set Cnxn = Nothing

    If Err <> 0 Then

    MsgBox Err.Source & "-->" & Err.Description, , "Error"

    End If

    End Sub

    'EndFilterVB

    备注

    [!注释] 如果知道要选择的数据,通过这种方式打开 Recordset 通过比使用 SQL 语句效率更高。本示例演示如何仅创建一个 Recordset 并获取特定国家/地区的记录。When you know the data you want to select, it's usually more efficient to open a Recordset with an SQL statement. This example shows how you can create just one Recordset and obtain records from a particular country/region.

    'BeginFilter2VB

    'To integrate this code

    'replace the data source and initial catalog values

    'in the connection string

    Public Sub Main()

    On Error GoTo ErrorHandler

    Dim rstPublishers As ADODB.Recordset

    Dim Cnxn As ADODB.Connection

    Dim strSQLPublishers As String

    Dim strCnxn As String

    ' open connection

    Set Cnxn = New ADODB.Connection

    strCnxn = "Provider='sqloledb';Data Source='MySqlServer';" & _

    "Initial Catalog='Pubs';Integrated Security='SSPI';"

    Cnxn.Open strCnxn

    ' open recordset with criteria from Publishers table

    Set rstPublishers = New ADODB.Recordset

    strSQLPublishers = "SELECT * FROM publishers WHERE Country = 'USA'"

    rstPublishers.Open strSQLPublishers, Cnxn, adOpenStatic, adLockReadOnly, adCmdText

    ' print recordset

    rstPublishers.MoveFirst

    Do While Not rstPublishers.EOF

    Debug.Print rstPublishers!pub_name & ", " & rstPublishers!country

    rstPublishers.MoveNext

    Loop

    ' clean up

    rstPublishers.Close

    Cnxn.Close

    Set rstPublishers = Nothing

    Set Cnxn = Nothing

    Exit Sub

    ErrorHandler:

    ' clean up

    If Not rstPublishers Is Nothing Then

    If rstPublishers.State = adStateOpen Then rstPublishers.Close

    End If

    Set rstPublishers = Nothing

    If Not Cnxn Is Nothing Then

    If Cnxn.State = adStateOpen Then Cnxn.Close

    End If

    Set Cnxn = Nothing

    If Err <> 0 Then

    MsgBox Err.Source & "-->" & Err.Description, , "Error"

    End If

    End Sub

    'EndFilter2VB

    展开全文
  • ADO的RECORDSET的RECORDCOUNT属性总是为-1

    千次阅读 2005-04-21 12:50:00
    ADO的RECORDSET的RECORDCOUNT属性总是为-1编号:QA002032 建立日期:1999年11月14日最后修改日期:2004年1月2日所属类别:Visual Basic - 数据库 操作系统: nt 编程工具: vb6,sql server 问题: 请问如何判断ADO的...
    ADO的RECORDSET的RECORDCOUNT属性总是为-1
    编号:QA002032  
    建立日期:1999年11月14日最后修改日期:2004年1月2日
    所属类别:Visual Basic - 数据库
      
        操作系统: nt
        编程工具: vb6,sql server
        问题: 请问如何判断ADO的RECORDSET为空?用RECORDCOUNT属性好象无论空否,值总是为-1。(mj)
      
        参考微软的Knowledge Base的文章:“Q194973 PRB: ADO: Recordcount May Return -1”,下面是该文中文译文:
        

        现象
        ====
        当在服务器端请求RecordCoun时会返回-1。这是因为ActiveX Data Objects (ADO) 2.0中的CursorType是adOpenForwardonly或者adOpenDynamic。如果是ADO 1.5,只发生在cursortype是adOpenForwardonly的时候。如果使用OLEDB provider for JET和SQL Server产生的结果可能不同,这依赖于数据库的提供者。
        提供者可能不支持某些CursorTypes。当你选择的CursorType不被支持时,提供者将选择最接近于你所请求的CursorType。请参考你的提供者的文档。此外,请注意不是所有的LockType和CursorType的组合都可以同时工作。改变LockType将强制改变CursorType。请确定使用调试来检查CursorType的值。
        
        原因
        =====
        
        在动态的游标中纪录号可能改变。Forward only的游标无法返回RecordCount。
        
        解决办法
        ==========
        使用adOpenKeyset(=1)或者adOpenStatic(=3)作为服务器端游标或者客户端游标。客户端只使用adOpenStatic作为CursorTypes,而不管你选择什么样的CursorType。
        
        状态
        ======
        
        这个形式是设计决定的。
        
        更多信息
        ================
        
        重复行为的步骤
        ---------------------------
        
        1. Open a standard .exe project in Visual Basic. From the Project menu, choose References. Select either the Microsoft Active Data Object 1.5 Library or the Microsoft Active Data Object 2.0 Library.
        
        2. Paste the following code in the form code window:
        
         Option Explicit
         Dim rs As ADODB.Recordset
        
         Private Sub Form_Load()
         'set up rs
         Set rs = New ADODB.Recordset
         rs.CursorLocation = adUseServer
         rs.Open "Select ProductID from products", & _
         "Provider=Microsoft.Jet.OLEDB.3.51;" & _
         "Data Source=d:/vb5_win95/nwind.mdb", _
         adOpenDynamic, adLockUnspecified
        
         Debug.Print rs.RecordCount
         End Sub
        
         3. Replace the preceding Data Source with a Data Source on your computer. Run the preceding form and note the record count. Change the CursorType to adOpenForwardonly and note the record count.
        
         4. Change the CursorLocation to adUseClient and experiment with the different CursorTypes. In all cases the correct record count returns.
        

        
        陈晓鸣的意见:
        在打开recordset记录集的时候,如果参数3(就是CursorType)为键盘索引或者向前索引时(CursorType参数为0 or 1),为了提高处理速度,recordset纪录是一条一条给你的,而不是一下子都给你的。解决方法是使用动态或静态索引(CursorType参数为2 or 3)
        
        姚来存的意见:
        因为在c/s结构中,记录集是分页存储的,当你从服务器请求数据时,它不会给你全部数据。最好用rs.getrows()的到所有记录行
        
        杨晓峰、梦小凡的意见:
        将ADO连接的CursorLocation属性设置为客户端:rs.CursorLocation = adUseClient就行了。
        
        宋传真的意见:
        如果只是要判断ADO的RECORDSET为空,用RECORDSET.EOF=TRUE就行了!我从不用RECORDSETCOUNT=0判断是否为空!
        
        伊冰山的意见:
        如果ADO的RECORDCOUNT为-1,只要设置CursorType参数为2 or 3就行啊。
    展开全文
  • VB ADODB中的RecordSet.Open的参数

    千次阅读 2013-09-14 11:34:30
    把adLockOptimistic写成了adLockBatchOptimistic、因为没语法错误所以没报错、随后我查了两个的属性 adLockOptimistic当数据源正在更新时,系统不会锁定其他用户的动作,其他用户可以对数据进行增、删、改操作。 ...

    这三天做机房收费有个问题一直没解决、就是数据库插入数据、插入不进去、但是就不报错、最后师傅给我看了看、终于发现了问题


    把adLockOptimistic写成了adLockBatchOptimistic、因为没语法错误所以没报错、随后我查了两个的属性

    adLockOptimistic当数据源正在更新时,系统不会锁定其他用户的动作,其他用户可以对数据进行增、删、改操作。

    adLockBatchOptimistic当数据源正在更新时,其他用户必须将CursorLocation改为adUdeClientBatch才能对数据进行增、删、改的操作。


    所以换成adLockBatchOptimistic就不行了、我又查了别的打开记录的属性、这是链接

    源文档 <http://www.cnblogs.com/rosesmall/archive/2012/11/20/2779083.html

    这坑爹的货让我找了3天、头晕脑胀眼睛花= =

    —————缺少发现的眼睛—————————chenchen

    展开全文
  • 先对vb数据库开发经典实例解析这本书进行了一定的学习,实例1至实例5敲完了,低下头仔细想了想,印象最深的两个东东就是ADO Recordset 和 ADO Connection,好像哪都少不了,虽然记得他们但是却不知道他们具体是干...
  • VB控件属性及其一些常数(续1)

    千次阅读 2015-03-13 08:53:29
    2.07、数据列表(DataList) 控件的常用属性 属性说明 (Name) 数据列表(DataList)控件的名称 (自定义) 打开属性页 ...Appearance 是否用立体效果绘制...BoundColumn 获得或设置一个Recordset(记录集)对象中的源字段名
  • vb eof详解

    2016-10-19 21:58:00
    word=eof%20sql&skiptype=2  BOF:指当前记录位置位于Recordset对象的第一个记录之前;  EOF:指当前记录位置位于Recordset对象的最后一个记录之后。... 这两个的属性值均返回布尔型:T...
  • VB中Execute的用法

    千次阅读 2016-11-07 19:27:32
    VB中Execute是指ADO命令之一:Execute 方法。 Execute 方法,执行在 CommandText 属性中指定的查询、SQL 语句或存储过程。 语法 对于按行返回的 Command: Set recordset = command.Execute( ...
  • VB.NET访问SQLServer数据库

    万次阅读 多人点赞 2012-02-09 16:04:03
    vb6.0编写收费系统,用的是ADODB(Active Data Objects Data Base)+Recordset,而在vb.net中用的是SqldataAdapter、SqldataReadr、Dataset和Datatable,刚刚写第二遍收费系统时,对这几个概念模糊,也能反映出当时...
  • 实例一: 系统登录对话框设计分析:数据库管理系统登录...技术要领:1、Enter 、Cancel2、ADO Connection对象3、ADO RecordSet对象(相关属性:Active connection、Eof、Field;方法:open;Fields集合)4、自己定义...
  • VB数据库编辑与查询

    2013-05-15 20:57:52
    1建立两个data控件,修改databasename属性和recordsourse属性,使其连接到student.mdb和student1.mdb的学生基本信息表,建立五个text控件及一个picturebox控件并修改它们的datasourse属性使其连接到data1,修改它们...
  • VB中 EOF 和 BOF 的区别

    2018-11-25 14:31:21
    这两个的属性值均返回布尔型:True和False,使用BOF和 EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。 下表即是各自的使用说明及查询结果: ...
  • 在这些天敲写和调试学生信息...  这两个的属性值均返回布尔型:True和False,使用BOF 和 EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。 下表即是各
  • vb DataGrid 控件的使用

    2008-10-05 13:51:36
    DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在...
  • Data控件是vb数据库编程访问数据库的一种利器,它能够利用三种Recordset对象来访问数据库中的数据,数据控件提供有限的不需编程而能访问现存数据库的功能,允许将VisualBasic的窗体与数据库方便地进行连接。...
  • DataGrid控件的使用(VB)

    千次阅读 2009-08-22 21:06:00
    使用 DataGrid 控件 DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。...
  • 搜索热词实例一: 系统登录对话框设计分析:数据库管理系统登录...技术要领:1、Enter 、Cancel2、ADO Connection对象3、ADO RecordSet对象(相关属性:Active connection、Eof、Field;方法:open;Fields集合)操作...
  • DataGrid 控件在VB的详细使用

    万次阅读 2006-12-21 11:57:00
    使用 DataGrid 控件 DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。...
  • 错误为子程序或函数中的属性无效 form1中: Public j As Integer Private Sub Form1_Load() Public cnn As New ADODB.Connection Public rs As New ADODB.Recordset cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0...
  • Dim rs As New ADODB.Recordset '﹚竡ADODB Dim strCn As String Dim db_host As String Dim db_user As String Dim db_pass As String Dim db_data As String Dim i As Integer ' ﹚竡 SQL 粂 Dim sql ...
  • 三、[VB MSHFlexGrid控件:CellAlignment 属性] 二、代码 Private Sub cmdInquiry_Click() Dim txtSQL As String Dim msgtext As String Dim mrc As ADODB.Recordset txtSQL = "select * from stu...
  • 数据库连接(二)

    千次阅读 热门讨论 2014-02-10 20:07:41
    VB中使用ADO对象访问数据库必须建立对ADO对象的应用 ADO 三个独立对象有Connection Command Recordset和 四个非独立对象 Field、parameter、property、error非独立对象以来与独立对象使用。 ...
  • COM 与 COM+ 从入门到精通 书籍

    热门讨论 2008-09-09 16:06:30
    在服务器组件中使用Recordset对象 在客户机组件中使用ADOR 生成断开的Recodset 生成自己的RecodsctS 使用用户定义类型 错误处理 服务器客户机错误处理 使用VBErr.Raise机制 在VB中使用线程模型 设置线程...
  • 使用ADO来获取一个文件的思路是,通过Connection 对象的OpenSchema的... 欲想了解这个RECORDESET对象里面的字段属性,可以使用VB的监视器在相应代码处中断,查看信息.下面给出例子和注释Public Sub OpenSchemaX() Dim
  • 读取数据库

    2007-06-14 01:41:00
    实际上C#就一般的操作来说,只是区分大小写和多了一个分号这两点与VB.NET不同其他都差不多啊。在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插就可以显示了,但是ASP.NET讲究的是代码分离,如果...
  • 在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插就可以显示了,但是ASP.NET讲究的是代码分离,如果还是这样显示数据就不能代码分离了。所以我们有两种方法:如果是读取一条记录的数据或者不多的...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

recordset属性vb