谢谢楼上的兄弟了,本人自己已解决。错误窗口,是由于代码执行时,要求的主键和外键数据类型只能是数字型或自动编号类型,只是不知为何不能为文本型,请再帮忙看看。第二个问题,是由于表字段次序颠倒,班级前、班级号后所致。Private Sub Form_Load()
Set frm = Me.×Ó´°Ìå.Form
Set ctls = frm.Controls
End Sub
Private Sub °à¼¶ID_AfterUpdate()
Dim i As Long
For i = 0 To Me.½ÌʦID.ListCount - 1
Me.½ÌʦID.Selected(i) = True
If DCount("*", "°²Åűí", "°à¼¶ID=" & Me.°à¼¶ID.Column(0) & " and ½ÌʦID=" & Me.½ÌʦID.Column(0, i)) = 0 Then
Me.½ÌʦID.Selected(i) = False
End If
Next
For i = 0 To Me.¿Î³ÌID.ListCount - 1
Me.¿Î³ÌID.Selected(i) = True
If DCount("*", "°²Åűí", "°à¼¶ID=" & Me.°à¼¶ID.Column(0) & " and ¿Î³ÌID=" & Me.¿Î³ÌID.Column(0, i)) = 0 Then
Me.¿Î³ÌID.Selected(i) = False
End If
Next
frm.Filter = "°à¼¶ID=" & Me.°à¼¶ID.Column(0)
frm.FilterOn = True
End Sub
Private Sub ½ÌʦID_AfterUpdate()
Dim i As Long
For i = 0 To Me.¿Î³ÌID.ListCount - 1
Me.¿Î³ÌID.Selected(i) = True
If DCount("*", "°²Åűí", "½ÌʦID=" & Me.½ÌʦID.Column(0) & " and ¿Î³ÌID=" & Me.¿Î³ÌID.Column(0, i)) = 0 Then
Me.¿Î³ÌID.Selected(i) = False
End If
Next
For i = 0 To Me.°à¼¶ID.ListCount - 1
Me.°à¼¶ID.Selected(i) = True
If DCount("*", "°²Åűí", "½ÌʦID=" & Me.½ÌʦID.Column(0) & " and °à¼¶ID=" & Me.°à¼¶ID.Column(0, i)) = 0 Then
Me.°à¼¶ID.Selected(i) = False
End If
Next
frm.Filter = "½ÌʦID=" & Me.½ÌʦID.Column(0)
frm.FilterOn = True
End Sub
Private Sub ¿Î³ÌID_AfterUpdate()
Dim i As Long
For i = 0 To Me.½ÌʦID.ListCount - 1
Me.½ÌʦID.Selected(i) = True
If DCount("*", "°²Åűí", "¿Î³ÌID=" & Me.¿Î³ÌID.Column(0) & " and ½ÌʦID=" & Me.½ÌʦID.Column(0, i)) = 0 Then
Me.½ÌʦID.Selected(i) = False
End If
Next
For i = 0 To Me.°à¼¶ID.ListCount - 1
Me.°à¼¶ID.Selected(i) = True
If DCount("*", "°²Åűí", "¿Î³ÌID=" & Me.¿Î³ÌID.Column(0) & " and °à¼¶ID=" & Me.°à¼¶ID.Column(0, i)) = 0 Then
Me.°à¼¶ID.Selected(i) = False
End If
Next
frm.Filter = "¿Î³ÌID=" & Me.¿Î³ÌID.Column(0)
frm.FilterOn = True
End Sub