IMPORTAR SEMPRE 2 CAMPOS DE UM TXT
PESSOAL ,
TENHU O CAMPO DATA E O CODIGO
PRECISO IMPORTAR O TXT PARA MDB
VERIFICANDO PELO CODIGO E SOMENTE ATUALIZANDO A DATA
VI QUE TENS MUITOS EXEMPLOS MAIS NO CASO PRECISO DE SUBSITUIE NA TABELA
E NAO QUE GRAVE NOVAMENTE
VERIFICAR E GRAVAR
Abs
Marcelo Fazan
TENHU O CAMPO DATA E O CODIGO
PRECISO IMPORTAR O TXT PARA MDB
VERIFICANDO PELO CODIGO E SOMENTE ATUALIZANDO A DATA
VI QUE TENS MUITOS EXEMPLOS MAIS NO CASO PRECISO DE SUBSITUIE NA TABELA
E NAO QUE GRAVE NOVAMENTE
VERIFICAR E GRAVAR
Abs
Marcelo Fazan
Amigo, o txt esta tabulado como esta separado,
Você pode fazer DO WHILE este TXT é renovodo ou verificou deleta.
Existem várias formas, coloque o LAYOUT do TXT e se pode apagar o txt após uso.
Você pode fazer DO WHILE este TXT é renovodo ou verificou deleta.
Existem várias formas, coloque o LAYOUT do TXT e se pode apagar o txt após uso.
00001 20100630
00002 20100615
00003 20100622
00004 20100618
00005 20100621
00006 20100622
00007 20100610
00008 20100611
00009 20100609
00010 20100611
00011 20100610
00012 20100614
00013 20100616
00014 20100611
preciso procurar no mdb e sobrepor pros codigos da primeira fileira
subsituir a data que é o segundo campo
campo
codigo e data
caso presicar trocar o formato da data , eu altero se for facilitar algo
00002 20100615
00003 20100622
00004 20100618
00005 20100621
00006 20100622
00007 20100610
00008 20100611
00009 20100609
00010 20100611
00011 20100610
00012 20100614
00013 20100616
00014 20100611
preciso procurar no mdb e sobrepor pros codigos da primeira fileira
subsituir a data que é o segundo campo
campo
codigo e data
caso presicar trocar o formato da data , eu altero se for facilitar algo
TXT para MDB
Use a função MID
Na primeira mensagem mostra o código e no segundo mostra a data.
Use a função MID
Na primeira mensagem mostra o código e no segundo mostra a data.
MsgBox Mid(Text1, 1, 5)
MsgBox Mid(Text1, 6, 9)
Entao Conhecei aqui
e tava querendo abrir o banco , esta me dando o erro 3343
unrecognized database format ??
tentei fazer assim num cmd
Private Sub Ler()
Final = [Ô][Ô]
Dim dbBanco As Database
Dim rsLinhas As Recordset
Set dbBanco = OpenDatabase(App.Path & [Ô]\busca1.mdb[Ô])
Dim data As String
Dim codigo As String
Dim Sql As String
Sql = [Ô]select* from buscar[Ô]
Set rsLinhas = dbBanco.OpenRecordset(Sql)
Arquivo = App.Path & [Ô]\mensalidade.mens_mes.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
While Not EOF(ArqLivre)
rsLinhas.AddNew
rsLinhas!data = Registro
rsLinhas!codigo = Registro
rsLinhas.Update
Line Input #ArqLivre, Registro
Wend
Close #ArqLivre
rsLinhas.Clone
dbBanco.Close
End Sub
e tava querendo abrir o banco , esta me dando o erro 3343
unrecognized database format ??
tentei fazer assim num cmd
Private Sub Ler()
Final = [Ô][Ô]
Dim dbBanco As Database
Dim rsLinhas As Recordset
Set dbBanco = OpenDatabase(App.Path & [Ô]\busca1.mdb[Ô])
Dim data As String
Dim codigo As String
Dim Sql As String
Sql = [Ô]select* from buscar[Ô]
Set rsLinhas = dbBanco.OpenRecordset(Sql)
Arquivo = App.Path & [Ô]\mensalidade.mens_mes.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
While Not EOF(ArqLivre)
rsLinhas.AddNew
rsLinhas!data = Registro
rsLinhas!codigo = Registro
rsLinhas.Update
Line Input #ArqLivre, Registro
Wend
Close #ArqLivre
rsLinhas.Clone
dbBanco.Close
End Sub
Ou então use a função split...
iARQ = FreeFile
Open Trim(seuarquivoTxt) For Input As iARQ
Line Input #iARQ, slinha
xVetor = Split(sResult, [Ô] [Ô])
A função split, nesse caso, vai criar um vetor em xVetor com dois Ãndices, em xVetor(0) vc terá o código e em xVetor(1) vc terá a data no formato DTOS (Date to String, ou seja AAAAMMDD).
Para quem nunca foi programador DOS, é estranho esse modelo de data, porém é o único onde se pode colocar as datas na forma de string em ordem corretamente.
Então vc faria assim:
iARQ = FreeFile
Open Trim(seuarquivoTxt) For Input As iARQ
Do While Not EOF(iARQ)
Line Input #iARQ, slinha
If UBound(xVetor) = 1 Then
xVetor = Split(sResult, [Ô] [Ô])
...faz a busca do código e converte o DTOS em data usando cdate(mid(xvetor(1),7,2) &[Ô]/[Ô] & mid(xvetor(1),5,2) & [Ô]/[Ô] & mid(xvetor(1),1,4))
...atualiza o campo data
endif
loop
Close #iARQ
Espero ter ajudado!
iARQ = FreeFile
Open Trim(seuarquivoTxt) For Input As iARQ
Line Input #iARQ, slinha
xVetor = Split(sResult, [Ô] [Ô])
A função split, nesse caso, vai criar um vetor em xVetor com dois Ãndices, em xVetor(0) vc terá o código e em xVetor(1) vc terá a data no formato DTOS (Date to String, ou seja AAAAMMDD).
Para quem nunca foi programador DOS, é estranho esse modelo de data, porém é o único onde se pode colocar as datas na forma de string em ordem corretamente.
Então vc faria assim:
iARQ = FreeFile
Open Trim(seuarquivoTxt) For Input As iARQ
Do While Not EOF(iARQ)
Line Input #iARQ, slinha
If UBound(xVetor) = 1 Then
xVetor = Split(sResult, [Ô] [Ô])
...faz a busca do código e converte o DTOS em data usando cdate(mid(xvetor(1),7,2) &[Ô]/[Ô] & mid(xvetor(1),5,2) & [Ô]/[Ô] & mid(xvetor(1),1,4))
...atualiza o campo data
endif
loop
Close #iARQ
Espero ter ajudado!
00001 300610
00002 150610
00003 220610
00004 180610
00005 210610
00006 220610
00007 100610
se for pra ficar melhor amigo criei desse formato
mais tipo e esse parte
...faz a busca do código é um código nao autonumerador é uma sequencia de caracter de 5
...atualiza o campo data naquele formato acima
como eu faria essa parte do vetor com pra gravacao
na verdade so quero atualizar a data
e consultar pelo caracter de 5 denominado codigo
Abs
Marcelo Fazan
00002 150610
00003 220610
00004 180610
00005 210610
00006 220610
00007 100610
se for pra ficar melhor amigo criei desse formato
mais tipo e esse parte
...faz a busca do código é um código nao autonumerador é uma sequencia de caracter de 5
...atualiza o campo data naquele formato acima
como eu faria essa parte do vetor com pra gravacao
na verdade so quero atualizar a data
e consultar pelo caracter de 5 denominado codigo
Abs
Marcelo Fazan
Fiz uma pequena alteração na iteração.
Veja se resolve:
Veja se resolve:
Private Sub Ler()
Final = [Ô][Ô]
Dim dbBanco As Database
Set dbBanco = OpenDatabase(App.Path & [Ô]\busca1.mdb[Ô])
Dim data As String
Dim codigo As String
Arquivo = App.Path & [Ô]\mensalidade.mens_mes.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
While Not EOF(ArqLivre)
con.Execute [Ô]UPDATE buscar SET data=[ô][Ô] & Trim(Mid(s, InStr(1, Registro, [Ô] [Ô]), Len(Registro))) & [Ô][ô] WHERE codigo=[Ô] & Trim(Mid(s, 1, InStr(1, s, [Ô] [Ô])))
Line Input #ArqLivre, Registro
Wend
Close #ArqLivre
dbBanco.Close
End Sub
Blz Tecla
conn.Execute [Ô]UPDATE buscar SET data=[ô][Ô] & Trim(Mid(s - quando chega nesse [Ô]s[Ô] Trim(Mid(s
da uma erro Variable not Defined
conn.Execute [Ô]UPDATE buscar SET data=[ô][Ô] & Trim(Mid(s - quando chega nesse [Ô]s[Ô] Trim(Mid(s
da uma erro Variable not Defined
OK, substitua conn por dbBanco e tente novamente.
Tecla troquei a conexao e aponta o erro pro s
nao teria que declarar antes esse s
esse s serve para alguma coisa como delimitador se for o caso, posso colocar o txt assim
00001;20062010 se for pra facilitar
nao teria que declarar antes esse s
esse s serve para alguma coisa como delimitador se for o caso, posso colocar o txt assim
00001;20062010 se for pra facilitar
Tópico encerrado , respostas não são mais permitidas