首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DataSheet中访问未绑定的DataSheet?

在DataSheet中访问未绑定的DataSheet?
EN

Stack Overflow用户
提问于 2010-08-27 16:33:59
回答 2查看 3.6K关注 0票数 1

在ms-access 2007中,我试图为一个表做一个表单。此表具有来自两个父表的外键。所以我想我应该把这些字段做个查找。但是我无法为每个父表创建一个查找,因为它们是复合键。

我决定为每个父表和子表创建一个查询,其中每个复合键都有一个额外的字段。这对使用未绑定的ComboBox的普通形式很好..。但是,未绑定的ComboBox不能在DataSheet子表单中工作。当我在子表单代码中对ComboBox进行更改时,它们也应用于同一列中的所有其他ComboBoxes。

我的问题:

  • 有办法改变单个未绑定ComboBox的值吗?
  • ,除了ComboBox或DataSheet子表单之外,还有其他控件吗?
  • ,这种情况下的正常工作是什么?

我不能绑定ComboBox,因为查询中的字段是计算/an表达式的,正如我所说的。

EN

回答 2

Stack Overflow用户

发布于 2011-10-27 22:39:17

我自己也遇到过一种形式的问题,所以为了子孙后代:

通常情况下,“不要在这种情况下使用连续的表单/数据表”是最好的advice...It。

但是,access将不允许您更新数据表上单个控件的值。在这种情况下,可以使用的是临时表,当用作记录源时,该表可以成为这些控件的值。但是,您将需要重新填充表,并在每次计算需要更改时请求控件(请求整个表单也应该工作)。此外,如果在控件上启用编辑,则必须在每个控件上编写一些VBA来处理update事件(在update之前),并运行您自己的查询来更新源表,而不仅仅是临时表。也许做起来很烦人,但效果很好。

还有另一种可能性,这也可能有效,但我自己还没有尝试过这样的做法。组合框的行源可能非常复杂,因此很可能根本不需要使用VBA更新组合框。行源可以使用语法Me.Form!controlName或Forms!FormName!ControlName依赖其他控件(例如另一个组合框),这将允许您形成复合键。当然,您也可以使用行源从查询中进行选择。更有趣的是,查询可以引用表单上的控件,前提是表单是打开的,如果有必要,您应该能够安全地使用VBA修改该控件。

在这两者之间,您应该能够强制access,踢和尖叫,显示任何您想要的数据,即使是在数据表上,并且允许用户更改数据(但只在您想要更改的情况下),并且使用BeforeUpdate事件将修改后的数据拖回它来自的任何表。

票数 1
EN

Stack Overflow用户

发布于 2010-08-27 19:44:56

在组合框需要有条件更改的情况下,连续窗体和数据表不能很好地进行编辑。问题是,如果您使用OnCurrent事件来设置组合框的Rowsource,那么该行将是可以的,但随后将隐藏其他行的存储值。

解决方案是,在这种情况下,永远不要使用连续的表单/数据表来编辑数据(事实上,我很少使用它们来编辑数据)。您可以创建两个子窗体,一个作为列表的连续/数据表子窗体,以及一个显示一个记录的详细子窗体。使列表子窗体不可编辑,细节子窗体可编辑。您可以使用detail控件的link / list属性链接这两个控件,并将其设置为list子窗体的PK。

如果您的列表子表单是Me!List,而您的详细信息是Me!Form,而PK字段是MyID,那么详细子表单的链接属性将是:

代码语言:javascript
复制
  Master: Me!List.Form!MyID
  Child:  MyID

当您移动到列表窗体中的其他记录时,它将自动加载到子窗体中。对先前显示的详细信息的任何编辑都将在记录离开前保存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3586290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档