【问题标题】:MS-Access 2007 Form cannot edit data until Form changed to Design View & back to Form ViewMS-Access 2007 表单无法编辑数据,直到表单更改为设计视图并返回表单视图
【发布时间】:2016-02-13 06:45:22
【问题描述】:

更新:手动丢失表单并重新打开它也会导致允许编辑,请参阅下面的步骤 4 和下面的“附加说明”部分。谢谢!

我在故障排除过程中大量简化的 MS-Access 2007 数据库仍然存在同样的问题:

  1. 重启Access并打开数据库
  2. autoexec 调用一个 vba 函数来初始化一些 TempVar,然后打开一个表单:`DoCmd.OpenForm FormName:="MainEditor"
  3. 所有绑定和未绑定的文本框和组合框都显示它们的数据 正确,但没有一个可以编辑。按键被忽略,组合框上的下拉菜单正确显示选项列表,但无法选择任何选项。
  4. 将表单的视图更改为设计视图,然后立即将其更改回表单视图。或者,手动关闭表单,然后重新打开它。
  5. 所有控件继续正确显示其数据,但现在所有 可以正常编辑。

在切换到设计视图并返回表单视图后,表单可以正常编辑,直到 Access 关闭并重新启动。

附加说明: 我尝试在 Autoexec 宏调用的启动函数中的原始DoCmd.FormOpen 之后立即添加DoCmd.CloseDoCmd.FormOpen,但表单仍然无法接受编辑。手动关闭表单,然后手动重新打开它,似乎每次都有效。 Access 是否有可能在打开表单之前需要延迟处理,并且手动执行关闭/打开周期会提供该时间窗口?

这里有一些背景:

  • 该表有一个主索引、4 个其他索引以及与 7 个其他表的一对多关系。
  • 表单的记录源是表格,允许编辑 = 是。
  • Form 上的所有控件均已设置:Enabled = Yes,Locked = No。
  • 没有子表单,只有一个表单。

这没什么好说的。如果您要求提供更多细节,我很乐意提供。

谢谢。戴夫

【问题讨论】:

  • 您是否尝试过放弃 DataMode 设置并使用默认设置。我不会在我的表单打开时使用它。
  • @HansUp 感谢您的好建议和 URL。我遵循了反编译/编译过程,但遗憾的是它似乎对我的问题没有任何影响。不过谢谢,我不知道反编译。
  • @akc42 我已经尝试再次省略 DataMode 以确保。我只添加了明确的参数以允许编辑沮丧地尝试并坚持打开表单并允许编辑。您是正确的,“acFormEdit”是默认值,我不需要将它包含在实际参数列表中。谢谢你的好建议!
  • 只是一个长镜头,但基于类似的 Excel 错误:尝试在启动后最小化和最大化 Access 窗口。或者尝试切换到另一个表单或数据库中的任何元素,然后返回到您的表单。

标签: forms vba ms-access


【解决方案1】:

不使用 Autoexec 宏,而是指定启动表单。

【讨论】:

  • 成功了。将表单与启动代码隔离开来,我开始检查启动时运行的所有内容,无论是与此表单连接还是启动系统。繁琐,因为需要很多代码才能让系统运行……否则它就不会存在。无论如何,在许多存根之后,我在 TempVar 的名称中发现了一个错字,这是一个关闭(除其他外)编辑功能的序列的开始。换句话说,这是我的错。 :-) 感谢大家的帮助;我真的被困住了。戴夫
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
  • 2014-07-28
  • 2011-03-18
相关资源
最近更新 更多