用日期排序,取第一条或最后一条(看是正序还是倒序了)。
查询的A字段的条件是:forms![查询窗体].[文本框],requery子窗体。
我的一般做法是:
1、子窗体的记录源不写过滤条件。
2、主窗体(写子窗体的记录源,这样子窗体显示是空的,好看点)
Private Sub Form_Open(Cancel As Integer)
Dim str As String
str = "select * from findAsub查询 where 1=2"
Me.Findsub.Form.RecordSource = str
End Sub
3、在弹出的窗体选择输入查询条件(这样可以多条件组合查询,免得主窗体控件太多,界面不清爽),更新子窗体。并有报表可以打印输出查到的内容。
查询条件窗体:
Private Sub cmdFind_Click()
On Error GoTo Err_cmdFind_Click
Dim str As String
If Not IsNull(Me.器械ID) Then
str = str & " and 器械ID=" & Me.器械ID
End If
If Not IsNull(Me.器械类别ID) Then
str = str & " and 器械类别ID=" & Me.器械类别ID
End If
If Not IsNull(Me.日期起) Then
str = str & " and 有效期 between #1970-01-01# and #" & Me.日期起 & "#"
End If
If str <> "" Then
str = "select * from findAsub查询 where " & Mid(str, 6)
Forms![frmfindA].Findsub.Form.RecordSource = str
Forms![frmfindA].Text22.Requery
Forms![frmfindA].Text33.Requery
Forms![frmfindA].Text35 = str
End If
DoCmd.Close
Exit_cmdFind_Click:
Exit Sub
Err_cmdFind_Click:
MsgBox Err.Description
Resume Exit_cmdFind_Click
End Sub
说明:text35是主窗体的不可见的文本框(就是子窗体的记录源),给报表提供数据源。
[此贴子已经被作者于2007-6-17 22:53:38编辑过]
|