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]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    avatar
    Klein
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 22/09/2014

    [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13 Empty [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    Mensagem  Klein 22/9/2014, 17:07

    Olá, meu nome é Walter esta é minha primeira postagem,  sou iniciante em access VBA, embora já utilize esta ferramenta há muitos anos, sou muito grato pela existência deste fórum e pelas valiosas informações aqui contidas, que me tem sido muito úteis, espero um dia poder aprender o suficiente para poder contribuir com outros que possam necessitar.
    Bom vamos à dúvida, primeiramente informo que previamente pesquisei antes de postar, entretanto a única ocorrência que encontrei de algo correlato era em forma de data e concatenação de dados, o meu problema reside em duas variáveis.

    Tenho um formulário de Ordem de serviço de veículos, neste formulário chamo os dados da tabela "FROTA" para criar uma nova "OS", para facilitar para o usuário criei um campo pesquisa chamado "TXTFrota" não vinculado a tabela, os veículos estão cadastrados por frota e placa, então para não ter dois campos para pesquisar quis criar um único campo que pesquisa-se ou pela frota ou pela placa, a primeira parte funciona perfeitamente, entretanto a segunda está dando o erro 13 tipos incompatíveis, os campos da tabela são do tipo texto, e no formulário é uma caixa de texto, nos campos da tabela tanto no campo "FROTA" quanto no campo "PLACA" estão armazenados dados compostos por letras e números, alguns separados por hífen, a príncipio achei que eram o hifens, mas não são, se no campo "FROTA" só contiver número funciona e se apago a segunda parte depois do "OR" funciona  mas dai vai ficar faltando a pesquisa se o usuário digitar a placa.
    Agradeço antecipadamente.

    Private Sub TXTFrota_AfterUpdate()

    If DLookup("Bloqueado", "FROTA", "FROTA='" & Me.TXTFrota & "'") Or DLookup("Bloqueado", "FROTA", "Placa='" & Me.TXTFrota & "'") = -1 Then
    MsgBox ("Veículo Bloqueado!"), vbInformation, "AVISO"
    Me.TXTFrota = Empty
    DoCmd.CancelEvent
    Else
    If DLookup("FROTA", "FROTA", "FROTA='" & Me.TXTFrota & "'") Or DLookup("FROTA", "FROTA", "PLACA='" & Me.TXTFrota & "'") > 0 Then
    Me.TXTFrotaa = DLookup("FROTA", "FROTA", "FROTA='" & Me.TXTFrota & "'")
    Me.TXTPlaca = DLookup("PLACA", "FROTA", "FROTA='" & Me.TXTFrotaa & "'")
    Me.TXTModelo = DLookup("MODELO_DESCRIÇÃO", "FROTA", "FROTA='" & Me.TXTFrotaa & "'")
    Me.TxtServOSnome = DLookup("Nome", "LOGS", "Logname='" & Me.User & "'")
    Me.TxtMatrServOS = DLookup("Matrícula", "LOGS", "Logname='" & Me.User & "'")
    Me.Km.SetFocus
    Else
    MsgBox ("Veículo não localizado, verifique se não foi informado ou digitado errado!"), vbInformation, "AVISO"
    Me.TXTFrota = Empty


    End If
    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]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13 Empty Re: [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    Mensagem  Alexandre Neves 22/9/2014, 20:21

    Boa noite, e bem-vindo ao fórum
    O código que utilizou serve para campo Frota (texto) e Placa (texto)
    Conforme se os campos são do tipo texto, pois será aí a origem do erro. Se algum campo for número, coloque sem pelicas na função


    .................................................................................
    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
    Klein
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 22/09/2014

    [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13 Empty Re: [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    Mensagem  Klein 22/9/2014, 20:47

    Olá Alexandre, muito obrigado pelo interesse, ambos os campos são do tipo texto, por exemplo os dados que estão armazenados na tabela:
    - Frota= ABRT-7062 Placa=ANT2062 ou
    - Frota= L-403 Placa=AWN5441 ou simplesmente
    - Frota= 657 PLaca=AWF1834 neste caso funciona.
    Por haver estas diferenciações nos registros de frota que defini a propriedade do campo frota como texto, e a função funciona o problema aparece quando eu coloco a segunda condição.

    "Or DLookup("FROTA", "FROTA", "PLACA='" & Me.TXTFrota & "'") > 0 Then"
    No meu entender ele deveria testar a primeira condição no caso verificar se no campo TXTFrota estiver digitado uma frota válida se não ir para a segunda parte e testar o mesmo campo TXTFrota para ver se tem alguma placa valida, entretanto a segunda parte da função está interferindo na primeira e retornando o erro e não tem como eu alterar o campo frota da tabela para número pois contém letras também em alguns casos.

    Obrigado!

    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]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13 Empty Re: [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    Mensagem  Alexandre Neves 22/9/2014, 21:27

    Pois, não reparei: O DLookup falta outro valor para verificação da condição.
    Coloque
    If DCount("FROTA", "FROTA", "FROTA='" & Me.TXTFrota & "' or PLACA='" & Me.TXTFrota & "'")>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
    Klein
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 22/09/2014

    [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13 Empty Re: [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    Mensagem  Klein 22/9/2014, 21:39

    Muito, muito obrigado, resolvido, vou aproveitar e estudar este código DCount.
    avatar
    Klein
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 22/09/2014

    [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13 Empty Re: [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    Mensagem  Klein 22/9/2014, 21:41

    Muito, muito obrigado, resolvido, vou aproveitar e estudar este código DCount.
    Entendi o que foi feito, ele vai contar os registros que atendam a condição, no caso ele não localiza o registro simplesmente indica que existe um registro e pronto, muito bom. Valeu!
    avatar
    Klein
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 22/09/2014

    [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13 Empty Re: [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    Mensagem  Klein 22/9/2014, 22:20

    Usei o DLookup no lugar do DCount e funcionou também, a maneira que eu estava escrevendo estava criando alguma inconsistência, mais uma vez muito obrigado!

    If DLookup("FROTA", "FROTA", "FROTA='" & Me.TXTFrota & "' or PLACA='" & Me.TXTFrota & "'")>0 Then

    Conteúdo patrocinado


    [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13 Empty Re: [Resolvido]Campo de pesquisa em formulário usando Dlookup com duas variaveis dando erro 13

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 05:30