我调试时发现,到了这句就出错:“无法选择记录”
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
这句等同于选定记录。我却不明白为何不能选择记录,就换了另一条命令来删除记录:
docmd.RunCommand acCmdDeleteRecord
结果依然不行。
后来又发现只要开着主控窗体,就无法执行删除命令,我就把主控窗体中Load、Open里的语句都屏蔽掉,还是不行。
百思不得其解!
一次在主控窗体打开的状态下修改程序时,输入“.”号时,后面的对象列表显示了一下马上又消失了,因为窗体时钟在运行,每秒都会刷新一次主控窗体,刷新时就把焦点移到主控窗体上了,所以对象列表就消失了,这时我恍然大悟:罪魁祸首就是timer事件!
因为执行删除动作时,程序会先选定当前记录,再删除选定的记录,如果你的窗体有记录选定器就会看到记录选定器变黑了,如果这时刚好主控窗体刷新时间,就会把焦点移到主控窗体上去,刚才选定的记录又变成没选定或是无法选定,就无法执行删除操作了。
最后,我把主控窗体的时钟效果去掉,删除按钮又可以正常工作了。
另:如果窗体的编辑、删除属性为“否”,也会导致删除按钮不起作用。