VB - ROTINA PARA ATUALIZAR TABELA
Complementando, pois realmente não ficou claro:
Importa um arquivo TXT para um MDB com mais de 18 mil registros. Após isso, necessito atualizar alguns campos do PAI que estão vieram preenchidos no FILHO pela importação.
Nesse exemplo, 4 campos no PAI a serem atualizados:
a) Campo Ident (IDENTIFICADOR do Responsável) que está em UMA LINHA do Grid FILHO (somente um é o respsonsável
b) Campo Receitas que é a soma de determinada coluna do Grid FILHO;
c) Campo despesas que é a soma de determinada coluna do Grid FILHO;
e) Campo TotalPessoas que é a contagem das pessoas do Grid FILHO
Com a rotina abaixo esperava atualizar cada registro do PAI um a um e não consegui nem mesmo para o primeiro campo, pois ao rodar a rotina, apenas atuliza o primeiro Ident do PAI e os demais permanecem em branco.
Rotina: (fragmento)
BeginTrans
Set PAI = vgDb.OpenRecordSet([Ô]FILHO[Ô], dbOpenTable)
If PAI.RecordCount > 0 Then
PAI.MoveFirst
Set FILHO = vgDb.OpenRecordSet([Ô]FILHO[Ô], dbOpenTable)
If FILHO.RecordCount > 0 Then
FILHO.MoveFirst
Do While Not FILHO.EOF
With PAI
.Edit
If PAI!Codigo = FILHO!Codigo Then
PAI!Ident = FILHO!Ident
PAI!Nome = FILHO!Nome
End If
.Update
.BookMark = .LastModified
End With
End If
FILHO.MoveNext
Loop
End If
End If
CommitTrans
End Sub
Onde está o meu erro e como corrigir?
Namon
Citação::
Em meu projeto (Formulário em GRID) inclui uma rotina para atualizar um campo para atualizar campos do PAI a partir de campo do FILHO, segundo condições.
Rotina: (fragmento)
BeginTrans
Set PAI = vgDb.OpenRecordSet([Ô]FILHO[Ô], dbOpenTable)
If PAI.RecordCount > 0 Then
PAI.MoveFirst
Set FILHO = vgDb.OpenRecordSet([Ô]FILHO[Ô], dbOpenTable)
If FILHO.RecordCount > 0 Then
FILHO.MoveFirst
Do While Not FILHO.EOF
With PAI
.Edit
If PAI!Codigo = FILHO!Codigo Then
PAI!Ident = FILHO!Ident
PAI!Nome = FILHO!Nome
End If
.Update
.BookMark = .LastModified
End With
End If
FILHO.MoveNext
Loop
End If
End If
CommitTrans
End Sub
Onde está o meu erro e como corrigir?
Namon
Na realidade não me retorna mensagens de erro. Apenas atualizar o primeiro registro PAI e os registros subsequentes ficam sem atualização (em branco)
Citação::
Em meu projeto (Formulário em GRID) inclui uma rotina para atualizar um campo para atualizar campos do PAI a partir de campo do FILHO, segundo condições
Complementando, pois realmente não ficou claro:
Importa um arquivo TXT para um MDB com mais de 18 mil registros. Após isso, necessito atualizar alguns campos do PAI que estão vieram preenchidos no FILHO pela importação.
Nesse exemplo, 4 campos no PAI a serem atualizados:
a) Campo Ident (IDENTIFICADOR do Responsável) que está em UMA LINHA do Grid FILHO (somente um é o respsonsável
b) Campo Receitas que é a soma de determinada coluna do Grid FILHO;
c) Campo despesas que é a soma de determinada coluna do Grid FILHO;
e) Campo TotalPessoas que é a contagem das pessoas do Grid FILHO
Com a rotina abaixo esperava atualizar cada registro do PAI um a um e não consegui nem mesmo para o primeiro campo, pois ao rodar a rotina, apenas atuliza o primeiro Ident do PAI e os demais permanecem em branco.
Rotina: (fragmento)
BeginTrans
Set PAI = vgDb.OpenRecordSet([Ô]FILHO[Ô], dbOpenTable)
If PAI.RecordCount > 0 Then
PAI.MoveFirst
Set FILHO = vgDb.OpenRecordSet([Ô]FILHO[Ô], dbOpenTable)
If FILHO.RecordCount > 0 Then
FILHO.MoveFirst
Do While Not FILHO.EOF
With PAI
.Edit
If PAI!Codigo = FILHO!Codigo Then
PAI!Ident = FILHO!Ident
PAI!Nome = FILHO!Nome
End If
.Update
.BookMark = .LastModified
End With
End If
FILHO.MoveNext
Loop
End If
End If
CommitTrans
End Sub
Onde está o meu erro e como corrigir?
Namon