Erro em pesquisa utilizando ADOQuery em Delphi7

19/03/2003

0

Olá pessoal!

Estou usando Delphi 7, ADO com bd MSAccess, e estou tendo o seguinte problema ao gerar o relatório a partir de um botão em uma tela de pesquisa:
´ Tipo de dados incompatível na expressão de critério.´

Segue abaixo o código que utilizei:

procedure TF_Pesq.btnImprimirClick(Sender: TObject);
var
i: Integer;
begin
i:= rgOrdem.ItemIndex;
with Modulo.qryListaPr do
begin
Close;
with SQL do
begin
if cTodos.Checked then
begin
Clear;
Add(´SELECT Protocolo, DV, Dependencia, Cliente, DataDaEntrada,´
+´ DataDaSaida, Valor, LnCredito, Situacao, Funcionario, Area´); //Selecionar os campos
Add(´FROM TBL_OPERACAO´); //Selecionar a tabela
Add(´ORDER BY ´ + rgOrdem.Items[i]); //Selecionar a ordem
end
else
begin
Clear;
Add(´SELECT Protocolo, DV, Dependencia, Cliente, DataDaEntrada,´
+´ DataDaSaida, Valor, LnCredito, Situacao, Funcionario, Area´); //Selecionar os campos
Add(´FROM TBL_OPERACAO´); //Selecionar a tabela
Add(´WHERE Cliente LIKE ´+´´´´+´¬´+ Edit1.Text + ´¬´
+´´´ AND Funcionario LIKE ´+´´´´+´¬´+ lkeFunci.Text + ´¬´
+´´´ AND LnCredito LIKE ´+´´´´+´¬´+ lkeLnCred.Text + ´¬´
+´´´ AND Situacao LIKE ´+´´´´+´¬´+ lkeSituacao.Text + ´¬´
+´´´ AND Area LIKE ´+´´´´+´¬´+ cbArea.Text + ´¬´
[color=red:7b8c7b26ae]+´´´ AND Dependencia LIKE ´+´´´´+´¬´+ lkeDep.Text + ´¬´
+´´´ AND DataDaEntrada BETWEEN ´+´´´´+´¬´+ deEntradaI.Text + ´¬´ + ´´´ AND ´+´´´´+´¬´+ deEntradaF.Text + ´¬´
+´´´ AND DataDaSaida BETWEEN ´+´´´´+´¬´+ deSaidaI.Text + ´¬´ + ´´´ AND ´+´´´´+´¬´+ deSaidaF.Text + ´¬´+´´´´);[/color:7b8c7b26ae]
Add(´ORDER BY ´ + rgOrdem.Items[i]); //Selecionar a ordem
end;
end;
Open;
end;
Application.CreateForm(TQR_ListaPr, QR_ListaPr); //Carrega form na memória
QR_ListaPr.Preview; //Mostra form em modo exclusivo
QR_ListaPr.Free; //Libera Memória
with Modulo do
qryListaPr.Close; //Fecha a ADOQuery
end;

O erro ocorre quando incluo as linhas vermelhas no SQL, sem elas a pesquisa funciona normalmente.

O que posso fazer para que dê certo esta instrução?

Obrigado pela atenção.


Vega.x

Vega.x

Responder

Posts

19/03/2003

Josemarlourenco

Esperimente fazer as seguintes alterações nas suas linhas vermelhas:

+´´´ AND Dependencia LIKE ´+´´´´+´¬´+ lkeDep.Text + ´¬´ (nesta não tem alterações)

+´ AND DataDaEntrada BETWEEN ´+ deEntradaI.Text + ´ AND ´ + deEntradaF.Text
+´ AND DataDaSaida BETWEEN ´ + deSaidaI.Text + ´ AND ´ + deSaidaF.Text);

Dê uma olhada neste monte de aspas. Tá meio confuso.
Não seria melhor trabalhar com parâmetros?

Caso vc continue montando a query sem usar parâmetros, pode examinar seu conteúdo para saber se foi montada corretamente usado o comando:
query.SaveToFile(qrquivo)
Antes do comando Open.

Josemar


Responder

19/03/2003

Vega.x

Muito obrigado Josemar!

Deu Certo!!!!!!


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar