Olá
O amigo Alexandre desenvolveu este código, esta tudo bem, mas ao testar a app, reparamos que o necessário em vez de inserir novo registo, seria só ver e estarem bloqueados a serem mexidos, tipo alterar ou inseri novo e ter um botão para executar essas funcionalidades, inserir novo registo ou alterar o mesmo - selecionado.
Se me poderem ajudar agradecia mesmo muito. Obrigado.
Muito obrigado.
O amigo Alexandre desenvolveu este código, esta tudo bem, mas ao testar a app, reparamos que o necessário em vez de inserir novo registo, seria só ver e estarem bloqueados a serem mexidos, tipo alterar ou inseri novo e ter um botão para executar essas funcionalidades, inserir novo registo ou alterar o mesmo - selecionado.
Se me poderem ajudar agradecia mesmo muito. Obrigado.
- Código:
End Sub
Private Sub btnMOTORISTAS_Click()
DoCmd.Close
DoCmd.OpenForm "form_MOTORISTAS"
End Sub
Private Sub btnPROXIMADATA_Click()
Me.txtDATA = Me.txtDATA.Value + 1
End Sub
Private Sub cboUTILIZADOR_AfterUpdate()
'-- Carrega subform vazio após mudar de utilizador
Call CarregaMarcacoes(0)
'-- desabilita subform de marcações e habilita somente
'-- quando utilizador/login estiverem corretos
Me.form_INSERIR_MARCACOES.Enabled = False
End Sub
Private Sub Form_Load()
Me.cboUTILIZADOR.SetFocus
'-- Carrega subform vazio pois não há utilizadores informados, passando parametro ZERO
Call CarregaMarcacoes(0)
End Sub
'-- Verifica login/senha informados
Private Function VerificaLogin() As Boolean
If Nz(DCount("*", "tab_UTILIZADORES", "IDUtilizador = " & cboUTILIZADOR.Column(0) & " AND PIN = '" & Trim(txtSENHA) & "'"), 0) = 0 Then
VerificaLogin = False
Else
VerificaLogin = True
End If
End Function
'-- Verifica o preenchimento correto dos campos
Private Function ValidaCampos() As Boolean
ValidaCampos = True
If IsNull(Me.cboUTILIZADOR) Or Trim(Me.cboUTILIZADOR) = Empty Then
MsgBox "O campo Utilizador é de preenchimento obrigadtório.", vbExclamation, "Aviso"
Me.cboUTILIZADOR.SetFocus
Me.cboUTILIZADOR.Dropdown
ValidaCampos = False
Exit Function
End If
If IsNull(Me.txtSENHA) Or Trim(Me.txtSENHA) = Empty Then
MsgBox "O campo Senha é de preenchimento obrigadtório.", vbExclamation, "Aviso"
Me.txtSENHA.SetFocus
ValidaCampos = False
Exit Function
End If
End Function
Public Sub InsereMarcacao()
On Error GoTo trata_erro
Dim sSQL As String
Dim rst As DAO.Recordset
'-- A instrução SQL abaixo é apenas para abrir o recorset vazio na memória, pois não existe ID Zero na tabela
sSQL = "SELECT * FROM tab_MARCACOES WHERE id_tab_marcacoes = 0"
'-- Abrir recordset com o recordsource (sSQL) acima
Set rst = CurrentDb.OpenRecordset(sSQL)
'-- Adiciona registro na tabela
rst.AddNew
'-- Define o campo "id registrado por" da tabela com o ID do cbo
rst("id_registado_por") = Me.cboUTILIZADOR.Column(0)
'-- Atualiza o recordset
rst.Update
'-- Fecha recordset
rst.Close
'-- Limpa o rst da memória
Set rst = Nothing
Exit Sub
'-- Tratamento de erro:
trata_erro:
MsgBox "Erro gerado: " & Err.Number & " - " & Err.Description & "", vbCritical, "Erro"
Exit Sub
End Sub
Private Sub CarregaMarcacoes(nIDUtilizador As Long)
With Form_form_INSERIR_MARCACOES
.RecordSource = "SELECT * FROM qryMarcacoesPorUtilizador WHERE id_registado_por = " & nIDUtilizador & ""
.Requery
End With
Muito obrigado.