Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

在表中有没有指代当前记录某一字段的变量?

怀璧  发表于:2013-04-26 17:56:54  
复制

在输入当前记录某一个字段时,需要根据当前记录的另一个字段查询本字段的候选值,如何实现?

例如:

已有数据【表名:table】:

记录号      省份          城市

1             广东          深圳

2             广东          广州

3             广西          梧州

4             广西          南宁


当前已输入:


记录号      省份          城市

5             广东

在输入【城市】时,需要根据当前记录【省份】的值(广东)列出已有的城市候选,怎么做?


在设计视图里【城市】字段中行来源里输入以下:

SELECT table.城市
FROM table
WHERE (((table.省份)=【这个变量怎么弄?】));




 

Top
杨健 发表于:2013-04-27 08:44:01

这个问题可以这么办

“SELECT table.城市 FROM table WHERE table.省份=‘ ” & Me.省份 & “’” 

其中Me.省份是你窗体里省份的控件。详细看我示例附件城市选择

其实就是Me.城市控件的AfterUpdate 事件,让系统去查询所需数据。我在语句里加了个DISTINCT 是只查找不重复的字段值。另外为了易于输入同样要将Me.省份也改成下拉列表框的形式,这样省份只要是已经输入的就不用再输了,可以直接选择。希望能帮到你。



杨健 发表于:2013-04-27 08:49:02

 

不好意思,上贴有笔下误:应该是这样

这个问题可以这么办

“SELECT table.城市 FROM table WHERE table.省份=‘ ” & Me.省份 & “’”

其中Me.省份是你窗体里省份的控件。详细看我示例附件城市选择

其实就是Me.省份控件的AfterUpdate 事件,让系统去查询所需数据。我在语句里加了个DISTINCT 是只查找不重复的字段值。另外为了易于输入同样要将Me.省份也改成下拉列表框的形式,这样省份只要是已经输入的就不用再输了,可以直接选择。具体做法是在窗体的load事件里将省份字段值加载,

Me.省份.RowSource = "Select DISTINCT 省份 from City Order By 省份 ”

希望能帮到你。




煮江品茶 发表于:2013-04-27 09:57:05
怀璧 发表于:2013-04-27 12:59:20

上面两位的解决方案都要用到窗体,虽然具体我还没弄懂,但是相信参照两位的示例能弄清楚,首先在此谢谢两位。

不过我的意思是直接在表内解决这个问题,不需要用到窗体。



恐龙的传人 发表于:2013-04-28 20:30:28
楼主应该明白:录入数据最好在窗体中完成,比在表中录入能达到事半功倍的效果。

fietiger 发表于:2013-04-29 12:14:30
事实上我也刚问了同样的问题,2003年有人在csdn上也问过同样的问题,不过可能是由于版本的原因,那个答安我没法通过。那个答案是又通过一个子查询与当前的ID进行比较得出的.可以明确的是表打开之后的数据表视图也是一个form, 可以通过forms![formname]指向,另外listindex 的介绍中也明确指出在数据表视图中listindex是只读的,问题的关键在于以什么样的路径找到当前的listindex

总记录:6篇  页次:1/1 9 1 :