我正在运行一个程序,通过Access数据库验证文本字段的输入。这是一个示例代码:
Private Sub TextBox_LostFocus()
If TextBox <> "" Then
With recordset
.Index = "PrimaryKey"
.Seek "=", TextBox
If .NoMatch Then
MsgBox "Record does not exist!", vbExclamation, Me.Caption
TextBox = ""
TextBox.SetFocus
End If
End With
End If
End Sub
我总是得到“PrimaryKey”不是索引的错误。我需要帮助。
几乎忘记了。这是表单加载时的代码:
Private Sub Form_Load()
CenterForm
Me.Top = 0
Set database = OpenDatabase("p:\location\file.mdb")
Set recordset = database.OpenRecordset("table")
End Sub
答案 0 :(得分:0)
在数据库内部,您必须将字段PrimaryKey定义为索引。
请在此处查看Microsoft的文档:
关于搜索/索引检查......试试这个:
试试这个:
Private Sub TextBox_LostFocus()
If TextBox <> "" Then
If NOT recordset.Supports(adIndex) THEN MSGBOX("AdIndex not supported")
IF NOT recordset.Supports(adSeek) Then MSGBOX("adSeek not supported")
With recordset
.Index = "PrimaryKey"
.Seek "=", TextBox
If .NoMatch Then
MsgBox "Record does not exist!", vbExclamation, Me.Caption
TextBox = ""
TextBox.SetFocus
End If
End With
End If
End Sub
这将告诉您使用您提供的提供商是否不允许搜索或索引。切换OLE提供程序可能是你的答案。
答案 1 :(得分:0)
可以在没有索引的情况下完成搜索方法吗?如果是这样,怎么样?
不,寻求需要的指数。但是你可以遍历所有记录;根据记录的数量,这可能是一个严重的性能问题。