一个关于数据库查询的问题

xchfriend 2003-08-31 08:35:02
题目:我现在要做一个多条件查询。(后台数据库和前台操作在不同的机器上)
如:
条件:(1)大于30 (2)男性

当我选中条件(1)时,从数据库中查询出相应的记录并显示在vb控件MsFhlexGrid中,当我再选中条件(2)时,从上一步的操作结果中再选出满足条件的记录。
要求:1,第一步操作结果不能保存在临时表中
2,第二步操作要利用第一步的结果

请问该如何实现?
...全文
50 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisen101 2003-08-31
  • 打赏
  • 举报
回复
可以利用 RecordSet的Filter属性,例子见下面:

使用 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 = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set rstPublishers = New ADODB.Recordset
rstPublishers.CursorType = adOpenStatic
rstPublishers.Open "publishers", strCnn, , , adCmdTable

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

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

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

If rstPublishersCountry.RecordCount = 0 Then
MsgBox "No publishers from that country."
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 并从特定的国家(地区)获得记录。
xchfriend 2003-08-31
  • 打赏
  • 举报
回复
请各位写一下具体的代码好吗?
zhangying7725 2003-08-31
  • 打赏
  • 举报
回复
Top!
zhangying7725 2003-08-31
  • 打赏
  • 举报
回复
Top!
zhangying7725 2003-08-31
  • 打赏
  • 举报
回复
建议用ADO进行操作。用SQL进行第一个条件查询,结果保存在记录集中,进行第二个条件的查询,只需在记录集中按照条件再查对应字段符合的记录即可。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧