设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] [求助]如何在程序中(VBA)返回查询的记录数的数值?

[复制链接]
跳转到指定楼层
1#
发表于 2003-5-21 01:00:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,多谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2003-5-21 23:23:00 | 只看该作者
自己顶一下,难道没有知道吗?
3#
发表于 2003-5-23 06:51:00 | 只看该作者
试一下 Me.Form.RecordsetClone.RecordCount这个属性
4#
 楼主| 发表于 2003-5-23 18:57:00 | 只看该作者
不行,我试过了.还有别的吗?
5#
发表于 2003-5-23 19:35:00 | 只看该作者
以下是access-VBA帮助中的一个条目:希望对你有帮助,详细情形可以直接参考软件的帮助。
Filter 和 RecordCount 属性范例
该范例使用 Filter 属性打开一个新的 Recordset,它基于适用于已有 Recordset 的指定条件。它使用 RecordCount 属性显示两个 Recordsets 中的记录数。该过程运行时需要 FilterField 函数。

Public Sub FilterX()

    Dim rstPublishers As ADODB.Recordset
    Dim rstPublishersCountry As ADODB.Recordset
    Dim strCnn As String
    Dim intPublisherCount As Integer
    Dim strCountry As String
    Dim strMessage As String

    ' 使用出版商表中的数据打开记录集。
    strCnn = "rovider=sqloledb;" & _
        "Data Source=srv;Initial Catalog=pubs;User Id=saassword=; "
    Set rstPublishers = New ADODB.Recordset
    rstPublishers.CursorType = adOpenStatic
    rstPublishers.Open "publishers", strCnn, , , adCmdTable

    ' 充填记录集。
    intPublisherCount = rstPublishers.RecordCount

    ' 获得用户输入。
    strCountry = Trim(InputBox( _
        "Enter a country/region to filter on:"))

    If strCountry <> "" Then
        ' 打开已筛选的记录集对象。
        Set rstPublishersCountry = _
            FilterField(rstPublishers, "Country", strCountry)

        If rstPublishersCountry.RecordCount = 0 Then
            MsgBox "No publishers from that country/region."
        Else
            ' 打印原始记录集和已筛选记录集对象的记录数。
            strMessage = "Orders in original recordset: " & _
                vbCr & intPublisherCount & vbCr & _
                "Orders in filtered recordset (Country = '" & _
                strCountry & "'): " & vbCr & _
                rstPublishersCountry.RecordCount
            MsgBox strMessage
        End If
        rstPublishersCountry.Close

    End If

End Sub

Public Function FilterField(rstTemp As ADODB.Recordset, _
    strField As String, strFilter As String) As ADODB.Recordset

    ' 在指定的记录集对象上设置筛选操作并打开一个新的记录集对象。
    rstTemp.Filter = strField & " = '" & strFilter & "'"
    Set FilterField = rstTemp

End Function

注意   当已知要选择的数据时,使用 SQL 语句打开 Recordset 通常更为有效。该范例说明了如何创建唯一的 Recordset 并从特定的国家(地区)获得记录。

Public Sub FilterX2()

    Dim rstPublishers As ADODB.Recordset
    Dim strCnn As String

    ' 使用出版商表中的数据打开记录集。
    strCnn = "rovider=sqloledb;" & _
        "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
    Set rstPublishers = New ADODB.Recordset
    rstPublishers.CursorType = adOpenStatic
    rstPublishers.Open "SELECT * FROM publishers " & _
        "WHERE Country = 'USA'", strCnn, , , adCmdText
        
    ' 打印记录集中的当前数据。
    rstPublishers.MoveFirst
    Do While Not rstPublishers.EOF
        Debug.Print rstPublishers!pub_name & ", " & _
            rstPublishers!country
        rstPublishers.MoveNext
    Loop

    rstPublishers.Close

End Sub
6#
 楼主| 发表于 2003-5-23 20:11:00 | 只看该作者
查询是该数据库中的记录,不能自己联自己吧.我试了不能链接.
7#
发表于 2003-6-1 03:56:00 | 只看该作者
Public 查询记录 As String
Function Ruser() As String
    自定义的全局变量 = 查询记录
End Function
-------设置一个标准模块,并定义全局变量将查询的记录数值赋予全局变量,该全局变量也可以是表中的某个字段名。
8#
发表于 2003-6-1 03:58:00 | 只看该作者
Function Ruser() As String
错了,上面的这条语句去除。
9#
发表于 2003-6-1 07:29:00 | 只看该作者
Set qdfTemp = .CreateQueryDef("hello", _
            "SELECT count( your field) FROM yourquery")
msgbox hello.yourfield
[此贴子已经被作者于2003-5-31 23:45:33编辑过]

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

本版积分规则

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

GMT+8, 2024-10-6 06:50 , Processed in 0.100508 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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