搜索后未找到访问表单记录源
Posted
技术标签:
【中文标题】搜索后未找到访问表单记录源【英文标题】:Access form record source not found after search 【发布时间】:2016-11-03 13:29:12 【问题描述】:我开发了一个拆分表单,它使用以下记录源:
SELECT * FROM [CCG Complaints];
表单效果很好,我对这方面没有任何问题。
用户有两个按钮:一个用于搜索,一个用于显示所有记录。
当我在执行搜索后关闭表单然后再次重新打开它(在表单视图中)时会出现问题:
但是,每当我在关闭表单之前单击Show all
时,它都会在表单视图中成功打开,并且没有错误。
另一个特点是,收到上述错误后,我可以在设计视图中打开表单,然后可以在表单视图中查看它而不会出现错误消息 - 只有在表单中打开表单时才会出现错误第一时间查看。
为什么会这样,我可以做些什么来纠正它?
我用于按钮的代码在这里:
Private Sub search_Click()
Dim strSearch As String
Dim strText As String
If Len(Me.txtSearch.Value & vbNullString) = 0 Then
MsgBox ("Enter a search term.")
Else
strText = Me.txtSearch.Value
strSearch = "SELECT* from [CCG Complaints] where [Ref no] Like ""*" & strText & "*"" or [lastName] Like ""*" & strText & "*"" Or CCG Like ""*" & strText & "*"" "
Me.RecordSource = strSearch
End If
End Sub
Private Sub showAll_Click()
Dim strSearch As String
strSearch = "SELECT * from [CCG Complaints]"
Me.RecordSource = strSearch
End Sub
【问题讨论】:
1.您是否有理由不使用[CCG Complaints]
作为记录源? -- 2.如何过滤(请添加代码)? -- 3.如果表单属性FilterOnLoad
为True,尝试设置为False。
1.是的 - 原因是因为我已经尝试过了,但错误仍然存在。 2.问题添加代码。 3.设置为No
,所以我设置为Yes
,但是还是报错。 (我已将其设置回No
。)
【参考方案1】:
不要更改记录源,而是对现有记录应用过滤器。
Me.filter = "[Ref no] Like ""*" & strText & "*"" or [lastName] Like ""*" & strText & "*"" Or CCG Like ""*" & strText & "*"" "
Me.FilterOn = True
然后重置
Me.Filter = ""
Me.FilterOn = False
请注意,如果您的记录集变得稍微大一点,这种通配符搜索大量字段将变得非常低效。您可能想查看更强大的搜索方法。这个http://allenbrowne.com/ser-62.html 是一个更完整的解决方案。
【讨论】:
感谢您的推荐 - 这更像是我想要实现的目标。 使用本网站详述的方式,有没有办法在同一个表格内更改记录源?【参考方案2】:我建议将 RecordSource 设置为[CCG Complaints]
,而不是更改它。
改为使用.Filter
属性,这是实现表单过滤器的常用方法:
Private Sub search_Click()
Dim strSearch As String
Dim strText As String
If Len(Me.txtSearch.Value & vbNullString) = 0 Then
MsgBox ("Enter a search term.")
Else
strText = Me.txtSearch.Value
strSearch = "[Ref no] Like ""*" & strText & "*"" or [lastName] Like ""*" & strText & "*"" Or CCG Like ""*" & strText & "*"" "
Me.Filter = strSearch
Me.FilterOn = True
End If
End Sub
Private Sub showAll_Click()
Me.Filter = ""
Me.FilterOn = False
End Sub
【讨论】:
做到了 - 谢谢!为什么第一种情况会出现错误? 我真的不知道 - 我不得不尝试在这里重现它,而且真的没有时间。 @斯诺克球迷以上是关于搜索后未找到访问表单记录源的主要内容,如果未能解决你的问题,请参考以下文章
未找到源,但无法搜索部分或全部事件日志。无法访问的日志:安全 [重复]