Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
felipethadeu Novato
Registrado: Quarta-Feira, 17 de Julho de 2013 Mensagens: 16
|
Enviada: Qua Jul 31, 2013 11:29 am Assunto: Exportar para excel DBgrid sem Query |
|
|
Ola,
Estou aqui novamente...
Achei alguns topicos que dizem como exportar os itens do dbgrid para o excel, porem todos tem o Query.
Meu banco de dados é em Access e eu uso todas as conexoes do banco em ADO.
Não tenho a menor ideia de como mexer com Query...
Alguem teria alguma dica de como realizar a exportação sem o query?
Valeu!
Código: | var linha, coluna : integer;
var planilha : variant;
var valorcampo : string;
begin
Query1.CachedUpdates := true;
planilha:= CreateoleObject('Excel.Application');
planilha.WorkBooks.add(1);
planilha.caption := Exportando dados do dbGrid para o Excel';
planilha.visible := true;
Query1.ApplyUpdates;
Query1.First;
for linha := 0 to Query1.RecordCount - 1 do
begin
for coluna := 1 to Query1.FieldCount do
begin
valorcampo := Query1.Fields[coluna - 1].AsString;
planilha.cells[linha + 2,coluna] := valorCampo;
end;
Query1.Next;
end;
for coluna := 1 to Query1.FieldCount do
begin
valorcampo := Query1.Fields[coluna - 1].DisplayLabel;
planilha.cells[1,coluna] := valorcampo;
end;
planilha.columns.Autofit; |
|
|
Voltar ao Topo |
|
|
Batera Colaborador
Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Qua Jul 31, 2013 1:19 pm Assunto: |
|
|
Boa tarde, Felipe.
Os dados da DBGrid estão ligados a uma DataSet.
Este DataSet provavelmente é uma Query.
Sendo assim, se você quer exportar dados de uma tabela para o Excel, de qualquer forma terá que utilizar um DataSet. |
|
Voltar ao Topo |
|
|
felipethadeu Novato
Registrado: Quarta-Feira, 17 de Julho de 2013 Mensagens: 16
|
Enviada: Qua Jul 31, 2013 1:25 pm Assunto: |
|
|
Então, meu form tem 1 ADOConnection1 depois 1 ADOTable1 depois 1 DataSource1 e por fim o DBgrid.
Tem mesmo a necessidade de adicionar um ADOquery? se sim, o Code que mandei funciona , né!? ou nao rs.
Porque quando eu adiciono o ADOquery ele da erro de SQL quando vai ativar "missing Sql property" |
|
Voltar ao Topo |
|
|
Batera Colaborador
Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Qua Jul 31, 2013 1:36 pm Assunto: |
|
|
Ah, agora entendi sua pergunta.
No lugar da Query, utilize o seu ADOTable.
O código que você postou é só um exemplo utilizando Query. |
|
Voltar ao Topo |
|
|
mhgsimoes Aprendiz
Registrado: Sexta-Feira, 7 de Dezembro de 2007 Mensagens: 142 Localização: Belo Horizonte / MG
|
Enviada: Qua Jul 31, 2013 1:37 pm Assunto: |
|
|
Tente substituir "Query1" do código que você mandou por "ADOTable1" que deve funcionar.
Tanto a "Query", quanto "Table" são "DataSets". |
|
Voltar ao Topo |
|
|
felipethadeu Novato
Registrado: Quarta-Feira, 17 de Julho de 2013 Mensagens: 16
|
Enviada: Qua Jul 31, 2013 2:13 pm Assunto: |
|
|
Pessoal, fiz aqui o code.
ficou assim:
Código: | procedure TConsulta.Button1Click(Sender: TObject);
var linha, coluna : integer;
var planilha : variant;
var valorcampo : string;
begin
ADOTable1.CachedUpdates := true;
planilha:= CreateoleObject('Excel.Application');
planilha.WorkBooks.add(1);
planilha.caption := Exportando';
planilha.visible := true;
ADOTable1.ApplyUpdates;
ADOTable1.First;
for linha := 0 to ADOTable1.RecordCount - 1 do
begin
for coluna := 1 to ADOTable1.FieldCount do
begin
valorcampo := ADOTable1.Fields[coluna - 1].AsString;
planilha.cells[linha + 2,coluna] := valorCampo;
end;
ADOTable1.Next;
end;
for coluna := 1 to ADOTable1.FieldCount do
begin
valorcampo := ADOTable1.Fields[coluna - 1].DisplayLabel;
planilha.cells[1,coluna] := valorcampo;
end;
planilha.columns.Autofit;
end;
|
Porem ele não reconhece o "CachedUpdates" e "ApplyUpdates" do ADOTable1 como valido.
Acho que não rola usar este code.... vou ter que pesquisar um especifico de ADO |
|
Voltar ao Topo |
|
|
mhgsimoes Aprendiz
Registrado: Sexta-Feira, 7 de Dezembro de 2007 Mensagens: 142 Localização: Belo Horizonte / MG
|
Enviada: Qua Jul 31, 2013 3:00 pm Assunto: |
|
|
Pode remover essas linhas. |
|
Voltar ao Topo |
|
|
felipethadeu Novato
Registrado: Quarta-Feira, 17 de Julho de 2013 Mensagens: 16
|
Enviada: Qua Jul 31, 2013 4:21 pm Assunto: |
|
|
mhgsimoes escreveu: | Pode remover essas linhas. |
Muito obrigado!
Funcionou direitinho!
Vlw vlw! |
|
Voltar ao Topo |
|
|
|