Oi pessoal!
É o seguinte... eu tenho um formulário onde insiro dados, eu criei um botão salvar para salvá-los. Só que eu coloquei alguns códigos para que alguns campos sejam obrigatórios antes de salvar (Não fiz isso como "campo obrigatório" porque depois que se clica na opção não dá pra sair até digitar alguma coisa).
Na hora de salvar, os códigos funcionam perfeitamente. Só que eu tenho uma caixa de listagem que contém os registros já salvos e que eu posso selecionar e o formulário me retorna os valores correspondentes.
Já consegui implementar o código para que se eu alterar alguma coisa ele pergunte se eu desejo salvar antes de atualizar. Só que eu queria que o formulário só atualizasse depois que aqueles campos obrigatórios fossem preenchidos. Só que ele atualiza de qualquer forma.
Desde já agradeço
Os códigos:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strMsg As String
strMsg = "Foram efetuadas alterações"
strMsg = strMsg & "... Deseja salvar as alterações?"
If MsgBox(strMsg, vbQuestion + vbYesNo, "Salvar?") = vbYes Then
'do nothing
Call Salvar_Click
'DoCmd.GoToRecord , , acPrevious
Else
DoCmd.RunCommand acCmdUndo
End If
End Sub
Private Sub Form_Current()
Pesquisa.Requery
Me!Pesquisa = Me!ID
Private Sub Pesquisa_AfterUpdate()
' Encontrar o registro que coincide com o controle.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[ID] = " & Str(Nz(Me![Pesquisa], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Private Sub Salvar_Click()
On Error GoTo Err_Salvar_Click
If IsNull(Poço) Then
MsgBox "Digite o Poço", vbOKOnly + vbInformation, "..."
ElseIf IsNull(Mês) Then
MsgBox "Digite o Parâmetro", vbOKOnly + vbInformation, "..."
ElseIf IsNull(Ano) Then
MsgBox "Digite o Valor", vbOKOnly + vbInformation, "..."
ElseIf IsNull(UpTime) Then
MsgBox "Digite a Data", vbOKOnly + vbInformation, "..."
ElseIf IsNull(Pressão) Then
MsgBox "Digite a Campanha", vbOKOnly + vbInformation, "..."
ElseIf MsgBox("Tem certeza que deseja salvar?", vbYesNo, "CONFIRMAÇÃO") = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Dados salvos com sucesso.", vbOKOnly, "CONFIRMAÇÃO"
Exit Sub
End If
Exit_Salvar_Click:
Exit Sub
Err_Salvar_Click:
MsgBox Err.Description
Resume Exit_Salvar_Click
End Sub
É o seguinte... eu tenho um formulário onde insiro dados, eu criei um botão salvar para salvá-los. Só que eu coloquei alguns códigos para que alguns campos sejam obrigatórios antes de salvar (Não fiz isso como "campo obrigatório" porque depois que se clica na opção não dá pra sair até digitar alguma coisa).
Na hora de salvar, os códigos funcionam perfeitamente. Só que eu tenho uma caixa de listagem que contém os registros já salvos e que eu posso selecionar e o formulário me retorna os valores correspondentes.
Já consegui implementar o código para que se eu alterar alguma coisa ele pergunte se eu desejo salvar antes de atualizar. Só que eu queria que o formulário só atualizasse depois que aqueles campos obrigatórios fossem preenchidos. Só que ele atualiza de qualquer forma.
Desde já agradeço
Os códigos:
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strMsg As String
strMsg = "Foram efetuadas alterações"
strMsg = strMsg & "... Deseja salvar as alterações?"
If MsgBox(strMsg, vbQuestion + vbYesNo, "Salvar?") = vbYes Then
'do nothing
Call Salvar_Click
'DoCmd.GoToRecord , , acPrevious
Else
DoCmd.RunCommand acCmdUndo
End If
End Sub
Private Sub Form_Current()
Pesquisa.Requery
Me!Pesquisa = Me!ID
Private Sub Pesquisa_AfterUpdate()
' Encontrar o registro que coincide com o controle.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[ID] = " & Str(Nz(Me![Pesquisa], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Private Sub Salvar_Click()
On Error GoTo Err_Salvar_Click
If IsNull(Poço) Then
MsgBox "Digite o Poço", vbOKOnly + vbInformation, "..."
ElseIf IsNull(Mês) Then
MsgBox "Digite o Parâmetro", vbOKOnly + vbInformation, "..."
ElseIf IsNull(Ano) Then
MsgBox "Digite o Valor", vbOKOnly + vbInformation, "..."
ElseIf IsNull(UpTime) Then
MsgBox "Digite a Data", vbOKOnly + vbInformation, "..."
ElseIf IsNull(Pressão) Then
MsgBox "Digite a Campanha", vbOKOnly + vbInformation, "..."
ElseIf MsgBox("Tem certeza que deseja salvar?", vbYesNo, "CONFIRMAÇÃO") = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Dados salvos com sucesso.", vbOKOnly, "CONFIRMAÇÃO"
Exit Sub
End If
Exit_Salvar_Click:
Exit Sub
Err_Salvar_Click:
MsgBox Err.Description
Resume Exit_Salvar_Click
End Sub