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


2 participantes

    [Resolvido]Dlookup e erro de tipo incompatível

    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 24/4/2013, 20:55

    Boa tarde à todos
    Estou iniciando minhas explorações no Access, meu conhecimento é bem básico. “Herdei” um BD usado para controle de audiências e estou tentando adaptá-lo, para melhorar seu desempenho e facilitar a utilização. Para tanto, usei e abusei de inúmeros exemplos deste fórum. Contudo, ao tentar adaptar uma função que corrige duplicidade encontrei um problema.
    O caso é o seguinte – tenho que impedir que se marquem audiências no mesmo dia e horário. Minha tabela tem o campo “DATA DA AUDIÊNCIA” formatado como data/hora e o campo HORÁRIO formatado da mesma maneira. Meu formulário tem os dois campos para alimentar o BD e, no evento BeforeUpdate do campo horário estou tentando adaptar uma função DLOOKUP com duas condições, que encontrei aqui no fórum. Ocorre que, ao colocar a função desta maneira:

    If Not IsNull(DLookup("[DATA DA AUDIÊNCIA]", "TABREGISTRO", "[DATA DA AUDIÊNCIA]=#" & Me.DATAAUD & "#")) Or Not IsNull(DLookup("[HORÁRIO]", "TABREGISTRO", "[HORÁRIO]=#" & Me.HORARIO & "#")) Then

    Ela funciona, porém não me serve porque pesquisa separadamente os dois campos, resultando em erro.
    Ao tentar adaptar para uso de duas condições, desta maneira:

    If Not IsNull(DLookup("[DATA DA AUDIÊNCIA]", "TABREGISTRO", "[DATA DA AUDIÊNCIA]=#" & Me.DATAAUD & "#" AND "[HORÁRIO]=#" & Me.HORARIO & "#")) Then

    Ela me retorna ERRO EM TEMPO DE EXECUÇÃO 13 – TIPOS INCOMPATÍVEIS

    Acho que já li todas as respostas relativas à duplicidade do fórum, mas não consegui descobrir o que acontece. Será que algum dos mestres do fórum poderia me dar uma luz?

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Alexandre Neves 24/4/2013, 21:01

    Boa noite, walter, e bem-vindo ao fórum
    If Not IsNull(DLookup("[DATA DA AUDIÊNCIA]", "TABREGISTRO", "[DATA DA AUDIÊNCIA]=#" & Me.DATAAUD & "#" AND [HORÁRIO]=#" & Me.HORARIO & "#")) Then


    .................................................................................
    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
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 24/4/2013, 21:13

    Boa tarde, Alexandre.
    Testei a função como vc passou e deu o mesmo erro (Erro em tempo de execução 13 - tipos incompatíveis).

    Private Sub HORARIO_BeforeUpdate(Cancel As Integer)
    If Not IsNull(DLookup("[DATA DA AUDIÊNCIA]", "TABREGISTRO", "[DATA DA AUDIÊNCIA]=#" & Me.DATAAUD & "#" AND [HORÁRIO]=#" & Me.HORARIO & "#")) Then
    Cancel = True
    MsgBox "Já existe Audiência marcada para este mesmo dia e horário.", vbCritical
    Me.HORARIO.Undo
    Else
    Exit Sub
    End If
    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Alexandre Neves 24/4/2013, 21:18

    If Not IsNull(DLookup("[DATA DA AUDIÊNCIA]", "TABREGISTRO", "[DATA DA AUDIÊNCIA]=#" & Me.DATAAUD & "# AND [HORÁRIO]=#" & Me.HORARIO & "#")) Then


    .................................................................................
    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
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 24/4/2013, 21:22

    Testei com essa outra sintaxe, não deu o erro, porém não fez a filtragem e deixou passar a duplicidade.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Alexandre Neves 24/4/2013, 21:23

    If Len(DLookup("[DATA DA AUDIÊNCIA]", "TABREGISTRO", "[DATA DA AUDIÊNCIA]=#" & Me.DATAAUD & "# AND [HORÁRIO]=#" & Me.HORARIO & "#")&""=0 Then


    .................................................................................
    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
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 24/4/2013, 21:29

    Com o uso do If Len, agora o formulário não aceita nenhuma marcação de hora, ou seja, não importa qual horário eu coloque, ele dá a msg de que já existe audi~encia marcada.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Alexandre Neves 24/4/2013, 21:54

    Devia ser assim
    If Len(DLookup("[DATA DA AUDIÊNCIA]", "TABREGISTRO", "[DATA DA AUDIÊNCIA]=#" & Me.DATAAUD & "# AND [HORÁRIO]=#" & Me.HORARIO & "#") & "" > 0 Then


    .................................................................................
    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
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 24/4/2013, 22:11

    Continua não aceitando nenhuma marcação de hora. Me parece que faltou um parenteses ali no final da instrução, para fechar o Dlookup - estava dando erro de sintaxe aqui, coloquei depois do "0" final. POde ser isso?
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 24/4/2013, 22:19

    Se não for pedir demais, estou mandando o BD para vc dar uma olhada...
    Anexos
    [Resolvido]Dlookup e erro de tipo incompatível AttachmentCONTROLE ELETRONICO DE AUDIENCIAS.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.4 Mb) Baixado 5 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Alexandre Neves 24/4/2013, 23:16

    Não tenho tempo para verificar mas colocou o código no acontecimento AntesDeActualizar quando deve ser DepoisDeActualizar!!!


    .................................................................................
    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
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 25/4/2013, 18:14

    TEstei aqui agora e o erro acontece independentemente do evento associado.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Alexandre Neves 25/4/2013, 18:40

    Boa tarde,
    Devia ser a melhor prática em nomenclaturas
    Veja se é isto


    .................................................................................
    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
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 25/4/2013, 19:16

    Acabei de testar. Mesma coisa. Não impede a duplicidade de registros. Agradeço a sua ajuda, mas acho que esta função não dá certo aqui...
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Alexandre Neves 25/4/2013, 19:33

    Testou com que data e hora?


    .................................................................................
    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
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 25/4/2013, 19:38

    Com todas as constantes da tabela TABREGISTRO, para ver se detetava a duplicidade.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Alexandre Neves 25/4/2013, 20:03

    Testei com 28/08/2013 17h30m00ss e não aceita


    .................................................................................
    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
    avatar
    walterstheel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 21
    Registrado : 26/09/2012

    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  walterstheel 25/4/2013, 20:34

    Realmente, parece que o problema estava ocorrendo com a tabela que eu estava usando. Apaguei a tabela do BD e importei a mesma de um backup da semana passada e aparentemente resolveu o problema. Vou fazer uns mil e tantos testes aqui pra ver como a função se comporta.
    Agradeço muito a sua ajuda Alexandre. Quem sabe daqui a um tempo eu estou no seu nível e possa ajudar algum novato também.
    De novo, Muito Obrigado! Você foi muito paciente comigo, valeu!

    Conteúdo patrocinado


    [Resolvido]Dlookup e erro de tipo incompatível Empty Re: [Resolvido]Dlookup e erro de tipo incompatível

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/5/2024, 15:02