高手们,本人有了新的问题。。希望解答。。(100)

  • 主题发起人 主题发起人 jink
  • 开始时间 开始时间
J

jink

Unregistered / Unconfirmed
GUEST, unregistred user!
用什么方法能让 点DBGRID 其中 一行 就显示 其行 内 某两个或者三个字段 内容的详细内容 在另外的DBGRID 里?比如 DBGRID1 客户名称 地址 电话 XX1 XXXX1 XXXXXXX1 XX2 XXXX2 XXXXXXX2点击 XX1 XXXX1 XXXXXXX1 这个行 就在 DBGRID2显示 联系人 联系电话 生日 。。。 XXX1 XXXXXXX XXXX/XX/XX DBGRID3里显示 购买产品 购买数量 价格 xxxx xxxx xx znxia 如果显示在一个FORM里呢?另,本人新手,新的不能再新的那种。。在下虚心请教~,请高手详细指点
 
DBGrid2/Dbgrid3在另外一个form中吧?把当前记录的主键传递过去不久可以了?Form2:=TForm2.Create(application);Form2.GetData( 主键值 ) //form2中查询显示数据。Form2.ShowModal;Form2.Free;
 
用主/从表或者用代码控制都可以实现
 
高手们帮帮忙撒。。
 
数据库的没意思
 
如果显示在一个FORM里呢?---------如果是这样,那这些信息就不需要用DBGRID2显示了,而是应该放一个Panel,Panel里面放一些DBEdit,显示对应字段。DBGRID3对应的Query可以这么写query3.datasource := dbgrid1.datasource;query3.sql.text := 'select * from 表3 where 关联字段= :关联字段';这样dbgrid1中记录滚动的时候,query3自动刷新数据。
 
新手得多练撤``~
 
还是希望 能说一下具体的操作,偶太新了。。
 
是不是太简单了??//----百度---不知道你是不是下面的意思: 窗体中放置两个dbgrid,数据库中有两个表stu_table和stu_info,它们有相同的字段,比如字段 student. 窗体中的dbgrid1用来显示stu_table表中的相关内容,我想实现,当我点击dbgrid中的任一行,dbgrid2中都能够显示stu_info有关dbgrid1中被选中的student的相关数据.该如何实现? 下面来说说方法(其实方法很多,只举自己贯用的一例.) 注:query1-datasourc1-dbgrid1; query2-datasource2-dbgrid2; dbgrid的显示可以随自己的需求显示,下面看如何实现dbgrid2的显示: 找到query1的AfterScorll事件,双击写入代码(最关键的): procedure TForm1.Query1AfterScroll(DataSet: TDataSet); begin with query2 do begin close; query2.SQL.Clear; sql.Add('select * from stu_info where student=:mo'); parambyname('mo').AsString := query1.fieldbyname('mo').AsString; open; end; end; 写入这段SQL就可以实现你想要的结果了. 如果B表中没有A表中所需的项,怎么自动添加? 你是想向表中插入数据?如果你的数据库连接都正常,可以使用下面的方法(QR1:TQuery): Qr1.Close; Qr1.unprepare; Qr1.SQL.clear; Qr1.SQL.Append('INSERT INTO TABEL(字段1,字段2) values (''...'',''...'')'); Qr1.prepare; Qr1.ExecSQL; 百度里找到这个。。这个样子做能实现嘛?
 
可以不用写AfterScorll事件在他基础上,设置query2.datasource=datasource1query2.sql.text属性设置为'select * from stu_info where student=:mo';这样就可以了
 
我用ADO 做了这个程序。为什么提示我mo 找不到?
 
再次万分的感谢、、先搬回家试试、、再不行,我就把做的东西拿来发在这里改~~[:(]
 
我做了一个,可以通过,虽然是查询同一个表,但adoquery2只显示一条记录,没有写任何代码,如下:object Form1: TForm1 Caption = 'Form1' Color = clBtnFace object DBGrid1: TDBGrid Left = 104 Top = 40 Width = 320 Height = 120 DataSource = DataSource1 end object DBGrid2: TDBGrid Left = 112 Top = 168 Width = 320 Height = 120 DataSource = DataSource2 end object ADOConnection1: TADOConnection Connected = True ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/db1.mdb;Persist ' + 'Security Info=False' LoginPrompt = False Mode = cmShareDenyNone Provider = 'Microsoft.Jet.OLEDB.4.0' end object ADOQuery1: TADOQuery Active = True Connection = ADOConnection1 CursorType = ctStatic Parameters = <> SQL.Strings = ( 'select * from date2') Left = 24 Top = 80 end object ADOQuery2: TADOQuery Active = True Connection = ADOConnection1 CursorType = ctStatic DataSource = DataSource1 Parameters = < item Name = 'id' Attributes = [paNullable] DataType = ftInteger NumericScale = 255 Precision = 255 Value = 1 end> SQL.Strings = ( 'select * from date2' 'where id= :id') Left = 24 Top = 136 end object DataSource1: TDataSource DataSet = ADOQuery1 end object DataSource2: TDataSource DataSet = ADOQuery2 endend=========成功后记得结贴哦,呵呵
 
终于实现了。。用了一个很简单的语句。。 还得谢谢znxia。。 分给你了,不过有新问题了,。
 
后退
顶部