access中,如何使用显示列和取值列,即在表格下拉选择时显示的是名称,但选择时显示的是其编号(外键)。

如题所述

第1个回答  2020-03-18
access数据库设置数据表外键可以通过sql数据定义查询和手动设置表间参照完整性两种方式予以实现。
注意设置外键前一方表的关联字段必须是主键或建有唯一索引,下面举例示范这两种设置方法。假设两张数据表的结构如下:
课程(课程id
文本
主键,课程)
成绩(学号,课程id,分数)
1)运行sql数据定义查询
alter table 成绩 add constraint myrelation1 foreign key (课程id)
references 课程 (课程id);
2)手动建立两表一对多参照完整性
于表对象——右键
打开表关系视图,将要建立关系的表显示到关系视图里
拖动一方主表里的关联字段到多方表里。于弹出的编辑关系对话框,选择各表对应的关联字段,勾选实施参照完整性选项后,点击创建(或确定)按钮即可,这样系统就会自动建立相应的外键了。
参见附图(此为access2003图例,其他版本类似)

注意建立外键时,若数据表里存在违反外键约束的记录,创建外键将会报错,只有删除了违反外键约束的有关记录后才能顺利完成外键的设置。
附带简介一下外键
(foreign
key)
,它是用于在两个表中的数据之间建立和加强链接的一列或多列的组合,可控制可在外键表中存储的数据。 在外键引用中,当包含一个表的主键值的一个或多个列被另一个表中的一个或多个列引用时,就在这两个表之间创建了链接。 这个列就成为第二个表的外键。
第2个回答  2020-03-25
首先在需要表格下拉的字段的数据类型选择“数字”,同时保证取值列的数据类型也是“数字”。
然后在字段属性的“查询”
选项卡
中(“常规”选项卡的旁边)“显示控件”把“
文本框
”换成“
列表框
”。
在“行来源”内容中输入以下内容:
SELECT
取值列表格名.取值列
字段名
,
显示列表格名.显示列字段名
FROM
显示列表格名;
在“列数”值中,把默认的1改为2;
在“列宽”值中,输入:
0cm;5cm;
就可以达到你要得效果了。
解释:
“列宽”值中
0cm的设置是为了使你要求的取值列被隐藏,而显示值被体现,其实后台数据交互匹配的还只是一个数字而已。如果希望显示列有2列或更多作为参考,那只要多加“显示列表格名.显示列字段名2”,“显示列表格名.显示列字段名3”,用逗号分隔;把列数值改成相应的数字;最后记得多加几个“;5cm”就是了。
特别说明:建议显示列和取值列存在于同一张表里,简单理解就是取值列是显示列的
主键
。如:你希望下拉表格显示的是蜀国,魏国,吴国,那取值列就是他们相应的序号,序号的字段属性自然是数字啦。
还有疑问,可以发站内信给我!
希望以上对你有帮助。
相似回答