IMPORTAR TXT PARA ACCESS

MARCELOFAZAN 02/06/2010 16:28:53
#343731
Amigos, consigui tirar os erros porem simples , esta sem erros
porem nao importa nada
no caso está assim

Final = [Ô][Ô]
Dim dbBanco As Database

Set dbBanco = OpenDatabase(App.Path & [Ô]\busca1.mdb[Ô])
Dim data As String
Dim codigo As String

Arquivo = App.Path & [Ô]\mensalidade.txt[Ô]
On Error Resume Next

ArqLivre = FreeFile
On Error Resume Next
Open Arquivo For Input As #ArqLivre
If Err.Number = 53 Then
On Error GoTo 0
MsgBox [Ô]ARQUIVO NÃO ENCONTRADO[Ô], , [Ô]AVISO[Ô]
Final = [Ô]fim[Ô]
Exit Sub
ElseIf Err.Number <> 0 Then
MsgBox [Ô]Erro: [Ô] & Err.Number
Exit Sub
End If

Line Input #ArqLivre, Registro
MsgBox [Ô]PROCESSANDO[Ô], , [Ô]AVISO[Ô]

While Not EOF(ArqLivre)
dbBanco.Execute [Ô]UPDATE buscar SET codigo=[ô][Ô] & Trim(Mid(Registro, InStr(1, Registro, [Ô] [Ô]), Len(Registro))) & [Ô][ô] WHERE codigo=[Ô] & Trim(Mid(Registro, 1, InStr(1, Registro, [Ô] [Ô])))
Line Input #ArqLivre, Registro
Wend

Close #ArqLivre
dbBanco.Close


O que quero é buscar pelo codigo e atualizar as datas com update

o formato esta esse obrigado

00001;20100630
00002;20100615
00003;20100622
00004;20100618
00005;20100621
00006;20100622
00007;20100610
MARCELO.TREZE 02/06/2010 18:17:06
#343745
Resposta escolhida
tente isto


Final = [Ô][Ô]
Dim dbBanco As Database
Dim Coluna() As String

Set dbBanco = OpenDatabase(App.Path & [Ô]\busca1.mdb[Ô])
Dim data As String
Dim codigo As String

Arquivo = App.Path & [Ô]\mensalidade.txt[Ô]
On Error Resume Next

ArqLivre = FreeFile
On Error Resume Next
Open Arquivo For Input As #ArqLivre

If Err.Number = 53 Then
On Error GoTo 0
MsgBox [Ô]ARQUIVO NÃO ENCONTRADO[Ô], , [Ô]AVISO[Ô]
Final = [Ô]fim[Ô]
Exit Sub
ElseIf Err.Number <> 0 Then
MsgBox [Ô]Erro: [Ô] & Err.Number
Exit Sub
End If

Do While Not EOF(ArqLivre)
Line Input #ArqLivre, Registro
Coluna = Split(Registro, [Ô];[Ô])
dbBanco.Execute [Ô]UPDATE buscar SET data=[ô][Ô] & Coluna(1) & [Ô][ô] WHERE codigo=[Ô] & Coluna(0)
Loop

Close #ArqLivre
dbBanco.Close


tenta isto
MARCELOFAZAN 02/06/2010 19:26:48
#343750
Obrigado Treze
testei aqui e nao acontece nadinha na tabela acess porem nao da nenhum erro
andei vendo uma outra forma aqui ......

vo postar aqui ... ja testei como no modelo
e ja adaptei
so que la o erro é mais facil


o layout do VB que testei montei igual ,

[Ô]00001[Ô],[Ô]30/06/10[Ô],[Ô]
[Ô]00002[Ô],[Ô]15/06/10[Ô],[Ô]
[Ô]00003[Ô],[Ô]22/06/10[Ô],[Ô]
[Ô]00004[Ô],[Ô]18/06/10[Ô],[Ô]
[Ô]00005[Ô],[Ô]21/06/10[Ô],[Ô]
[Ô]00006[Ô],[Ô]22/06/10[Ô],[Ô]
[Ô]00007[Ô],[Ô]10/06/10[Ô],[Ô]
[Ô]00008[Ô],[Ô]11/06/10[Ô],[Ô]
[Ô]00009[Ô],[Ô]09/06/10[Ô],[Ô]

Aqui a MENSAGEM de Erro é Driver ODBC Tipos de dados Incompativeis e aponsta o erro pra cn.Execute Sql


Dim intCod, strData, linha, linha2, linha3 As String
Dim p_virgula, u_aspas, s_virgula As Integer

Do Until EOF(1)
linha = strFileName

Line Input #1, linha
p_virgula = InStr(linha, [Ô],[Ô])
linha2 = Mid(linha, p_virgula + 1)
s_virgula = InStr(linha2, [Ô],[Ô])

intCod = LTrim(Mid(linha, 2, p_virgula - 3))
strData = LTrim(Mid(linha2, 2, s_virgula - 3))

Sql = [Ô]UPDATE buscar SET[Ô]
Sql = Sql & [Ô] codigo =[ô][Ô] & intCod & [Ô][ô],[Ô]
Sql = Sql & [Ô] data =[ô][Ô] & strData & [Ô][ô][Ô]
Sql = Sql & [Ô] WHERE codigo = [Ô] & intCod

cn.Execute Sql
Loop
Close #1
cn.Close
MARCELOFAZAN 02/06/2010 19:54:36
#343752
Marcelo Consegui Obrigado ao Tecla tb
consegui !!!!!!!

O Problema esta que no fim da instrucao quase é integer termina o where & variavel ... ai como é string seria teria q ter [Ô][ô],[Ô] algo assim, obrigado ate +



Dim cn As ADODB.Connection

Private Sub Form_load()
Dim banco As String

Set cn = New ADODB.Connection

strArquivo = [Ô]busca.mdb[Ô]
strLocal = App.Path
Set cn = CreateObject([Ô]ADODB.Connection[Ô])
banco = [Ô]Driver={Microsoft Access Driver (*.mdb)};[Ô] & _
[Ô]Dbq=[Ô] & strArquivo & [Ô];[Ô] & _
[Ô]DefaultDir=[Ô] & strLocal & [Ô];[Ô] & _
[Ô]Uid=Admin;Pwd=;[Ô]

cn.Open banco
End Sub

Private Sub cmdTransferir_Click()
Dim strFileName As String

If Right(txtArquivo.Text, 4) <> [Ô].txt[Ô] Then
MsgBox [Ô]Nome de arquivo inválido.[Ô] & vbLf _
& [Ô]Favor digitar o nome do aquivo com extensão .txt[Ô], vbCritical, [Ô]Sistema de Trenferência[Ô]
Exit Sub
End If

strFileName = App.Path & [Ô]\[Ô] & txtArquivo.Text

Open strFileName For Input As #1
Dim intCod, strData, linha, linha2, linha3 As String
Dim p_virgula, u_aspas, s_virgula As Integer

Do Until EOF(1)
linha = strFileName

Line Input #1, linha
p_virgula = InStr(linha, [Ô],[Ô])
linha2 = Mid(linha, p_virgula + 1)
s_virgula = InStr(linha2, [Ô],[Ô])

intCod = LTrim(Mid(linha, 2, p_virgula - 3))
strData = LTrim(Mid(linha2, 2, s_virgula - 3))

Sql = [Ô]UPDATE buscar SET data = [ô][Ô] & strData & [Ô][ô][Ô]
Sql = Sql & [Ô] Where codigo = [ô][Ô] & intCod & [Ô][ô][Ô]
cn.Execute Sql


Loop
Close #1
cn.Close

MsgBox [Ô]Transferência concluida com sucesso[Ô], vbExclamation
txtArquivo.Text = [Ô][Ô]
End Sub
MARCELO.TREZE 02/06/2010 20:01:07
#343753
desculpe tente isto

tente isto

mantenha a formatação do textop como vc mesmo indicou

0001;20100602

Final = [Ô][Ô]
Dim dbBanco As Database
Dim Coluna() As String
Dim data As String
Dim codigo As String


Set dbBanco = OpenDatabase(App.Path & [Ô]\busca1.mdb[Ô])
Arquivo = App.Path & [Ô]\mensalidade.txt[Ô]
ArqLivre = FreeFile
Do While Not EOF(ArqLivre)
Line Input #ArqLivre, Registro
Coluna = Split(Registro, [Ô];[Ô])
dbBanco.Execute [Ô]UPDATE buscar SET data=[ô][Ô] & Coluna(1) & [Ô][ô] WHERE codigo=[Ô] & Coluna(0)
Loop
Close #ArqLivre
dbBanco.Close


apenas altere o nome do campo de nome data para o nome do seu campo correto

Tópico encerrado , respostas não são mais permitidas