Senhores,
Tenho o campo Ordem na tabela TBL_fluxo e estou utilizando o código abaixo para reclassificar a numeração no campo ordem tanto ao inserir novo registro que tenha uma ordem anterior, como nos registros anteriores, caso seja necessário reclassificá-los:
Exemplo:
Situação atual da ordenação
Ordem Descrição
1 débito tarifas
2 receita de vendas
3 Compra de tonner
4 débito extrato
Nova situação de ordenação troca o número de ordenação da ordem 4 - débito extrato para 1 - débito de extrato com isso a nova ordenação deveria ser:
1 débito extrato
2 débito tarifas
3 receita de vendas
4 Compra de tonner
Veja abaixo o código que estou utilizando, porém não está classificando corretamente:
Private Sub ORDEM_AfterUpdate()
Dim rs As Recordset, NovaOrdem As Integer, NUM As String
DoCmd.RunCommand acCmdSaveRecord
If IsNull(Me.ORDEM) Then
Exit Sub
End If
Set rs = CurrentDb.OpenRecordset("SELECT [tbl_fluxo].Num, [tbl_fluxo].Ordem " & _
"FROM [tbl_fluxo] " & _
"ORDER BY [tbl_fluxo].ordem;")
With rs
.MoveFirst
.FindFirst "[ordem]= " & Me.ORDEM
If .NoMatch Then
.FindFirst "[num]= '" & Me.NUM & "'"
.Edit
!ORDEM = Me.ORDEM
.Update
GoTo Final
Else
NovaOrdem = Me.ORDEM
NUM = Me.NUM
Do While Not .EOF
.Edit
!ORDEM = !ORDEM + 1
.Update
.MoveNext
Loop
End If
End With
DoCmd.RunSQL "UPDATE [tbl_fluxo] SET ordem =" & NovaOrdem & " WHERE num = " & Me.NUM & ";"
Me.Refresh
GoTo Final
Final:
rs.Close
Set rs = Nothing
On Error Resume Next
End Sub
Tenho o campo Ordem na tabela TBL_fluxo e estou utilizando o código abaixo para reclassificar a numeração no campo ordem tanto ao inserir novo registro que tenha uma ordem anterior, como nos registros anteriores, caso seja necessário reclassificá-los:
Exemplo:
Situação atual da ordenação
Ordem Descrição
1 débito tarifas
2 receita de vendas
3 Compra de tonner
4 débito extrato
Nova situação de ordenação troca o número de ordenação da ordem 4 - débito extrato para 1 - débito de extrato com isso a nova ordenação deveria ser:
1 débito extrato
2 débito tarifas
3 receita de vendas
4 Compra de tonner
Veja abaixo o código que estou utilizando, porém não está classificando corretamente:
Private Sub ORDEM_AfterUpdate()
Dim rs As Recordset, NovaOrdem As Integer, NUM As String
DoCmd.RunCommand acCmdSaveRecord
If IsNull(Me.ORDEM) Then
Exit Sub
End If
Set rs = CurrentDb.OpenRecordset("SELECT [tbl_fluxo].Num, [tbl_fluxo].Ordem " & _
"FROM [tbl_fluxo] " & _
"ORDER BY [tbl_fluxo].ordem;")
With rs
.MoveFirst
.FindFirst "[ordem]= " & Me.ORDEM
If .NoMatch Then
.FindFirst "[num]= '" & Me.NUM & "'"
.Edit
!ORDEM = Me.ORDEM
.Update
GoTo Final
Else
NovaOrdem = Me.ORDEM
NUM = Me.NUM
Do While Not .EOF
.Edit
!ORDEM = !ORDEM + 1
.Update
.MoveNext
Loop
End If
End With
DoCmd.RunSQL "UPDATE [tbl_fluxo] SET ordem =" & NovaOrdem & " WHERE num = " & Me.NUM & ";"
Me.Refresh
GoTo Final
Final:
rs.Close
Set rs = Nothing
On Error Resume Next
End Sub