Access交流中心

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

如何解决两个表引用多栏数据的问题?

Ally  发表于:2010-07-24 20:02:13  
复制

版本:ACCESS 2007

 

比如有两张表:

 

表A 为材料名称:

ID  中文名称 英文名称    材料编码
 1  钢筋  Rebar  1010
 2  水泥  Cement  2010
 3  木头  Wood  3010

 

表B 为订单处理:

 订单号  材料编码  中文名称  英文名称  单价  数量
 1  1010  钢筋  Rebar  4500  200
 2          
 3          

 

怎么在表B中的 [材料编码],[中文名称],[英文名称]三栏中,任意输入其中某一栏的数据,其他两栏会根据表A的信息自动填上对应的数据?

 

注意是三栏中的任意一栏输入数据,另外两栏立即更新为对应数据。

 

各位老师,请指教,谢谢!

 

我刚学ACCESS2007,还不太会VB,可以尽量用2007自有控件或者是表达式解决吗?感谢!

 

Top
zjcctv2006 发表于:2010-07-24 22:57:40

这也是我想要的我是新手刚刚学的



Ally 发表于:2010-07-25 09:00:58

此问题还请各大牛人指点,谢谢!



马山杨梅 发表于:2010-07-25 15:19:46

用DLookup函数就行了。

例如:

在表B的输入窗体中放置下面的代码即可。当然,如果你的文本框名称和我不同,就需要改一下名称才行。

 

Private Sub 材料编码_AfterUpdate()
Me.中文名称 = DLookup("[中文名称]", "表A", "[材料编码] ='" & Me.材料编码 & "'")
Me.英文名称 = DLookup("[英文名称]", "表A", "[材料编码] ='" & Me.材料编码 & "'")
End Sub

Private Sub 英文名称_AfterUpdate()
Me.中文名称 = DLookup("[中文名称]", "表A", "[英文名称] ='" & Me.英文名称 & "'")
Me.材料编码 = DLookup("[材料编码]", "表A", "[英文名称] ='" & Me.英文名称 & "'")
End Sub

Private Sub 中文名称_AfterUpdate()
Me.英文名称 = DLookup("[英文名称]", "表A", "[中文名称] ='" & Me.中文名称 & "'")
Me.材料编码 = DLookup("[材料编码]", "表A", "[中文名称] ='" & Me.中文名称 & "'")
End Sub

照你说的做了个简例,你去窗口试试看。

点击下载此附件

lyxiong 发表于:2010-07-26 12:34:17

3楼的方法可取。

 



Ally 发表于:2010-07-26 20:33:57

3楼的老师:

 

好像行不通,附件中输入数据,其他两栏没有反映,没有自动更新。



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