Fórum Combobox 1 = Tabelas do banco, Combobox2 = campos tabela #240939
02/07/2004
0
Estou fazendo um formulario para pesquisas onde o usuario final pode fazer a pesquisa que deseja segundo suas necessidades e pensei no seguinte:
Coloquei um combobox onde o preenchi com todas as tabelas do meu banco, para isso usei o seguinte codigo no Evento DropDown:
try
with Sender as TComboBox do
if Items.Count < 1 then
ADOConection.GetTableNames(Items);
except
{ Eat any exceptions so the combobox doesn´t paint funny }
end;
O aplicativo roida legal e as tabelas são carregadas no combo, agora eu gostaria que ao selecionar uma tabela neste combo fosse carregada no combobox2 todos os campos desta tabela, o problema é que não posso especificar uma determinada adoquery pois o usuario pode selecionar a tabela que quiser, alguem saberia como fazer isso?
Uso a paleta ado do delphi 7
Obrigada
Flavinha
Flavia_mococa
Curtir tópico
+ 0Posts
02/07/2004
Reginaldo174
begin
WITH ADOQuery1 DO
BEGIN
CLOSE;
SQL.Clear;
SQL.Add(´SELECT * FROM ´+ComboBox1.Text);
OPEN;
END;
end;
Gostei + 0
02/07/2004
Flavia_mococa
eu gostaria que ao selecionar a tabela no combobox 1 aparece no combobox 2 o nome dos campos (cod, fornecedor, cpf, rg) e nao os registros da tabela...
Alguem sabe como fazer isso?
Gostei + 0
02/07/2004
Paulo_amorim
Imagino que deve existir uma forma direta de fazer isso, mas se não aparecer vocÊ pode dar um jeito
Quando ele escolher a tabela, vc cria a query
SELECT * FROM <tabela escolhida> Query1.Open; for i := 0 to Query1.Fields.Count-1 do ComboBox2.Item.Add( Query1.Fields[i].Name );
Espero que ajude
Até+
Gostei + 0
02/07/2004
Flavia_mococa
Obrigada
Flavinha
Gostei + 0
02/07/2004
Reginaldo174
procedure TForm1.Button1Click(Sender: TObject);
var
i :integer;
begin
WITH ADOQuery1 DO
BEGIN
CLOSE;
SQL.Clear;
SQL.Add(´SELECT * FROM ´+ComboBox1.Text);
OPEN;
END;
for i := 0 to ADOQuery1.Fields.Count-1 do
ComboBox2.Items.Add( ADOQuery1.Fields[i].FieldName );
end;
Gostei + 0
02/07/2004
Paulo_amorim
Só inserindo BBCode pra ficar mais claro...
procedure TForm1.Button1Click(Sender: TObject); var i :integer; begin with ADOQuery1 do begin try Close; SQL.Clear; SQL.Add(´SELECT * FROM ´ + ComboBox1.Text); Open; except ShowMessage(´Erro ao exibir campos´); end; for i := 0 to Fields.Count-1 do ComboBox2.Items.Add( Fields[i].FieldName ); end;
Gostei + 0
02/07/2004
Paulo_amorim
Agora sim :D
Gostei + 0
02/07/2004
Flavia_mococa
Muito obrigada mesmo
Flavinha
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)