表一(kehu):
ID 客户名称
1 aaaaaa
2 bbbbbb
表二(jiaoyi):
ID 客户名称 交易金额
1 2 1000
2 1 2000
//客户名称
khADOQUERY1.SQL.Add('select * from kehu');
khADOQUERY1.Open;
for i:= 0 to khADOQUERY1.RECORDCOUNT -1 DO
BEGIN
COMBOBOX1.ITEMS.ADD(khADOQUERY1.FIELDBYNAME('客户名称').AsString);
khADOQUERY1.NEXT;
END;
khADOQUERY1.Close;各位大侠,我想请问一下,我要在ComBoBOX1中,如果用户选择了aaaaaa,我想取出aaaaaa所对应的ID,也就是1,然后存入到jiaoyi这个表中,怎么取ComBoBOX1中的值?
ID 客户名称
1 aaaaaa
2 bbbbbb
表二(jiaoyi):
ID 客户名称 交易金额
1 2 1000
2 1 2000
//客户名称
khADOQUERY1.SQL.Add('select * from kehu');
khADOQUERY1.Open;
for i:= 0 to khADOQUERY1.RECORDCOUNT -1 DO
BEGIN
COMBOBOX1.ITEMS.ADD(khADOQUERY1.FIELDBYNAME('客户名称').AsString);
khADOQUERY1.NEXT;
END;
khADOQUERY1.Close;各位大侠,我想请问一下,我要在ComBoBOX1中,如果用户选择了aaaaaa,我想取出aaaaaa所对应的ID,也就是1,然后存入到jiaoyi这个表中,怎么取ComBoBOX1中的值?
解决方案 »
- 在注册DPK包编译时提示找不到.pas文件,如何解决?
- 我要通过Project--------->Import type l........得到PAS文件,然后引用这个文件?
- 绝对不可错过的免费软件!见者有分! LIGIA.DDN 2002.11.20发布
- 一个简单的sql语句不会写了。。青帮忙
- 打包delphi的bde等需要那些文件。
- 无法显示 XML 页。-----这是什么毛病?救命!
- Borland Will Push .NET Out Of Windows???!!!!!!!!!!
- DELPHI实现和手机蓝牙收发功能
- delphi可以用来编写比较底层的程序吗?
- 没分,但希望有人指点 - 如何监视某个文件夹的变化?
- 请问delphi用什么工具编写啊?能否指教下下?本人新手~~~
- 今天发现的一个intraweb问题,大家来帮忙看一下……
COMBOBOX1.ITEMS.ADDObject(khADOQUERY1.FIELDBYNAME('客户名称').AsString,TObject(khADOQUERY1.FIELDBYNAME('id').asinteger);
选中第1个ComboBox1.ItemIndex值为0
选中第2个ComboBox1.ItemIndex值为1
依次类推……
COMBOBOX1.ITEMS.ADDObject(khADOQUERY1.FIELDBYNAME('客户名称').AsString,TObject(khADOQUERY1.FIELDBYNAME('id').asinteger);获取时:
id := integer(Combobox1.items.objects[itemsindex])
for i:= 0 to khADOQUERY1.RECORDCOUNT -1 DO
BEGIN
//COMBOBOX1.ITEMS.ADD(khADOQUERY1.FIELDBYNAME('客户名称').AsString);
COMBOBOX1.ITEMS.ADDObject(khADOQUERY1.FIELDBYNAME('客户名称').AsString,TObject(khADOQUERY1.FIELDBYNAME('id').asinteger));
combobox1.ItemIndex:= khADOQUERY1.FIELDBYNAME('id').asinteger;
khADOQUERY1.NEXT;
END;
Edit1.Text := IntToStr(ComboBox1.Items.IndexOf('1 2333')) ;
这样就OK了
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
ComboBox1: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
i:integer=0;
implementation{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.Items.AddObject(edit1.Text,TObject(i));
inc(i);
end;procedure TForm1.ComboBox1Change(Sender: TObject);
begin
edit2.Text:=inttostr(integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]));
end;end.
//---------------------------
AddObject是一个容易用错的方法,如果附加的是存在的TObject子类,你不用手动收回内存,但附加的是自己创建的结构或类,它不会随TStrings的释放而释放的,必须要手动释放分配内存。
khADOQUERY1.Open;
for i:= 0 to khADOQUERY1.RECORDCOUNT -1 DO
BEGIN
COMBOBOX1.ITEMS.ADD(khADOQUERY1.FIELDBYNAME('客户名称').AsString);
khADOQUERY1.NEXT;
END;
khADOQUERY1.Close;这些都没问题,你再加一个COMBOBOX1的离开事件;procedure TForm1.ComboBox1Exit(Sender: TObject);
var
g_ID : Integer;
begin
if khADOQUERY1.Locate('客户名称',Trim(ComboBox1.Text),[]) then
begin
g_ID:=khADOQUERY1.FieldByName('ID').AsInteger;
end;
end;
第二步,取客户名称相对应的ID值 temp=trim(combobox.text)
adoquery.sql.add('select id from kehu where 客户名称='''+temp+''' ')
第三步,把ID值插入另一个表,这里我就不写代码了
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;type
PKehu = ^TKehu;
TKehu = Record
id: string;
name: string;
end;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Button1: TButton;
ComboBox1: TComboBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
FKehu :PKehu;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
combobox1.Items.Clear;
with adoquery1 do
begin
close;
sql.text := 'select id,name from kehu order by id';
open;
while not eof do
begin
new(FKehu);
FKehu.id := FieldByName('id').AsString;
FKehu.name := FieldByName('name').AsString;
combobox1.Items.AddObject(FKehu.name,TObject(FKehu));
next;
end;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
FKehu := PKehu(combobox1.Items.Objects[combobox1.itemIndex]);
showmessage(Fkehu.id+' '+Fkehu.name);
end;end.