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
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