MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    Em vez de inserir novo registo...

    avatar
    ARJ
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 67
    Registrado : 31/07/2022

    Em vez de inserir novo registo... Empty Em vez de inserir novo registo...

    Mensagem  ARJ 12/8/2022, 12:35

    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.

    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.

      Data/hora atual: 9/5/2024, 05:47