如何按关联日期顺序浏览记录?

问题描述 投票:0回答:1

我有 2 张表:预约表和患者表。一名患者可以有多次预约。我创建了一个表单(单一表单),显示 ApptDate(在约会中)和患者信息(来自患者)。我希望能够显示按 ApptDate 订购的患者信息。我在表单上有一个用于开始日期的未绑定控件,并且想要一个按钮来显示每个患者在开始日期的预约,或者显示下一个日期(如果开始日期的所有患者都已显示)。

我已经能够使用 DoCmd.FindRecord 显示给定日期的第一位患者,并使用 DoCmd.FindNext 按钮来前进浏览该日期预约的所有患者,但我不知道如何获取到 Appts 中的下一个日期。

Private Sub SearchStart_AfterUpdate()
' Me.SearchStart is unbound and has the date to start the search for patients
    Me.ApptDate.SetFocus    'This is the control on the form bound to ApptDate in the table of Appointments
    DoCmd.FindRecord Me.SearchStart, , , True, , , True
End Sub

Private Sub NextPatientButton_Click()
    Me.ApptDate.SetFocus
    DoCmd.FindNext
End Sub
vba ms-access-2016
1个回答
0
投票

预约表有“患者”字段,它是患者表中的 ID 字段。 使用数据创建了一个表单(“frmByVisitDate2”): SELECT Appontments.ApptDate、Appontments.Patient、Patients.WholeName FROM Patients INNER JOIN Appontments ON Patients.ID = Appontments.Patient ORDER BY Appontments.ApptDate;

开始搜索的日期由 StartDate 控制

Private Sub StartDate_AfterUpdate()
'   After date is selected go to first record >= StartDate.
DoCmd.SearchForRecord acDataForm, "frmByVisitDate2", acFirst, "[ApptDate] >= #" & Me.StartDate & "#"
End Sub

Private Sub NextPatientButton_Click()
DoCmd.GoToRecord acDataForm, "frmByVisitDate2", acNext
'The following prevents error when no more records found and displays last record
If IsNull(Me.ApptDate) Then DoCmd.GoToRecord acDataForm, "frmByVisitDate2", acPrevious
End Sub

Private Sub PreviousPatientButton_Click()
On Error Resume Next    'Prevents error if no previous record found
DoCmd.GoToRecord acDataForm, "frmByVisitDate2", acPrevious
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.