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


4 participantes

    Dcount com 4 critérios dando erro [Resolvido]

    avatar
    diegogcoelho
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 17/06/2013

    Dcount com 4 critérios dando erro [Resolvido] Empty Dcount com 4 critérios dando erro [Resolvido]

    Mensagem  diegogcoelho 15/8/2017, 13:22

    Bom dia senhores.

    Sempre recorri ao fórum para tirar dúvidas e aprender mais sobre o uso do Access e já tem muito tempo que o fórum me tem sido de grande valia.
    Acontece que estou com uma duvida que eu ainda não encontrei resposta por aqui, e nem em outras fontes na internet, e venho na esperança que alguém possa me ajudar.
    Já estou quebrando a cabeça no problema abaixo a mais de uma semana. Segue o explicativo:
    Trata-se de um sistema de autorização de acesso a salas, é cadastrado: a carteirinha do estudante, o numero da sala a data de inicio e a data final da autorização.

    Tabela - Autorizacao:
    *Carteirinha -> numero duplo -> sequencial possui 11 dígitos
    *Sala -> numero duplo -> sequencial possui 11 dígitos
    *Data_inicial -> Data abreviada
    *Data_final  -> Data abreviada

    Formulario – Autoriza:
    *Caixa de texto 1 -> num_cart -> não acoplado
    *Caixa de texto 2 -> num_sala -> não acoplado
    *Botão -> Verifica

    A ideia é que eu entre com os dados do numero da carteirinha e da sala e clique no botão “Verifica”. O botão tem um código VBA que deve executar uma consulta na tabela “Autorização” e ver se existe alguma linha contendo os dois códigos (carteirinha e sala) e verifica se a data atual está entre a data inicial e final, caso todas essas condições esteja satisfeitas ele retorna com uma caixa de mensagem dizendo: “Autorização concedida”.
    Vi aqui no fórum e em outras fontes que a função DCOUNT se encaixaria no que eu quero fazer, porem estou com muitos problemas na parte dos critérios, quando não acontece erro de sintaxe acontece uma falha que diz que os dados são incompatíveis. Segue abaixo o código feito para o botão verifica.

    Código:
    Private Sub Verifica_Click()
    Dim Ncart, Nsala As Double
    Dim contador As Integer
    Dim data As Date

    Ncart = 0
    Nsala = 0
    contador = 0
    data = Date

    If Me.num_cart <> "" Then
        Ncart = CDbl(Me.num_cart)
    End If

    If Me.num_sala <> "" Then
        Nsala = CDbl(Me.num_sala)
    End If

    contador = DCount("Carteirinha", "Autorizacao", "Carteirinha = " & Ncart And "Sala = " & Nsala And "Data_inicial <= #" & data & "#" And "Data_final >= #" & data & "#")

    If contador > 0 Then
        MsgBox "Autorização concedida!"
        Else
        MsgBox "Autorização NÃO concedida!"
    End If

    End Sub

    Agradeço muito quem puder me ajudar.
    Obrigado.
    Anexos
    Dcount com 4 critérios dando erro [Resolvido] AttachmentDatabase1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (106 Kb) Baixado 5 vez(es)


    Última edição por diegogcoelho em 15/8/2017, 17:21, editado 1 vez(es)
    marceloarboit
    marceloarboit
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 147
    Registrado : 09/07/2015

    Dcount com 4 critérios dando erro [Resolvido] Empty Re: Dcount com 4 critérios dando erro [Resolvido]

    Mensagem  marceloarboit 15/8/2017, 14:04

    Bom dia Diego,

    Eu também sempre tive muitos problemas com DCount, DLookup com vários critérios. Eu acabo sempre recorrendo a consultas pra fazer uma pré-filtragem e adaptar o código as minhas necessidades.

    Utilizando seu exemplo, eu criei uma consulta para filtrar os intervalos de datas conforme sua necessidade, e fiz o DCount com base nessa query.

    Segue o exemplo que criei.

    Espero ter ajudado!

    Abraço,
    Marcelo.
    Anexos
    Dcount com 4 critérios dando erro [Resolvido] AttachmentDatabase1-Rev.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (114 Kb) Baixado 10 vez(es)
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Dcount com 4 critérios dando erro [Resolvido] Empty DCount com 4 critérios dando erro

    Mensagem  good guy 15/8/2017, 14:53

    Olá Diego, tente assim:

    Código:

    Private Sub Verifica_Click()
    Dim Ncart, Nsala As Long
    Dim contador As Integer
    Dim dtdata, dtdatainicial As Date

    Ncart = Me.num_cart
    Nsala = Me.num_sala
    contador = 0

    dtdatainicial = Nz(DLookup("data_inicial", "Autorizacao", "num_sala = " & Nsala))
    dtdata = Date

    If Me.num_cart <> "" Then
        Ncart = CLng(Me.num_cart)
    End If

    If Me.num_sala <> "" Then
        Nsala = CLng(Me.num_sala)
    End If

    If Nz(DLookup("Carteirinha", "Autorizacao", "Data_inicial >= #" & dtdatainicial & "#")) <> Ncart Then  '1ª condição
    MsgBox "Autorização NÃO concedida!", vbCritical, "Autorização"
    Else
    If Nz(DLookup("Sala", "Autorizacao", "Data_final >= #" & dtdata & "#")) <> Nsala Then    '2ª condição
    MsgBox "Autorização NÃO concedida!", vbCritical, "Autorização"
    Else
    contador = Nz(DCount("Carteirinha", "Autorizacao", "Carteirinha = " & Ncart)) '

        If contador > 0 Then
            MsgBox "Autorização concedida!", vbInformation, "Autorização"
            Else
            MsgBox "Autorização NÃO concedida!", vbCritical, "Autorização"
        End If
    End If
    End If
    End Sub
    Anexos
    Dcount com 4 critérios dando erro [Resolvido] AttachmentAutorizacao.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (26 Kb) Baixado 13 vez(es)
    avatar
    diegogcoelho
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 17/06/2013

    Dcount com 4 critérios dando erro [Resolvido] Empty Re: Dcount com 4 critérios dando erro [Resolvido]

    Mensagem  diegogcoelho 15/8/2017, 15:48

    Obrigado marceloarboit e good guy pela disponibilidade.
    A principio as duas maneiras funcionaram, mas ao adicionar mais autorizações na tabela, as duas sugestões mostraram algumas inconsistências. Autorizando onde não devia ou não autorizando quando devia.
    Como esse sistema terá varias autorizações cadastradas eu extrapolei e coloquei 4 registros na tabela para fazer testes.
    Segue abaixo os quatro registros que usei para fazer os testes.


    Carteirinha   sala        Data_inicial    Data_final  
    721046        987654   01/07/2017   31/07/2017  
    721045        654321   01/07/2017   31/07/2017  
    720146        654321   01/08/2017   31/08/2017  
    720145        987654   01/08/2017   31/08/2017
    Se você puderem fazer a gentileza de testar.
    Mas de qualquer maneira, obrigado novamente.
    marceloarboit
    marceloarboit
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 147
    Registrado : 09/07/2015

    Dcount com 4 critérios dando erro [Resolvido] Empty Re: Dcount com 4 critérios dando erro [Resolvido]

    Mensagem  marceloarboit 15/8/2017, 16:10

    Diego,

    Realmente. Nesse caso, eu não poderia ter feito 2 contadores distintos, tive que usar o AND para funcionar.
    Veja se agora está correto!

    Abs.,
    Marcelo.
    Anexos
    Dcount com 4 critérios dando erro [Resolvido] AttachmentDatabase1-Rev2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (116 Kb) Baixado 21 vez(es)
    avatar
    diegogcoelho
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 17/06/2013

    Dcount com 4 critérios dando erro [Resolvido] Empty Re: Dcount com 4 critérios dando erro [Resolvido]

    Mensagem  diegogcoelho 15/8/2017, 16:19

    Testei aqui Marcelo, e agora funcionou perfeitamente.

    Muito obrigado pela ajuda.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Dcount com 4 critérios dando erro [Resolvido] Empty Re: Dcount com 4 critérios dando erro [Resolvido]

    Mensagem  Alexandre Neves 15/8/2017, 17:06

    Boa tarde,
    Falta o "Resolvido"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    Dcount com 4 critérios dando erro [Resolvido] Empty Re: Dcount com 4 critérios dando erro [Resolvido]

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 23:58