USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  o que está errado?
luiz
não registrado
Postada em 12/12/2006 09:39 hs   

Ola. Estou tentando anexar via vb6 em tabela access 2003 um arquivo txt com o seguinte código:

 

Dim Remessa_CaixaEco As Recordset

Dim Remessa_Cartas As Recordset

Dim Banco As Database

 

Sub Anexa_Carta(Arquivo As String)

   Dim Reg_Atual As String

   Dim Num_Campo As String

   Dim Registro As String

   Dim Contador As Integer

   Dim NDemo As Integer

   Open Trim(Arquivo) For Input As #1

   Line Input #1, Registro

   Reg_Atual = Mid(Registro, 2, Len(Registro))

   Num_Campo = Mid(Registro, 1, 1)

   While Not EOF(1)

      Reg_Atual = Mid(Registro, 2, Len(Registro))

      Num_Campo = Mid(Registro, 1, 1)

      Select Case Num_Campo

         Case "1"

            Remessa_Cartas.AddNew

            Remessa_Cartas!EMPRESA = Mid(Reg_Atual, 1, 200)

            Remessa_Cartas!CLIENTE = Mid(Reg_Atual, 201, 45)

            Remessa_Cartas!DATAVENC = Mid(Reg_Atual, 246, 10)

          

         Case "2"

          

            If Len(Trim(Remessa_Cartas!NUMERO_CONTRATO)) > 1 Then

            Remessa_Cartas!NUMERO_CONTRATO = Remessa_Cartas!NUMERO_CONTRATO & Chr(13) & Chr(10) &  Trim(Mid(Reg_Atual, 86, 23))

            Else

            Remessa_Cartas!NUMERO_CONTRATO = Mid(Reg_Atual, 86, 23)

            End If

           

            If Len(Trim(Remessa_Cartas!NUMERO_DOCUMENTO)) > 1 Then

            Remessa_Cartas!NUMERO_DOCUMENTO = Remessa_Cartas!NUMERO_DOCUMENTO & Chr(13) & Chr(10)    & Trim(Mid(Reg_Atual, 109, 16))

            Else

            Remessa_Cartas!NUMERO_DOCUMENTO = Mid(Reg_Atual, 109, 16)

            End If

        

           On Error Resume Next

            Remessa_Cartas.Update

      End Select

      Line Input #1, Registro

   Wend

  

End Sub

 

 

O problema é que ele só anexa a primeira linha no Case “2” de cada registro ,  ignorando as demais linhas que fazem parte deste case no mesmo registro.

Gostaria de alguma ajuda para corrigir este problema. Obrigado

luiz

 

     
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
Postada em 12/12/2006 16:28 hs            
dá um debug e verifica se Todas as variaveis estão sendo carregadas...
Outra coisa :
Tente alterar o seu código aí para carregar Todas as variaveis ANTES de começar a inserção no BD
     
JSFF
SÃO PAULO
SP - BRASIL
Postada em 12/12/2006 16:54 hs            
Luiz,
 
Talvez seja melhor você mudar um pouco as coisas dentro desse "While...Wend".
A linha
 
          Line Input #1, Registro
 
devia estar no logo abaixo dessa:
         
          While Not EOF(1)
 
Seria interessante também verificar dessa maneira:
 
          If (Registro <> "") Then...
 
antes de sair atribuindo suas partes (que podem não existir se a linha do arquivo vier vazia) às variáveis, como estar sendo feito no seu código.  
 
Reveja esse 'loop', pois todo o problema parece estar aí, como alertou o nosso amigo PH1959.
 
 
         
 
 
 
     
Cardoso G
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
Postada em 13/12/2006 11:11 hs            
luiz faça o seguinte : tente limpar a variavel registro antes de ler a proxima linha,
dentro do loop e roda novamente pra ver se funciona
 
End Select
Registro = ""
Line Input #1, Registro
 
     
luiz
não registrado
Postada em 13/12/2006 11:31 hs   
ola
Fiz conforme as instruções dos colegas e ocorreu o seguinte:
Se uso o tratamento de erro 'on error resume next' ele anexa somente a primeira linha do registro no case "2", se elimino o tratamento de erros elecoloca a seguinte mensagem: "run time error 3021 nenhum registro atual"
att luiz
 
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página