Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Exportar layout Access para txt


João Paulo Taraciuk

Pergunta

Olá pessoal, eu estou precisando de ajuda na montagem de um layout para exportar dados de um sistema para outro, aí, eu preciso por a opção de escolher os campos que irão para o select,eu tentei colocar alguns CheckBox, e no evento OnKeyUp ir colocando ou removendo o campo de um TMemo, fiz mais ou menos assim:

IF(CheckBox1.Checked=True)then
Memo1.Lines.Strings[2]:=',nomcli'
else
if(CheckBox1.Checked=False)then
Memo1.Lines.Strings[2]:='';
Funciona beleza, mas o problema está na vírgula, pois nesse caso acima, eu estou supondo que já tem um campo no memo, ah, e no memo eu já coloquei por padrão na primeira linha o select e na última irei colocar o "from tabela...". Na consulta está assim:
ADOQuery2.Active:=False;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(Memo1.Lines.Text);
ADOQuery2.Active:=True;

Como eu poderia fazer para colocar as vírgulas no local correto, ou se alguém tiver uma idéa melhor para esta exportação, eu agradeço!!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Funciona beleza, mas o problema está na vírgula, pois nesse caso acima, eu estou supondo que já tem um campo no memo, ah, e no memo eu já coloquei por padrão na primeira linha o select e na última irei colocar o "from tabela...".

Na consulta está assim:

ADOQuery2.Active:=False;

ADOQuery2.SQL.Clear;

ADOQuery2.SQL.Add(Memo1.Lines.Text);

ADOQuery2.Active:=True;

procedure TForm1.Button1Click(Sender: TObject);
var s : string;
begin
   ADOQuery2.Active:=False;

   s := 'Select ';

   if CheckBox1.Checked = true then
      s := s + 'COD, '; /// campo da sua tabela

   if CheckBox2.Checked = true then
      s := s + 'DATA, '; /// campo da sua tabela

   if CheckBox3.Checked = true then
      s := s + 'NOMCLI, ';  /// campo da sua tabela

   s := s + 'FROM Tabela';

   if Pos(', FROM', S) > 0 then
      delete(s,Pos(', FROM', S),1);

   ADOQuery2.SQL.Clear;
   ADOQuery2.SQL.Append(s);

   ADOQuery2.Active:=True;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Excelente Jhonas, exatamente o que eu precisava, mas, agora, o que faz exatamente esta linha?

if Pos(', FROM', S) > 0 then
      delete(s,Pos(', FROM', S),1);

De que forma está eliminando a última vírgula dos campos antes do "From", e o que significa este "Pos"?

Link para o comentário
Compartilhar em outros sites

  • 0
if Pos(', FROM', S) > 0 then

delete(s,Pos(', FROM', S),1);

De que forma está eliminando a última vírgula dos campos antes do "From", e o que significa este "Pos"?

o que significa este "Pos"?

Pos é uma função do delphi

function Pos(Substr: string; S: string): Integer;

Retorna o valor de índice do primeiro caráter em um substring especificado que ocorre em uma determinada string

ou seja:

if Pos(', FROM', S) > 0 then

delete(s,Pos(', FROM', S),1);

Pos procura a substring ', FROM' dentro de uma string ( S ) e retorna o numero da coluna onde foi encontrada a substring..... se for encontrada ( > 0 ) então é deletado da string ( S ) na mesma posição onde foi encontrada a substring ', FROM' a virgula { delete(s,Pos(', FROM', S),1); }

sugiro a voce procurar conhecer melhor a sintaxe dos comandos em delphi.

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...