【发布时间】:2020-09-09 15:07:00
【问题描述】:
我有一个数据库,其中包含一个表,其中包含当前的面试预约 tblSchedule,其中包含以下列 RNName、Apttime、Aptdate、PtID。
我正在尝试不允许重复约会。
我想在 VBA 中运行一个 sql 代码,所以当在表单上输入新的约会日期时,我可以检查日期是否已经在表中,如果它在表中,它将限制时间可供选择。
我在进行日期比较时遇到问题。它适用于 Access 中保存的 sql 查询,但是当我在 VBA 中尝试相同的查询时,我没有得到任何结果。
VBA 代码
Private Sub Apt_date_AfterUpdate()
Dim check As DAO.Recordset
Dim time_sql As String
Dim count_sql As Long
Dim sql_1 As String
Dim Aptday As Date
Aptday = DateValue(Forms("booking_clerk").Apt_date.Value)
Forms("booking_clerk").Apt_time.RowSourceType = "Table/Query"
Forms("booking_clerk").Apt_time.RowSource = ""
Set check = CurrentDb.OpenRecordset("Select DateValue(tblSchedule.Aptdate) From tblSchedule WHERE DateValue(tblSchedule.Aptdate)" & " = (" & Aptday & "); ")
count_sql = check.RecordCount
MsgBox (Str(count_sql))
If check.RecordCount = 0 Then
time_sql = "SELECT Field1 FROM [Pam Availability];"
Else: time_sql = ("SELECT Field1 FROM [Pam Availability]WHERE [Pam Availability].Field1 Not In (Select tblSchedule.Apttime from tblSchedule WHERE DateValue(tblSchedule.Aptdate) = (" & Aptday & "));")
End If
Forms("booking_clerk").Apt_time.RowSource = time_sql
End Sub
保存的sql代码。我在这里输入日期作为参数:
SELECT DateValue(tblSchedule.Aptdate) AS Expr1
FROM tblSchedule
WHERE DateValue(tblSchedule.Aptdate) = DateValue([new_date]);
【问题讨论】: