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

    DLookup com retorno de MSG de não localizado

    avatar
    thalleslferreira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 17/10/2013

    DLookup com retorno de MSG de não localizado Empty DLookup com retorno de MSG de não localizado

    Mensagem  thalleslferreira 15/8/2017, 00:52

    Pessoal, estou com uma dúvida

    estou usando DLookup para preencher alguns dados na tabela, mais quando nao encontra o valor gostaria que me desse uma mensagem tipo "Dados não encontrado", podem me ajudar

    Obrigado!


    Me.txt_COLETA = DLookup("Coleta", "basebhz", "MD ='" & DOC & "'")
    Me.txt_NFS = DLookup("NFS", "basebhz", "MD ='" & DOC & "'")
    Me.txt_AWB = DLookup("AWB", "basebhz", "MD ='" & DOC & "'")
    Me.txt_CIATRANSF = DLookup("CIATRANSF", "basebhz", "MD ='" & DOC & "'")
    Me.txt_RESPENTREGA = DLookup("RESPENTREGA", "basebhz", "MD ='" & DOC & "'")
    Me.txt_REMETENTE = DLookup("REMETENTE", "basebhz", "MD ='" & DOC & "'")
    Me.TXT_DESTINATARIO = DLookup("DESTINATARIO", "basebhz", "MD ='" & DOC & "'")
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1039
    Registrado : 23/04/2013

    DLookup com retorno de MSG de não localizado Empty Re: DLookup com retorno de MSG de não localizado

    Mensagem  Uilson Brasil 15/8/2017, 14:55

    Teste assim.

    Código:
    Dim xDados As Variant, x

    'Buscamos os dados em uma só viajem
    xDados = "[Coleta] & '|' & [NFS] & '|' & [AWB] & '|' & [CIATRANSF] & '|' & [RESPENTREGA] &  '|' & [REMETENTE] & '|' & [DESTINATARIO]"
    xDados = DLookup(xDados, "basebhz", "MD ='" & DOC & "'")
    x = Split(xDados, "|")

    'Testamos os dados
    If IsNull(xDados) Or xDados = "" Then
        MsgBox "Não encontrado na base de dados.", vbInformation, "Sistema": Exit Sub
    End If

    'Cada que buscamos através da variável xDados representa uma coluna iniciando da coluna ZERO
    Me.txt_COLETA = x(0)
    Me.txt_NFS = x(1)
    Me.txt_AWB = x(2)
    Me.txt_CIATRANSF = x(3)
    Me.txt_RESPENTREGA = x(4)
    Me.txt_REMETENTE = x(5)
    Me.TXT_DESTINATARIO = x(6)


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    avatar
    thalleslferreira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 17/10/2013

    DLookup com retorno de MSG de não localizado Empty Re: DLookup com retorno de MSG de não localizado

    Mensagem  thalleslferreira 15/8/2017, 20:29

    Boa tarde, usei desta forma, pois estava apresentando um erro na x = Split(xDados, "|")


    Porem qualquer saida do campo DOC da msg de não localizado.

    Usei da forma correta?



    Private Sub DOC_LostFocus()

    Dim xDados As Variant, x

    'Buscamos os dados em uma só viajem
    xDados = "[Coleta] & '|' & [NFS] & '|' & [AWB] & '|' & [CIATRANSF] & '|' & [RESPENTREGA] & '|' & [REMETENTE] & '|' & [DESTINATARIO]"
    xDados = DLookup(xDados, "basebhz", "MD ='" & DOC & "'")

    'Testamos os dados
    If IsNull(xDados) Or xDados = "" Then
    MsgBox "Não encontrado na base de dados.", vbInformation, "Sistema": Exit Sub

    Else
    x = Split(xDados, "|")

    'Cada que buscamos através da variável xDados representa uma coluna iniciando da coluna ZERO
    Me.txt_COLETA = x(0)
    Me.txt_NFS = x(1)
    Me.txt_AWB = x(2)
    Me.txt_CIATRANSF = x(3)
    Me.txt_RESPENTREGA = x(4)
    Me.txt_REMETENTE = x(5)
    Me.TXT_DESTINATARIO = x(6)

    End If

    End Sub
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    DLookup com retorno de MSG de não localizado Empty DLookup com retorno de MSG de não localizado

    Mensagem  good guy 15/8/2017, 21:24

    Olá Thalles,

    Tente assim com uma função Array:

    Código:
    Public Function LocalizarDados()
    Dim strLoc As String
    Dim varLoc(7) As Variant
    Dim intI As Integer

    varLoc(0) = DLookup("Coleta", "basebhz", "MD ='" & DOC & "'")
    varLoc(1) = DLookup("NFS", "basebhz", "MD ='" & DOC & "'")
    varLoc(2) = DLookup("AWB", "basebhz", "MD ='" & DOC & "'")
    varLoc(3) = DLookup("CIATRANSF", "basebhz", "MD ='" & DOC & "'")
    varLoc(4) = DLookup("RESPENTREGA", "basebhz", "MD ='" & DOC & "'")
    varLoc(5) = DLookup("REMETENTE", "basebhz", "MD ='" & DOC & "'")
    varLoc(6) = DLookup("DESTINATARIO", "basebhz", "MD ='" & DOC & "'")


    strLoc = Array(varLoc(0), varLoc(2), varLoc(3), varLoc(4), varLoc(5), varLoc(6))

    For intI = LBound(strLoc) To UBound(strLoc)
        If strLoc(intI) > 0 Then
        MsgBox ok
        Else
        MsgBox "Não encontrado na base de dados.", vbInformation, "Sistema"
        End If
    Next intI

    End Function

    'CHAME A FUNÇÃO ACIMA COM A INSTRUÇÃO CALL ATRAVÉS DE UM BOTÃO

    Private Sub cmdEncontrar_Click()
    Call LocalizarDados
    End Sub
    avatar
    thalleslferreira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 17/10/2013

    DLookup com retorno de MSG de não localizado Empty Re: DLookup com retorno de MSG de não localizado

    Mensagem  thalleslferreira 15/8/2017, 22:50

    Fiz de outra forma

    Após Atualizar

    Private Sub DOC_AfterUpdate()
    If NomeOriginal = Me!DOC Then Exit Sub
    If DCount("Id", "Tbl_doc", "DOC ='" & Me!DOC & "'") > 0 Then
    MsgBox "O documento " & Me!DOC & " JÁ lançado..."
    Me.Undo
    Cancel = True
    Me.DOC.SetFocus
    End If

    Dim xDados As Variant, x

    'Buscamos os dados em uma só viajem
    xDados = "[Coleta] & '|' & [NFS] & '|' & [AWB] & '|' & [CIATRANSF] & '|' & [RESPENTREGA] & '|' & [REMETENTE] & '|' & [DESTINATARIO]"
    xDados = DLookup(xDados, "basebhz", "MD ='" & DOC & "'")

    'Testamos os dados
    If IsNull(xDados) Or xDados = "" Then
    MsgBox "Não encontrado na base de dados.", vbInformation, "Sistema":
    Me.Undo
    Cancel = True

    Exit Sub
    Me.DOC.SetFocus
    End If
    Me.DOC.SetFocus
    x = Split(xDados, "|")

    'Cada que buscamos através da variável xDados representa uma coluna iniciando da coluna ZERO
    Me.txt_COLETA = x(0)
    Me.txt_NFS = x(1)
    Me.txt_AWB = x(2)
    Me.txt_CIATRANSF = x(3)
    Me.txt_RESPENTREGA = x(4)
    Me.txt_REMETENTE = x(5)
    Me.TXT_DESTINATARIO = x(6)



    End Sub
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    DLookup com retorno de MSG de não localizado Empty Re: DLookup com retorno de MSG de não localizado

    Mensagem  Dilson 17/8/2017, 15:10

    Movido para sala de dúvidas Modulos e VBA.

    thalleslferreira leia as regras do fórum. Salas de repositórios de exemplos e documentações não devem ser usadas para publicação de dúvidas.

    Segue o tópico normalmente.

    Conteúdo patrocinado


    DLookup com retorno de MSG de não localizado Empty Re: DLookup com retorno de MSG de não localizado

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 13:42