关于两表关联查询输入问题(50分)

  • 主题发起人 主题发起人 HeBaisong
  • 开始时间 开始时间
H

HeBaisong

Unregistered / Unconfirmed
GUEST, unregistred user!
1:我有个关于两个表关联的问题,谁能帮我解决,
就发EMAIL给我拿原代码,我想了很久都没有想出来
是什么原因,请高手帮忙
我的EMAIL是hebaishong@163.com
 
能说具体些吗?
 
用关联:
select ......from table1 inner join table2 on table1.xxx=table2.xxx
 
表1的结构是 ItemNo ItemDetailNo Comments
数据: '123’ '120’ 'comm1'
'123' '121' 'comm2'
表2的结构是 ItemNo EName CName UPC
数据: '120' 'EName1' 'CName1' 'Upc1'
'121' 'EName2' 'CName2' 'Upc2'
'123' 'EName3' 'CName3' 'Upc3'
我是想通过DBGrid对数据库的表1进行数据输入
例如:在DBGrid的第一格输入'120'他后面的三格自动出现'Ename1' 'CName1' 'Upc1'
同样我如果输入'121'后面自动出现'EName2' 'CName2' 'Upc2'
另外用一个DBComboBox和表2的Item_No相连,当我改变他的Text的值时DBGrid也跟随着变
我对前面的输入已经可以实现了,但是当我改变DBComboBox的值时,DBGrid中的'EName'和
'CName'就不能正常显示了。
To lijun_lee:如果还不清楚,可以发原代码给你。
To wantlong:如果还不清楚,可以发原代码给你
 
可以用lookup字段来实现,在改combobox的text时,把字段的lookup属性改为false,再改回true
 
To 浪里白条:combobox的显示是正常的,DBGrid的显示还是不正常呀
希望能帮我解决这个问题,Thanks
 
不知你具体是怎么做的
你可以双击table1(表1)控件 把现'Ename1' 'CName1' 'Upc1'三个字段删除//如没有就不用了
再添加成这三个字段 例如添加enamel
name:enamel
component:自动生成就行了
type,size :就是字段的类型和字长
keyfields:itemno
dataset:table2
lookupkeyfields:itemno//你要保证主表中这个索引存在
resultfield:enamel
这样便可以了,
当然你在改itemno的值后,最好把查找字段的lookup属性改为false再改回 true
 
不知你的程序是怎末实现第一部分的。
我想可以在DbGrid 的OnKeyPress 事件中查询表2的Item_No字段值与表1的相同的记录,
然后把表2的后三个字段值赋给表1的相应字段。

对于第二部分,可以在表2 的OnPost 事件中查寻表1 中的相应记录,并把 Item_No
字段的值赋以与表2相同的值,然后 表1再Post;
试试怎样?
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
933
DelphiTeacher的专栏
D
D
回复
0
查看
888
DelphiTeacher的专栏
D
D
回复
0
查看
860
DelphiTeacher的专栏
D
后退
顶部