MaximoAccess

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

Obrigado

Administração do MaximoAccess


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.

Obrigado

Administração do MaximoAccess

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

    Evitar duplicidade utilizando Dlookup

    avatar
    BITSILVA
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 30/08/2010

    Evitar duplicidade utilizando Dlookup Empty Evitar duplicidade utilizando Dlookup

    Mensagem  BITSILVA 15/6/2018, 15:31

    Meus amigos e mestres do fórum:

    Estou desenvolvendo um Sistema de Reserva de Salas/Laboratórios.

    Eu consegui evitar a duplicidade de horários para mesma data, só que não estou conseguindo racionar para que a mesma validação seja feita também para Sala/Lab que estou selecionando.

    Na reserva em que faço gostaria de evitar duplicidade de horários e sala para a mesma data.

    Segue em anexo o sistema e o código abaixo:

    Dim Data As String
       Dim Entrada As Date
       Dim SalaR As String
       Dim HoraE As Date
       Dim SalaReserva As String

       Data = Me.DataReserva
       Entrada = Me.HoraEntrada
       SalaReserva = Me.Sala

       HoraE = Nz(DLookup("DataReserva", "tbMapaSala", "HoraEntrada = # " & Format(HoraEntrada, "hh:mm") & "#"), 0)
       SalaR = Nz(DLookup("Sala", "tbMapaSala", "HoraEntrada = # " & Format(HoraEntrada, "hh:mm") & "#"), 0)

       If CDate(HoraE) Then
           MsgBox "Hora de Entrada RESERVADA para a DATA: " & Data, vbCritical + vbOKOnly, "Reserva de Sala"
           Cancel = True
           DoCmd.CancelEvent
       ElseIf (SalaR) Then
           MsgBox "A Sala " & SalaReserva & " já foi Reservada!" & vbCrLf_
           " Data: " & Data & , & vbCrLf_
           " Hora: " & Entrada, vbCritical + vbOKOnly, "Reserva de Sala"
           Cancel = True
           DoCmd.CancelEvent
       End If
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10614
    Registrado : 04/11/2009

    Evitar duplicidade utilizando Dlookup Empty Re: Evitar duplicidade utilizando Dlookup

    Mensagem  JPaulo 15/6/2018, 15:58

    Ola;

    Eu uso de forma diferente, veja;

    Download


    Código:
    Public Sub DeletaDuplicadosSemChavePrimaria()
    'By JPaulo ®️ Maximo Access
    Dim I As Long
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbMapaSala", dbOpenDynaset)
        Do While Not rs.EOF
        For I = 0 To rs.Fields.Count - 1
       
        If rs(3).Value = Me.DataReserva.Value And rs(4).Value = Me.cbSala.Value And _
          (Me.HoraEntrada.Value >= rs(5).Value And Me.HoraEntrada.Value <= rs(6)) Then

          MsgBox "Já Tem Registado.", vbQuestion, "Aviso"
          Me.Undo
          Exit Sub
          Else
        End If
        Next
        rs.MoveNext
        Loop
    rs.Close
    Set rs = Nothing
    End Sub

    Private Sub Form_BeforeUpdate(Cancel As Integer)
     Call DeletaDuplicadosSemChavePrimaria
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Evitar duplicidade utilizando Dlookup Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Evitar duplicidade utilizando Dlookup Folder_announce_new 102 Códigos VBA Gratuitos...
    Evitar duplicidade utilizando Dlookup Folder_announce_new Instruções SQL como utilizar...
    avatar
    bacano
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 82
    Registrado : 08/12/2010

    Evitar duplicidade utilizando Dlookup Empty Re: Evitar duplicidade utilizando Dlookup

    Mensagem  bacano 16/6/2018, 16:59

    ola JPaulo boa tarde

    eu acho que ainda falta qualquer coisa no codigo pois se for noutro dia data diferente a sala ou curso ja poderao estar livres embora seja a mesma hora
    Anexos
    Evitar duplicidade utilizando Dlookup Attachmentduplicidade.pdf
    Você não tem permissão para fazer download dos arquivos anexados.
    (243 Kb) Baixado 10 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10614
    Registrado : 04/11/2009

    Evitar duplicidade utilizando Dlookup Empty Re: Evitar duplicidade utilizando Dlookup

    Mensagem  JPaulo 18/6/2018, 09:46

    Ola;

    O meu código não está a checkar o "Curso", porque supostamente não irá ter cursos diferentes na mesma Sala.

    Todos os testes que fiz aqui funcionaram;

    Exemplo:
    Laboratório-03,16-06-2018,09:00,16:00

    No mesmo dia, para a mesma sala, não deixará no periodo das 09:00 ás 16:00

    Para outro dia ou outro laboratorio já deixa;
    Laboratório-03,17-06-2018,09:00,16:00
    Laboratório-04,16-06-2018,09:10,16:00



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Evitar duplicidade utilizando Dlookup Folder_announce_new Utilize o Sistema de Busca do Fórum...
    Evitar duplicidade utilizando Dlookup Folder_announce_new 102 Códigos VBA Gratuitos...
    Evitar duplicidade utilizando Dlookup Folder_announce_new Instruções SQL como utilizar...

      Data/hora atual: 7/3/2021, 05:53