我试图防止进一步的重复被输入到已经有一些重复的 MS Access 表中。我不能只消除重复项,然后更改表定义以防止重复项——我必须使用代码来完成这一点。
我的代码捕获用户的输入并使用 FindFirst 搜索表以确定记录是否已经在表中。如果没有,请添加它 - 如果是,请不要添加重复记录。当用户输入包含撇号时就会出现问题,例如“O'Brien”。我尝试用引号将用户输入包装起来……</p>
Dim strCriteria as String
strCriteria = “[LastName] = “” & UserInput & “”” (Wrap the user input in quotation marks)
myRecordset.FindFirst strCriteria
使用这种语法,我可以输入像 O'Brien 这样的名称,但是当我尝试输入重复记录时,代码找不到现有记录并允许将重复记录添加到表中。
我使用撇号而不是引号尝试了这种语法……。
strCriteria = “[LastName] = '” & 用户输入 & “'”
使用这种语法,所有不包含撇号的名称都可以按需要工作——我可以第一次在表中输入它们,如果我尝试使用 FindFirst 再次输入该名称,我可以找到它们。这就是我要的。但是使用第二种语法时,当我尝试输入一个确实包含撇号(如 O'Brien)的名称时,我会收到运行时错误 3077 – “...。表达式中的语法错误(缺少运算符)......”</p>
是否有一种语法允许我输入任何文本(带或不带撇号)并允许我找到该记录并阻止用户两次添加相同的名称?