gpt4 book ai didi

ms-access - Microsoft Access VBA - 运行时错误 '3075'

转载 作者:行者123 更新时间:2023-12-04 17:23:55 24 4
gpt4 key购买 nike

我遇到了运行时错误“3075”。我是VBA的新手! >.< 我能知道哪里出错了吗?我解决不了...

例如,如果我在文本框 (txtMainName) 中输入名称“Sally”,则在单击搜索按钮时会弹出错误。

错误:

运行时错误“3075”:

查询表达式中的语法错误(缺少运算符)' 和 [主要申请人名称] 像 'Sally'”。

Public Sub Search_Record()

Dim stDocName As String
Dim stLinkCriteria As String
Dim stLinkCriteria1 As String
Dim stLinkCriteria2 As String


stLinkCriteria = ""
stDocName = "frmDisplayInfo"

If (Me!txtMainName <> "") Then
stLinkCriteria1 = "[Main Applicant Name] Like ' " & Me![txtMainName] & "'"
stLinkCriteria = stLinkCriteria & " And " & stLinkCriteria1
End If

If (Me!txtIDNo <> "") Then
stLinkCriteria2 = "[ID No] Like ' " & Me![txtIDNo] & "'"
stLinkCriteria = stLinkCriteria & " And " & stLinkCriteria2
End If

'(*This part is highlighted*)
DoCmd.OpenForm stDocName, , , stLinkCriteria
DoCmd.Maximize

End Sub

最佳答案

Runtime error 3975Invalid operator ,根据 Google 上的快速搜索 access vba runtime error 3075 (您可以自己制作)。

问题是你只分配了 "" 的值至 stCriteria .如果第一个if语句执行,stCriteria然后赋值为 stCriteria AND stCriteria1 ,这是无效的。

如果第二个 if 也会发生同样的事情语句被执行。 (事实上​​,如果两者都实际运行, stCriteria 现在包含 AND stCriteria1 AND stCriteria2 ,甚至更糟。)

解决方案是修改您的代码以仅添加 AND如果需要:

stLinkCriteria = ""
stDocName = "frmDisplayInfo"

If (Me!txtMainName <> "") Then
stLinkCriteria = "[Main Applicant Name] Like ' " & Me![txtMainName] & "'"
End If

If (Me!txtIDNo <> "") Then
If stLinkCriteria <> "" then
stLinkCriteria = stLinkCriteria & " AND "
End If
stLinkCriteria2 = "[ID No] Like ' " & Me![txtIDNo] & "'"
stLinkCriteria = stLinkCriteria & " And " & stLinkCriteria2
End If

为了将来引用,解决此类问题的方法是在导致错误的行(这里是 stCriteria 行)执行之前实际检查变量的值(在本例中为 DoCmd.OpenForm )。为此,您可以在发生错误的行上设置断点,运行您的应用程序直到遇到断点,然后检查变量的值。这会准确显示变量包含的内容,从而可以揭示问题。

关于ms-access - Microsoft Access VBA - 运行时错误 '3075',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14064203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com