我的DoCmd.SearchForRecord命令停止工作

问题描述:

我有一个下拉列表有4列,但只有3个'可见'第一个是一个ID,更新后我有以下代码运行。我的DoCmd.SearchForRecord命令停止工作

DoCmd.SearchForRecord acDataForm, "new_order_thingy", acFirst, "[OrderID] = " & Me.Combo112.Column(0) 

这用于获取有关将订单记录,我不知道我做了什么,但我不知怎么把它弄坏了。我没有收到错误,但没有检索到任何数据。

当我将MsgBox取出时,它会在Me.Combo112.Column(0)中传递正确的值。

任何帮助/建议,将不胜感激。

谢谢

+0

你是否改变了表单的排序顺序?这可以改变acFirst的行为方式。您应该阅读关于DoCmd.SearchForRecord的帮助文章,看看是否有任何东西会跳出来作为可能的问题。 – 2010-02-23 23:14:41

+0

“new_order_thingy”与Combo112相同吗?如果不是的话,那么重点可能会有所改变。 – Fionnuala 2010-02-24 21:23:49

+0

您对另一种方法有什么看法? – Fionnuala 2010-02-24 21:24:21

Form.DataEntry被设置为YES,它应该被设置为NO ...不明白为什么,但那是什么导致了我的错误。

+0

日期条目是一种仅加载新添加的记录的模式,因此如果您的组合框列出了表单打开时存在的所有记录,它将无法找到它们,因为预先存在的记录不是加载到DataEntry设置为True的表单中。数据输入模式的原因是多用户环境下的效率。不要打开它,不要明确地要求表单打开时没有预先存在的记录,只有一个全新的空白记录可供编辑。只要打开这些属性,关闭它并不会阻止编辑或添加新记录。 – 2010-03-06 17:11:29

我建议你在你的代码中放置一个断点。然后,更改组合中的值,并在中断模式下,将鼠标悬停在变量上。
这也会告诉你,如果事件真的被解雇了。
有时事件和过程之间的链接丢失(例如,当您重命名对象时)。

+0

它被触发,变量确实包含数据。 – pixeldev 2010-03-05 14:58:07

+0

@ Bruno43:在相同的方向:如果代码是在一个窗体中(我想),用me.name替换“new_order_thingy”,以防万一您重命名表单。 – 2010-03-05 15:44:03

+0

只是把它改成了me.name,还是什么都没做。 – pixeldev 2010-03-05 15:56:10