Pessoal eu tenho o seguinte código abaixo o mesmo serve para criar sequencia para cada contrato que eu tenho, tipo assim campo com numero de contrato e a sequencia
cada vez que eu fizer uma alteração em um contrato ele tem que iniciar a contagem em 1 ex: contrato 5001/2016 ai eu tenho que lançar uma alteração ele vai para a sequencia 1 se eu lançar mais um ele vai pra sequencia 02, mas essa numeração tem que começar do 0 sempre que eu mudar o numero do contrato tipo se eu for fazer alteração no contrato 5002/2016 ele tem que iniciar do 1
EU fiz o código abaixo mas ja revi ele varias vezes e não sei o que esta errado
nela inclui a seguinte linha :
Set dbs = CurrentDb
strsql = "SELECT DISTINCTROW TOP 1 Max([SequenciaAdi]) AS MaiorValorSEQ " & _
quando vou executar ele fala que método ou membro de dados não foi encontrato. rst.MaiorValorSEQ
onde esta o erro?
Private Sub Numcontratoaditivo_AfterUpdate()
On Error GoTo Err_Numcontratoaditivo_AfterUpdate
Numcontratoaditivo = UCase(Numcontratoaditivo)
Dim Numero_do_contrato As String
Dim mensagem As String
Numero_do_contrato = "Numero_do_contrato = '" & Me.Numcontratoaditivo & "'"
If IsNull(DLookup("Numero_do_contrato", "[Cadastro Contrato]", "Numero_do_contrato")) Then
mensagem = "O Contrato especificado não foi localizado." & _
"@Verifique se foi digitado corretamente." & _
"@Selecione na lista. Se não o encontrar, deverá ser cadastrado previamente."
MsgBox mensagem, , "Aviso do Sistema de Contratações"
Numero_do_contrato = False
Me.Numcontratoaditivo.SetFocus
Exit Sub
End If
Dim dbs As Database, rst As Recordset
Dim strsql As String, intSEQ As Byte
Set dbs = CurrentDb
strsql = "SELECT DISTINCTROW TOP 1 Max([SequenciaAdi]) AS MaiorValorSEQ " & _
"FROM [CADASTRO DE ADITIVO] " & _
"WHERE [CADASTRO DE ADITIVO].Numcontratoaditivo = '" & Me.[Numcontratoaditivo] & "'"
Set rst = dbs.OpenRecordset(strsql, dbOpenSnapshot)
If IsNull(Me.MaiorValorSEQ) Then
intSEQ = 0
Me.SequenciaAdi = 1
Else
intSEQ = rst.MaiorValorSEQ
Me.SequenciaAdi = rst.MaiorValorSEQ + 1
End If
Me.SequenciaAdi = Me.DataMesAnoBasePrecoCont
If Me.valorcontaratoaditivo = 0 Or IsNull(valorcontaratoaditivo) Then
If IsNull(VALORATUALCONT) Or VALORATUALCONT = 0 Then
valorcontaratoaditivo = ValorCont
Exit Sub
End If
End If
valorcontaratoaditivo = VALORATUALCONT
' strSQL = "SELECT DISTINCTROW [valorcontaratoaditivo] AS ValorAtual " & _
' "FROM [CADASTRO DE ADITIVO] " & _
' "WHERE ([CADASTRO DE ADITIVO].Numcontratoaditivo = '" & Me.[Numcontratoaditivo] & "') AND ([CADASTRO DE ADITIVO].SequenciaAdi=" & CStr(intSEQ) & ")"
'
' Set rst = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
' If rst.RecordCount = 0 Then
' Me.valorcontaratoaditivo = ValorCont
' Else
' Me.valorcontaratoaditivo = rst.vALORATUAL
' End If
Exit_Numcontratoaditivo_AfterUpdate:
Exit Sub
Err_Numcontratoaditivo_AfterUpdate:
MsgBox Err.Description
Resume Exit_Numcontratoaditivo_AfterUpdate
End Sub
cada vez que eu fizer uma alteração em um contrato ele tem que iniciar a contagem em 1 ex: contrato 5001/2016 ai eu tenho que lançar uma alteração ele vai para a sequencia 1 se eu lançar mais um ele vai pra sequencia 02, mas essa numeração tem que começar do 0 sempre que eu mudar o numero do contrato tipo se eu for fazer alteração no contrato 5002/2016 ele tem que iniciar do 1
EU fiz o código abaixo mas ja revi ele varias vezes e não sei o que esta errado
nela inclui a seguinte linha :
Set dbs = CurrentDb
strsql = "SELECT DISTINCTROW TOP 1 Max([SequenciaAdi]) AS MaiorValorSEQ " & _
quando vou executar ele fala que método ou membro de dados não foi encontrato. rst.MaiorValorSEQ
onde esta o erro?
Private Sub Numcontratoaditivo_AfterUpdate()
On Error GoTo Err_Numcontratoaditivo_AfterUpdate
Numcontratoaditivo = UCase(Numcontratoaditivo)
Dim Numero_do_contrato As String
Dim mensagem As String
Numero_do_contrato = "Numero_do_contrato = '" & Me.Numcontratoaditivo & "'"
If IsNull(DLookup("Numero_do_contrato", "[Cadastro Contrato]", "Numero_do_contrato")) Then
mensagem = "O Contrato especificado não foi localizado." & _
"@Verifique se foi digitado corretamente." & _
"@Selecione na lista. Se não o encontrar, deverá ser cadastrado previamente."
MsgBox mensagem, , "Aviso do Sistema de Contratações"
Numero_do_contrato = False
Me.Numcontratoaditivo.SetFocus
Exit Sub
End If
Dim dbs As Database, rst As Recordset
Dim strsql As String, intSEQ As Byte
Set dbs = CurrentDb
strsql = "SELECT DISTINCTROW TOP 1 Max([SequenciaAdi]) AS MaiorValorSEQ " & _
"FROM [CADASTRO DE ADITIVO] " & _
"WHERE [CADASTRO DE ADITIVO].Numcontratoaditivo = '" & Me.[Numcontratoaditivo] & "'"
Set rst = dbs.OpenRecordset(strsql, dbOpenSnapshot)
If IsNull(Me.MaiorValorSEQ) Then
intSEQ = 0
Me.SequenciaAdi = 1
Else
intSEQ = rst.MaiorValorSEQ
Me.SequenciaAdi = rst.MaiorValorSEQ + 1
End If
Me.SequenciaAdi = Me.DataMesAnoBasePrecoCont
If Me.valorcontaratoaditivo = 0 Or IsNull(valorcontaratoaditivo) Then
If IsNull(VALORATUALCONT) Or VALORATUALCONT = 0 Then
valorcontaratoaditivo = ValorCont
Exit Sub
End If
End If
valorcontaratoaditivo = VALORATUALCONT
' strSQL = "SELECT DISTINCTROW [valorcontaratoaditivo] AS ValorAtual " & _
' "FROM [CADASTRO DE ADITIVO] " & _
' "WHERE ([CADASTRO DE ADITIVO].Numcontratoaditivo = '" & Me.[Numcontratoaditivo] & "') AND ([CADASTRO DE ADITIVO].SequenciaAdi=" & CStr(intSEQ) & ")"
'
' Set rst = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
' If rst.RecordCount = 0 Then
' Me.valorcontaratoaditivo = ValorCont
' Else
' Me.valorcontaratoaditivo = rst.vALORATUAL
' End If
Exit_Numcontratoaditivo_AfterUpdate:
Exit Sub
Err_Numcontratoaditivo_AfterUpdate:
MsgBox Err.Description
Resume Exit_Numcontratoaditivo_AfterUpdate
End Sub