Ms access 访问-自定义“;您请求对表进行的更改未成功…“;

Ms access 访问-自定义“;您请求对表进行的更改未成功…“;,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我已将重复项(否)设置为我的一个表ID。然后,我创建了一个带有Combobox的表单,从该表中选择所有记录,并将所选记录存储在联接表(ID外键)的字段中。如果我尝试添加另一个具有相同ID的记录,Access会提示我一条警告消息“您请求的表更改未成功…等等) 我想删除此邮件并创建自定义邮件。以下是我尝试的内容: Private Sub Form_BeforeUpdate(Cancel As Integer) Dim sWhere As String sWhere = "[ID_Table]="

我已将重复项(否)设置为我的一个表ID。然后,我创建了一个带有Combobox的表单,从该表中选择所有记录,并将所选记录存储在联接表(ID外键)的字段中。如果我尝试添加另一个具有相同ID的记录,Access会提示我一条警告消息“您请求的表更改未成功…等等)

我想删除此邮件并创建自定义邮件。以下是我尝试的内容:

Private Sub Form_BeforeUpdate(Cancel As Integer)

Dim sWhere As String
sWhere = "[ID_Table]=" & Me.Combo5
'
If DCount("*", "Table1", sWhere) > 0 Then 

Cancel = True
Me.Undo
MsgBox " Duplicate"
End If

End Sub
如果我从combobox中选择任何值,则执行此代码。以下是我的表:

Table1
ID_Table(PK)
Field1
Field2 etc.

JoinTable
ID_Join(PK)
ID_Table1(FK)
ID_Table2(FK)

表1(主键)中有属性重复(否)的ID字段。如何才能使其正常工作?

我发现,这是一个多么愚蠢的错误:

而不是

If DCount("*", "Table1", sWhere) > 0 Then 
我不得不改成

 If DCount("*", "JoinTable", sWhere) > 0 Then 

代码不起作用,因为我引用了错误的表。问题已解决,感谢Matt的回复。

它是如何工作不正常的?我有一个表单,它是联接表的连续形式。在表单的标题中,我使用Dlookup字段查看我希望“联接”的Table2记录“见表1记录。在这种连续的形式中,我将字段ID_Table1(FK)替换为显示表1中记录的组合框,并将其值存储到ID_Table1(FK)中。这就产生了联系。现在,如果我从这个组合框中选择任何值,我就会执行这个代码,即使它在JoinTable记录中还不存在。所以,如果它还不存在,那么代码应该允许我链接表。