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

Exportar para .txt dados em um intervalo de datas


Marco Canhoto

Pergunta

Olá a todos!

Tenho um aaplicação em VB com banco de dados em Mysql. Tenho uma rotina que exporta dados da tabela para um arquivo .txt, porém não consigo fazer essa exportação com dados específicos, no caso entre um intervalo de datas: Uso o código abaixo, mas ele sempre exporta TODOS os dados da tabela.

------------------------------------------------------------------------------------

Private Sub Command6_Click()

dim sql as string

If Not myCon.State = adStateOpen Then myCon.Open "DSN=odonto"

stra = data2.Value

strb = data3.Value

Open "C:\root\ArquivoDadosTexto.txt" For Output As #1

sql = "SELECT * FROM registro WHERE data1 BETWEEN " & Format(stra, "yyyy-mm-dd") & " AND " & Format(strb, "yyyy-mm-dd") & ""

myRS.MoveFirst

Do While Not myRS.EOF

sql = sql & myRS.Fields(0) & ","

sql = sql & myRS.Fields(1) & ","

sql = sql & myRS.Fields(2) & ","

sql = sql & myRS.Fields(3) & ","

sql = sql & myRS.Fields(4) & ","

sql = sql & myRS.Fields(5) & ","

sql = sql & myRS.Fields(6) & ","

sql = sql & myRS.Fields(7) & ","

sql = sql & myRS.Fields(8) & ","

sql = sql & myRS.Fields(9) & ","

sql = sql & myRS.Fields(10) & ","

Print #1, sql

myRS.MoveNext

Loop

Close #1

MsgBox "Arquivo gerado com êxito." & Chr(13) _

& "Foram gerados " & myRS.RecordCount & " registros.", vbInformation

End Sub

-----------------------------------------------------------------------------------------------

O que está errado nesse código?

Desde já agradeço a atenção!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Era isso mesmo Kuroi... E mais umas coisinhas. Ficou assim:

================================================

Private Sub Command1_Click()

If Not myCon.State = adStateOpen Then myCon.Open "DSN=odonto"

sql = "select date_format(campo1, '%Y-%m-%d') as data1,campo2,campo3 from registro WHERE campo1 between '" & Format(data1, "yyyy-mm-dd") & "' and '" & Format(data2, "yyyy-mm-dd") & "' ORDER BY campo1"

=======================================================

Com esse código, ele pode gerar em .txt, .xls, e até em .pps. é só trocar o formato na linha "open "C:\odonto..." Mas para formatos como .pps precisa ter uma configuração, que aí eu já não sei...

Agora outra coisa:

Na linha Open "C:\root\ArquivoDadosTexto.txt" For Output As #1, Eu não consigo criar uma variável para o nome do arquivo. Por exemplo, eu tentei criar uma variável string de texto e coloquei Open "C:\root\" & variavel & "" For Output As #1, mas ai ele cria o arquivo de nome " & variavel & " !!!!

Como faço para que essa linha entenda que deve considerar o texto C:\root\ + a variavel para formar o diretório?

Valeu aí! Muito obrigado!

Editado por Marco Canhoto
Link para o comentário
Compartilhar em outros sites

  • 0

Opa, consegui resolver o problema!

Ficou assim:

Open "C:\odonto\" & Format(data1.Value, "dd-mm-yyyy") & " a " & Format(data2, "dd-mm-yyyy") & ".txt" For Output As #1

Por exemplo se eu usar o dia 16/09/2008 no data1 e no data2, logo o programa vai gerar o diretório:

C:\odonto\16-09-2008 a 16-09-2008.txt

Tive problemas com a barra \ em que o programa trabalha com / . Então eu fiz a rotina replace de "\" para "/".

Obrigado!

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,2k
    • Posts
      652k
×
×
  • Criar Novo...