Boa tarde
Refiz conforme abaixo....
Mas não percebi o porque de ainda estar travando as vezes as escolhas nos subforms.
Private Sub ComandoNovo_Click()
DefinirAtivacaoSubForm
If MsgBox(" Deseja cadastrar um novo exame físico?", vbOKCancel + vbDefaultButton1 + vbInformation, "!!!!!AVISO!!!!!") = vbOK Then
DoCmd.GoToRecord , , acNewRec
'Habilita controles IdExameFisico e lista1
With Me
.IdExameFisico.Enabled = True
.Lista1.Enabled = True
' .Data.Enabled = True 'False
' .btn1.Enabled = True 'False
' .btn2.Enabled = True 'False
' .btn3.Enabled = True 'False
.ComandoSalvar.Enabled = True 'False
'*** aparece essa mensagem no topo do formulário
.Caption = "Exame Médico sendo efetuado"
End With
Else ' caso não queira cadastrar, ação cancelada
MsgBox " Ação cancelada, funcionário não cadastrado", vbInformation, " !!!!!AVISO!!!!!"
End If
End Sub
Quando clico na caixa 1
Private Sub Lista1_Click()
'Habilita controles Data, btn1, 2 e 3 3 ComandaSalvar
With Me
.Data.Enabled = True
.btn1.Enabled = True
.btn2.Enabled = True
.btn3.Enabled = True
.ComandoSalvar.Enabled = True
End With
End Sub
Ao salvar....
Private Sub ComandoSalvar_Click()
Me.Caption = "Registro sendo salvo!!!"
If MsgBox(" Deseja salvar esse exame físico?", vbOKCancel + vbDefaultButton1 + vbInformation, "!!!!!AVISO!!!!!") = vbOK Then
DoCmd.Save ' salva o registro
DoCmd.RunCommand acCmdRefresh ' atualiza a tabela e o formulario
MsgBox " Exame físico salvo com sucesso !", vbOKOnly, " !!!!!AVISO!!!!!"
DoCmd.GoToRecord , , acNewRec
' vai para um novo registro, desabilitando os campos IdExameFisico, lista1, Data, ComandoSalvar, btn1, 2 e 3.
With Me
.IdExameFisico.Enabled = False
.Lista1.Enabled = False
.btn1.Enabled = False
.btn2.Enabled = False
.btn3.Enabled = False
.Data.Enabled = False
.ComandoSalvar.Enabled = False
'***deixa apena esse comando habilitado
.ComandoNovo.Enabled = True
End With
Me.Refresh
Else
' se o usuario cancelar a operação, surge essa mensagem
MsgBox " Ação cancelada por você, o exame não foi salvo !", vbInformation, " !!!!!AVISO!!!!!"
End If
'Atualiza imagem subformulário
Me!SubFormulario.SourceObject = "subformulario"
End Sub
e quando excluo.....
Private Sub ComandoExcluir_Click()
'Tratamento de erro
On Error GoTo Err_Delete
'Declaração da variável
Dim numRecord As Integer
'Solicitação do id do exame físico
numRecord = InputBox("Informe o Id do Exame Físico....:", "!!!!!AVISO!!!!!")
'Confirmação de operação de excluir
If MsgBox("Deseja excluir o Exame " & numRecord & "?", vbQuestion + vbYesNo, "!!!!!AVISO!!!!!") = vbYes Then
Dim SQL As String
'Aviso de execução
DoCmd.SetWarnings False
'ALTERE O NOME DA TABELA E NOME DO CAMPO tabela nome do campo
SQL = "DELETE * FROM Tbl_ExameFisico WHERE IdExameFisico = " & numRecord
'Executa consulta
DoCmd.RunSQL SQL
'Confirmação do processo
MsgBox "Exclusão realizada com sucesso!", vbInformation, "!!!!!AVISO!!!!!"
DoCmd.GoToRecord , , acNewRec
Else
MsgBox " Ação cancelada por você", vbInformation, "!!!!!AVISO!!!!!"
Exit Sub
End If
DoCmd.RunCommand acCmdRefresh
DoCmd.GoToRecord , , acNewRec
Exit_Delete:
Exit Sub
Err_Delete:
MsgBox "Erro número: " & Err.Number & vbLf & vbLf & Err.Description, vbCritical, "!!!!!AVISO!!!!!"
Resume Exit_Delete
' Desabilita os campos IdExameFisico, lista1, Data, ComandoSalvar, btn1, 2 e 3.
With Me
.IdExameFisico.Enabled = False
.Lista1.Enabled = False
.btn1.Enabled = False
.btn2.Enabled = False
.btn3.Enabled = False
.Data.Enabled = False
.ComandoSalvar.Enabled = False
'***deixa apena esse comando habilitado
.ComandoNovo.Enabled = True
End With
Me.Refresh
End Sub