2011-03-04 61 views
0

我正在开发一个带有2个窗体的小型Access 2003数据库。用户首先输入FrmMain,如果有记录感兴趣,他们可以去FrmDetails(有点像'下钻'风格)。这第二种形式允许用户留下意见,改变一些值等,被称为用下面的代码:无法编辑访问表单中的数据

Private Sub Cmd_GoToDetailsForm_DblClick(Cancel As Integer) 
    DoCmd.OpenForm "FrmDetails", , , _ 
     "[TblF1-Main].[The_ID]=""" & Me.The_ID.Value & """" 
End Sub 

这里的问题,用户不能在FrmDetails编辑的任何字段。为什么不,你能提出一个解决方案吗?

  • 当我直接打开FrmDetails,我可以编辑它们不会有问题
  • FrmDetails没有VBA代码:我的问题更多的事实。它很快,但还没有。
  • FrmDetails的recordsource是一个包含所有默认属性的表。
  • 这是我设计的第二个使用此模型的数据库。我已经比较了这个破损的分贝与工作分贝,我没有看到任何显着的差异。
+1

首先,'OpenForm'具有WhereCondition参数,您可以使用它代替With块来简化代码。 – mwolfe02 2011-03-04 17:10:12

+0

感谢您的提示,mwolfe。我更新了我的代码,但仍然存在问题。 – PowerUser 2011-03-04 17:21:02

+1

如果您从代码中打开表单但注释掉WhereCondition,这是否有所作为? – mwolfe02 2011-03-04 17:24:05

回答

1

号找到了答案终于。没有特别原因,我已将FrmMainRecord Lock的财产设置为All Records(默认设置为No Locks)。由于这两个表格都基于同一张表格,我猜测第一个表格锁定了第二个表格的记录。 @ mwolfe02,感谢您的帮助!

+0

寻找类似的工作。你有没有使用锁(我猜记录锁会导致同样的问题。)这两种形式是否将数据更新到同一个字段?只是想知道用户是否可以用主表单覆盖细节中的条目。 – JeffO 2011-03-04 21:24:37

+0

你为什么要在表格上打开一个表格,你已经装载了表格?这是编辑同一张表的不同记录吗?另外,就锁定而言,乐观锁定是迄今为止Access的首选。我知道它感觉不正确,但是我很久以前才知道,只有在遇到无法通过更严格的锁定解决问题的情况下,才会开始乐观锁定(即NoLocks)并升级到更严格的范围。 – 2011-03-05 21:44:30

+0

@Jeff,尽管两种表格都基于同一张表,但FrmMain没有任何可编辑字段(它只是列出了几个字段,因此用户可以决定是否输入该记录)。所以,答案是否定的,覆盖数据没有问题。 – PowerUser 2011-03-07 13:42:48

0

FrmDetails是否作为FrmMail的子窗体打开?如果是,请检查SubForm控件是否被锁定。

之后,检查形式FrmDetails是否具有这样的特性允许编辑和允许添加是设置为Yes或

+0

这不是一个子表单。否则,我会完成属性中的所有链接。另外,允许编辑=是,允许添加=是。 – PowerUser 2011-03-04 17:30:09