MS Access - 带有 2 个文本框的主菜单表单,用于打开和过滤不同的表单 - 出现类型不匹配运行错误 13

问题描述

我有一个菜单用户可以在其中输入站名(文本框)和群组名称(文本框),它会根据这些值打开一个新表单。例如,如果为车站输入“纽约”而为群组输入“1b”,则该表单将进行过滤以仅显示具有两者的数据。但是,我收到了数据不匹配错误

在我的主菜单中框出的字段文本称为“detailed_s_station”和“detailed_s_cohort”。我要过滤这些值的表单中各个字段的名称称为“站”和“群组”。

如果只有一组条件(例如,如果我只搜索群组或只搜索车站),我可以让它工作,但是我的 AND 在这里发生了一些事情。感谢任何帮助我摆脱这个数据不匹配错误的帮助。

Private Sub Command41_Click()

Dim stDocName22 As String
Dim stLinkCriteria22 As String
stDocName22 = "frm_scans"
stLinkCriteria22 = "[station] ='" & Me![detailed_s_station] & "'" And "[cohort] ='" & Me![detailed_s_cohort] & "'"
DoCmd.OpenForm stDocName22,stLinkCriteria22,acFormEdit,acWindownormal

End Sub

解决方法

您遇到的问题是如何将字符串连接在一起。而是尝试:

Private Sub Command41_Click()

Dim stDocName22 As String
Dim stLinkCriteria22 As String
stDocName22 = "frm_scans"
stLinkCriteria22 = "[station] ='" & Me![detailed_s_station] & "' And [cohort] ='" & Me![detailed_s_cohort] & "'"
DoCmd.OpenForm stDocName22,stLinkCriteria22,acFormEdit,acWindowNormal

End Sub

如果您将来遇到此类问题,快速 Debug.Print strLinkCriteria22 会向您显示导致问题的字符串的内容。

问候,