Private Sub Form_Load()
ClearSubforms
End Sub
[green]' to clear the subforms of records, set their recordsource
' properties to a query that is guaranteed to return no results.
' they can still be linked to the main form using Master Link / Child Link
' properties, but won't contain any data.[/green]
Private Sub ClearSubforms()
[green]' use empty recordsets to clear the data[/green]
Me![sbfrm1].Form.RecordSource = "SELECT * FROM Contacts WHERE CustomerID Is Null"
Me![sbfrm2].Form.RecordSource = "SELECT * FROM Orders WHERE OrderID Is Null"
Me![sbfrm3].Form.RecordSource = "SELECT * FROM Payments WHERE PaymentID Is Null"
End Sub
[green]' when the user changes the combo value, create recordsets
' for each subform, then set them after processing[/green]
Private Sub cboChoose_AfterUpdate()
Dim lngID As Long
Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset
Set rst3 As DAO.Recordset
Dim db As DAO.Database
Screen.MousePointer = 11
SysCmd acSysCmdSetStatus, "Loading data, please wait..."
lngID = Me!cboChoose.Value
Set db = CurrentDb()
[green]'load recordsets and perform lengthy calculations, etc.[/green]
Set rst1 = db.OpenRecordset("SELECT * FROM Contacts WHERE CompanyID = " & lngID)
Set rst2 = db.OpenRecordset("SELECT * FROM Orders WHERE CompanyID = " & lngID & " AND OrderDate > #" & Format(DateAdd("m", -1, Date), "mm-dd-yyyy") & "#")
Set rst3 = db.OpenRecordset("SELECT * FROM Payments WHERE CompanyID = " & lngID & " AND PaymentDate > #" & Format(DateAdd("m", -1, Date), "mm-dd-yyyy") & "#")
With rst1
While Not .EOF
[green]'do stuff...[/green]
.MoveNext
Wend
.MoveFirst
End With
With rst2
While Not .EOF
[green]'do stuff...[/green]
.MoveNext
Wend
.MoveFirst
End With
With rst3
While Not .EOF
[green]'do stuff...[/green]
.MoveNext
Wend
.MoveFirst
End With
[green]' processing done, now assign the preloaded
' recordsets to each subform using Set statement[/green]
Set Me![sbfrm1].Form.Recordset = rst1
Set Me![sbfrm2].Form.Recordset = rst2
Set Me![sbfrm3].Form.Recordset = rst3
Screen.MousePointer = 0
SysCmd acSysCmdClearStatus
End Sub