能否在一个记录集上重新构造另一个查询
编号:QA000640
建立日期: 1999年3月16日 最后修改日期:1999年11月9日
所属类别:
polo:
vb5
pwin98
请问各位高手在VB中用一个查询(SQL)得到一个记录集(RecordSet)之后,是否可以知道这个记录集真实的名字(并不是"RecordSet.Name"),因为,我要在这个新的记录集上重新构造另一个查询。(使用嵌套查询对我并不适合)
回答:
你不能简单地在一个记录集上建立另一个查询。记录集都是临时建立的,无法再次使用。我想你不能使用嵌套查询可能是因为要多次逐级地建立查询,你有两种选择:
一是利用Select ... Into将查询结果存入一个临时库文件;
二是建立QueryDef。你可以先利用SELECT语句建立一个QueryDef对象,然后在此基础上构造SELECT查询。
Sub CreateQueryDefX()
Dim dbsNorthwind As Database
Dim qdfTemp As QueryDef
Dim qdfNew As QueryDef
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
With dbsNorthwind
' Create temporary QueryDef.
Set qdfTemp = .CreateQueryDef("", _
"SELECT * FROM Employees")
' Open Recordset and print report.
GetrstTemp qdfTemp
' Create permanent QueryDef.
Set qdfNew = .CreateQueryDef("NewQueryDef", _
"SELECT * FROM Categories")
' Open Recordset and print report.
GetrstTemp qdfNew
' Delete new QueryDef because this is a demonstration.
.QueryDefs.Delete qdfNew.Name
.Close
End With
End Sub
Function GetrstTemp(qdfTemp As QueryDef)
Dim rstTemp As Recordset
With qdfTemp
Debug.Print .Name
Debug.Print " " & .SQL
' Open Recordset from QueryDef.
Set rstTemp = .OpenRecordset(dbOpenSnapshot)
With rstTemp
' Populate Recordset and print number of records.
.MoveLast
Debug.Print " Number of records = " & _
.RecordCount
Debug.Print
.Close
End With
End With
End Function
此问题由李海回答。
| |
|
|
| |
|
|