热情软件屋

 

能否在一个记录集上重新构造另一个查询


编号: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

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio