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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Onde esta o erro neste código ???
Jorge Wilson
SÃO PAULO
SP - BRASIL
Postada em 14/08/2005 09:52 hs            
Olá Pessoal, montei um form que faz a criação de uma tabela e o LOAD de um arquivo texto num banco de dados access, o código (abaixo) esta fazendo a criação porém NÃO esta fazendo a inserção dos dados, alguém poderia me dizer onde é que eu errei ???Emoções
 
Aí vai o código para analise....
 
Sub ParseToArray(sLine As String, A() As String)

Dim P As Long, MaxPos As Long, I As Long
' InStr é retornar a posição do caractere de busca na cadeia
' de caracteres de origem
 P = InStr(sLine, ";")

Do While P
  A(I) = Mid$(sLine, MaxPos + 1, P - MaxPos - 1)
  MaxPos = P
  I = I + 1
  P = InStr(MaxPos + 1, sLine, ";", vbBinaryCompare)
Loop
  A(I) = Mid$(sLine, MaxPos + 1)

End Sub

Private Sub Command1_Click()
Dim F As Long, sLine As String, A(0 To 2) As String
Dim db As New ADODB.Connection, rs As Recordset
On Error GoTo trata_erro

db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:Testeiblio.mdb;"
db.Open

' Abre arquivo Txt
F = FreeFile
Open TxtNomArq.Text For Input As F
' Set db = DBEngine(0).OpenDatabase(Text2.Text)

On Error Resume Next
' Verifica se a tabela ja existe
db.Execute "DROP TABLE ImportaTexto"
' Cria a estrutura da Tabela
db.Execute "CREATE TABLE ImportaTexto (CODIGO LONG, [Desc] TEXT (50), " _
& "Valor CURRENCY )"

With rs
  .ActiveConnection = db
  .CursorLocation = adUseClient
  .CursorType = adOpenStatic
  .LockType = adLockBatchOptimistic
       
 [COLOR=red] .Open ("select count(*) as CODIGO from ImportaTexto")[/COLOR]   .ActiveConnection = Nothing
End With
     
If rs.RecordCount < 1 Then
   Dim Cria As String
   Do While Not EOF(F)
      Line Input #F, sLine
      ParseToArray sLine, A()
     'Faz a insersão dos Dados
      Cria = "insert into ImportaTexto(CODIGO, Desc, Valor)" & "Values('" _
      & Val(A(0)) & "'," & A(1) & ",'" & Val(A(2)) & "')"
      db.Execute Cria

    Loop

    MsgBox "Arquivo texto importado com sucesso !! "

    rs.Close
    db.Close

    Close #F
 End If
Exit Sub
trata_erro:
   MsgBox "Ocorreu o erro ==> " & Err.Description
End Sub

Private Sub Command2_Click()
End
End Sub
            O trecho do código em vermelho é onde se encontra o meui problema (acho), pois as variaveis tem conteudo, porém quando  olho a tabela ImportaTexto no banco access a tabela esta criada, porém sem conteúdo (em branco).
 
              Pessoal da uma forcinha aí...
 
 
    Vlw !!!!!!Emoções
 
     
Knight
GOIÂNIA
GO - BRASIL
Postada em 14/08/2005 12:00 hs         
 
 
Campos numericos não se coloca entre aspas simples, so campos texto
Se o seu código e o seu valor forem campos numerios e o seu desc for campo texto tenta assim:
 
      Cria = "insert into ImportaTexto(CODIGO, Desc, Valor)" & "Values(" _
      & Val(A(0)) & ",'" & A(1) & "'," & Val(A(2)) & ")"
      db.Execute Cria

Emoções Knight Emoções

http://host.csti.eti.br

CSTI WebHosting
Hospedando Idéias Emoções

     
Jorge Wilson
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 14/08/2005 17:58 hs            
Valeu pela dica Knight, porém, NÃO funcionou.... Emoções, voce ou alguém tem mais alguma sugestão ??
 
de qualquer forma Valeu por enquantoEmoções
 
 

" O preguiçoso muito quer e nada tem, mas, o trabalhador satisfaz o apetite "Emoções
   
Leandro Luiz
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 15/08/2005 10:05 hs            
"Campos numericos não se coloca entre aspas simples"...Knight

Knight, vou discordar de você, se o número for decimal deve-se colocar entre apostrofo sim....

Jorge tente dessa maneira, pois entre o ")" e "Values" não estava ficando com 1 espaço...ok

  Cria = "insert into ImportaTexto(CODIGO, Desc, Valor) Values(" _
      & Val(A(0)) & ",'" & A(1) & "','" & Val(A(2)) & "')"
      db.Execute Cria


 

©Copyright by Leandro Luiz
     
VACA
LIMEIRA
SP - BRASIL
Postada em 15/08/2005 11:08 hs            
tenta antes de executar a string colocar doevents.. assim ele dah um tempinho antes de inserir/atualizar
pode ser isso
     
Knight
GOIÂNIA
GO - BRASIL
Postada em 15/08/2005 16:06 hs         
Blz Leandro??
 
Os números q coloco entre apostrofo aqui n funcionam. Tenho de colocar sem apostrofo para q não gere nenhum erro e grave corretamente no banco de dados.
Valores monetários tenho de substituir a (,) pelo (.) usando replace.
 
Mas mesmo assim, fica ai a dica e a novidade pra mim Emoções Vivendo e aprendendo hehehe
Flw!!
 

Emoções Knight Emoções

http://host.csti.eti.br

CSTI WebHosting
Hospedando Idéias Emoções

     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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