在 MS-Access 中,当外键不再存在时,如何在组合框中显示旧的外键?

Posted

技术标签:

【中文标题】在 MS-Access 中,当外键不再存在时,如何在组合框中显示旧的外键?【英文标题】:In MS-Access, how to display the old foreign key in a combo box when the foreign key no longer exists? 【发布时间】:2015-03-12 12:10:49 【问题描述】:

我有一个包含两列的组合框。第一列是隐藏的。第二个没有隐藏。第一列是绑定列。二是显示文字。

ColumnCount = 1
ColumnWidths = 0";1"
RowSource = "a select statement"
BoundColumn = 1

例如:

SKU       | Description
"teapot"  | "Pretty Teapots"
"saucer"  | "Excellent Saucers"
"tallcup" | "Tall Cups"

用户看到组合框中的第二列。一切正常。如果用户选择“Tall Cups”,则“tallcup”存储在基础表中。

稍后.... 故意从列表中删除值“tallcup”。我现在想要的是让用户在组合框中看到最初设置的那些记录的“tallcup”。但对于新记录,“tallcup”不是一个选项。

它当前显示的是空白。就好像什么都没有被选中一样。

我需要对format 属性做些什么吗?

以下是我在互联网上找到的一些相关链接,但对我没有多大帮助:

http://www.tutcity.com/access/display-the-corresponding-unbound-column-entry-of-a-combobox.79599.html

https://www.google.com/search?q=ms-access+2+column+show+first+combobox+missing+show+anyway&rls=com.microsoft%3Aen-us%3AIE-SearchBox&oe=&gws_rd=ssl&oq=&gs_l=

http://www.experts-exchange.com/Database/MS_Access/A_5890-Adding-the-option-all-to-a-ComboBox.html

【问题讨论】:

当您说故意删除时,您到底是什么意思?您是否不希望它作为新记录的选项,但对于旧记录您想要数据,但更改将意味着您不再有选项? 没错。我不希望它作为新记录的选项,但对于旧记录,我想要数据,但更改它们将意味着我将不再有选项。 我想到了按照 Gustav 的建议使用 Active 标志。 【参考方案1】:

添加带有活动标志的第三列。为 tallcup 将其设置为 False,并添加更新前事件设置 Cancel 为 Not Active,如果是则弹出一条消息。

【讨论】:

我更喜欢与此不同的解决方案。我希望子表中不再有数据。 你不能既拥有价值又没有价值。这基本上就是您所要求的。 绑定并显示第 1 列时有效。涉及两列时无效。 我不关注...您可以绑定一个或不绑定一个列,但可以拥有(和显示)任意数量的列。

以上是关于在 MS-Access 中,当外键不再存在时,如何在组合框中显示旧的外键?的主要内容,如果未能解决你的问题,请参考以下文章

Restkit:当外键引用Core Data中缺少的本地对象时获取远程链接对象

Restkit:当外键设置为 null 时,Core Data 中的关系不会重置

当外键也是主键时,在 MySQL 上出现外键错误? [复制]

在 sql (MS-Access) 中编写分组查询

在 ms-access 中获取表的外键约束列表?

如何批量检查 MS-Access 中的重复项并记录更改?