1

我是初学者,我的问题如下:

我必须检查用户选择的日期是否与字段 Festivity_Date 的 tblFestivity 匹配。如果这些匹配现在我想向用户显示一个正常的消息框。

在此图像中,您可以看到用户插入日期的字段:

在此处输入图像描述

在这个中,您可以看到表 tblFestivity 和字段 Festivity_Date:

在此处输入图像描述

在这里您可以看到它适用于第一条记录: 在此处输入图像描述

现在的代码是这个:

Private Sub Date_Flow_Exit(Cancel As Integer)
If Date_Flow = DLookup("[Festivity_Date]", "tblFestivity", "[Date_Flow]=Form![Date_Flow]") Then
    MsgBox "è un giorno festivo"
End If 
End Sub

此代码向我显示了我想要的消息框,但仅针对第一条记录,它不检查表 tblFestivity 中的其他记录。

Date_Flow 是第一个图像中文本框的名称。

我的问题是:我怎样才能检查只有第一个的出现?希望你能明白我在问什么,谢谢你的建议。

4

2 回答 2

1

如果我理解正确,您想为用户输入的每次出现的日期显示一条消息?

如果是这种情况,那么我建议您打开带有结果的记录集并遍历每个结果并显示消息。

Private Sub Date_Flow_Exit(Cancel As Integer)
Dim rs As Recordset
Dim dt As Date
dt = Me.Date_Flow
Set rs = CurrentDb.OpenRecordset("SELECT tblFestivity.Festivity_Date FROM tblFestivity WHERE (((tblFestivity.Festivity_Date) =#" & dt & "#));") 'Opens recordset only with dates entered in textbox

With rs
    If .RecordCount > 0 Then
        .MoveFirst
        Do While Not .EOF
            MsgBox ("è un giorno festivo")
            .MoveNext
        Loop
    Else
        MsgBox ("There are no festivities on this day")
    End If
End With
End Sub

让我知道这就是你想要的吗?

于 2021-12-29T13:31:45.230 回答
0

它没有找到匹配项,因为 WHERE CONDITION 语法错误并且没有在条件中使用字段名称。在表单上引用字段或控件的正确语法是Forms!formname!fieldORcontrol name. 标准应使用与表单上的值匹配的字段名称。

If Not IsNull(DLookup("[Festivity_Date]", "tblFestivity", "[Festivity_Date] = Forms!formname!Date_Flow")) Then

或者

If DCount("*", "tblFestivity", "[Festivity_Date]=Forms!formname!Date_Flow") > 0 Then

于 2021-12-29T13:17:11.413 回答