题目:我现在要做一个多条件查询。(后台数据库和前台操作在不同的机器上)
如:
条件:(1)大于30 (2)男性
当我选中条件(1)时,从数据库中查询出相应的记录并显示在vb控件MsFhlexGrid中,当我再选中条件(2)时,从上一步的操作结果中再选出满足条件的记录。
要求:1,第一步操作结果不能保存在临时表中
2,第二步操作要利用第一步的结果 请问该如何实现?
如:
条件:(1)大于30 (2)男性
当我选中条件(1)时,从数据库中查询出相应的记录并显示在vb控件MsFhlexGrid中,当我再选中条件(2)时,从上一步的操作结果中再选出满足条件的记录。
要求:1,第一步操作结果不能保存在临时表中
2,第二步操作要利用第一步的结果 请问该如何实现?
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 IfEnd SubPublic Function FilterField(rstTemp As ADODB.Recordset, _
strField As String, strFilter As String) As ADODB.Recordset ' 在指定的记录集对象上设置筛选操作并打开一个新的记录集对象。
rstTemp.Filter = strField & " = '" & strFilter & "'"
Set FilterField = rstTempEnd Function注意 当已知要选择的数据时,使用 SQL 语句打开 Recordset 通常更为有效。该范例说明了如何创建唯一的 Recordset 并从特定的国家(地区)获得记录。