Buenas!
Copiei o código que contou com a ajuda do Alexandre Neves, aqui no fórum, tentei adaptá-lo mas não consegui.
O problema é o seguinte:
1) Tenho uma Tabela (TabNomeArquivo) onde há um campo NomeArquivo e outros mais - Campo1, Campo2, Campo3 ... Campo6;
2) O NomeArquivo tem informações que vão alimentar os Campos1 ... Campo6, separadas por underline ("_");
3) Preciso ler todos os campos NomeArquivo, extrair as informações e colocar nos respectivos campos.
A extração das informações está funcionando, há a separação das informações e elas vão para os campos corretamente. Mas os campos são alimentados, para todos os NomeArquivo, com as informações de um único NomeArquivo. Ou seja, lê todos os registros mas usa as informações de um só.
Certamente, há um erro de loop, mas não enxergo.
Eis o código:
Function SeparaCampos()
Dim VNomeArquivo As String
Dim VPosicaoUnderline As Variant
Dim i As Integer
'-----------------------------------------------------------------------
Dim db As DAO.DataBase
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("TabNomeArquivo")
Do While Not rs.EOF
VNomeArquivo = rs("NomeArquivo")
VPosicaoUnderline = Split(VNomeArquivo , "_")
For i = 0 To UBound(VPosicaoUnderline)
Select Case i
Case 0
CurrentDb.Execute "TabNomeArquivo SET Campo1 = '" & VPosicaoUnderline(i) & "';"
Case 1
CurrentDb.Execute "TabNomeArquivo SET Campo2 = '" & VPosicaoUnderline(i) & "';"
Case 2
CurrentDb.Execute "TabNomeArquivo SET Campo3 = '" & VPosicaoUnderline(i) & "';"
Case 3
CurrentDb.Execute "TabNomeArquivo SET Campo4 = '" & VPosicaoUnderline(i) & "';"
Case 4
CurrentDb.Execute "TabNomeArquivo SET Campo5 = '" & VPosicaoUnderline(i) & "';"
Case 5
CurrentDb.Execute "TabNomeArquivo SET Campo6 = '" & VPosicaoUnderline(i) & "';"
Case Else
End Select
i = i + 1
Next
rs.MoveNext
Loop
End Function
Copiei o código que contou com a ajuda do Alexandre Neves, aqui no fórum, tentei adaptá-lo mas não consegui.
O problema é o seguinte:
1) Tenho uma Tabela (TabNomeArquivo) onde há um campo NomeArquivo e outros mais - Campo1, Campo2, Campo3 ... Campo6;
2) O NomeArquivo tem informações que vão alimentar os Campos1 ... Campo6, separadas por underline ("_");
3) Preciso ler todos os campos NomeArquivo, extrair as informações e colocar nos respectivos campos.
A extração das informações está funcionando, há a separação das informações e elas vão para os campos corretamente. Mas os campos são alimentados, para todos os NomeArquivo, com as informações de um único NomeArquivo. Ou seja, lê todos os registros mas usa as informações de um só.
Certamente, há um erro de loop, mas não enxergo.
Eis o código:
Function SeparaCampos()
Dim VNomeArquivo As String
Dim VPosicaoUnderline As Variant
Dim i As Integer
'-----------------------------------------------------------------------
Dim db As DAO.DataBase
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("TabNomeArquivo")
Do While Not rs.EOF
VNomeArquivo = rs("NomeArquivo")
VPosicaoUnderline = Split(VNomeArquivo , "_")
For i = 0 To UBound(VPosicaoUnderline)
Select Case i
Case 0
CurrentDb.Execute "TabNomeArquivo SET Campo1 = '" & VPosicaoUnderline(i) & "';"
Case 1
CurrentDb.Execute "TabNomeArquivo SET Campo2 = '" & VPosicaoUnderline(i) & "';"
Case 2
CurrentDb.Execute "TabNomeArquivo SET Campo3 = '" & VPosicaoUnderline(i) & "';"
Case 3
CurrentDb.Execute "TabNomeArquivo SET Campo4 = '" & VPosicaoUnderline(i) & "';"
Case 4
CurrentDb.Execute "TabNomeArquivo SET Campo5 = '" & VPosicaoUnderline(i) & "';"
Case 5
CurrentDb.Execute "TabNomeArquivo SET Campo6 = '" & VPosicaoUnderline(i) & "';"
Case Else
End Select
i = i + 1
Next
rs.MoveNext
Loop
End Function