MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Como informar na mensagem as buscas que tiveram exito?

    avatar
    flecha
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 274
    Registrado : 11/01/2012

    [Resolvido]Como informar na mensagem as buscas que tiveram exito? Empty [Resolvido]Como informar na mensagem as buscas que tiveram exito?

    Mensagem  flecha em 20/2/2019, 20:15

    Olá,
    Tenho 3 tabelas, criei um form, com uma caixa de texto1 e um Botão, para procurar um número
    nas 3 tabelas: o comando do botão  é esse:

    Código:

    Private Sub CmvVerificar_Click()
    On Error GoTo Err_cmvVerificar_Click
    Dim txtBusca01, txtBusca02, txtBusca03
    Dim i As Long
    i = Me.Texto1.Value 'Texto1 = campo no formulário

    txtBusca01 = DLookup("Numero", "Coletes Incinerados", "Numero=" & i)
    txtBusca02 = DLookup("Numero", "Coletes Incinerados 2015", "Numero=" & i)
    txtBusca03 = DLookup("Numero", "TbDestruidos2018", "Numero=" & i)

    If Not IsNull(txtBusca01 And txtBusca02 And txtBusca03) Then ' Se tem nas 3 tabs
    MsgBox "O Material de Nº.: " & i & " Foi encontrado em mais de uma tabelas, Favor conferir!", , "Resultado da Verificação"
    Me.Texto1 = Empty

    ElseIf Not IsNull(txtBusca01) And IsNull(txtBusca02) And IsNull(txtBusca03) Then ' Só tem na tab1
    MsgBox "O Material de Nº.: " & i & " Foi encontrado apenas na tabela Incinerados 2011!", , "Resultado da Verificação"
    Me.Texto1 = Empty

    ElseIf Not IsNull(txtBusca02) And IsNull(txtBusca01) And IsNull(txtBusca03) Then ' Só tem na tab2
    MsgBox "O Material de Nº.: " & i & " Foi encontrado apenas na tabela Incinerados 2015!", , "Resultado da Verificação"
    Me.Texto1 = Empty

    ElseIf Not IsNull(txtBusca03) And IsNull(txtBusca02) And IsNull(txtBusca01) Then    ' Só tem na tab3
    MsgBox "O Material de Nº.: " & i & " Foi encontrado apenas na tabela Incinerado 2018!", , "Resultado da Verificação"
    Me.Texto1 = Empty

    ElseIf IsNull(txtBusca01) And IsNull(txtBusca02) And IsNull(txtBusca03) Then  ' Não tem em nenhuma tab
    MsgBox "O Material de Nº.: " & i & " Não foi encontrado!", , "Resultado da Verificação"
    Me.Texto1 = Empty
    End If

    Me.Texto1.SetFocus

    Exit_cmvVerificar_Click:
    Exit Sub

    Err_cmvVerificar_Click:
    MsgBox Err.description & "  Campo Vazio ou não é numérico!!!!"
    Resume Exit_cmvVerificar_Click


    Problema:
    No primeiro IF se ele achar em o mesmo número nas 3 tabelas, ele dispara a mensagem.
    Aconteceu de achar em 2 e passava direto e voltava parar form.

    Como posso fazer para no primeiro IF  incluir na mensagem as tabelas "Nome" que continham o número pesquisado?

    Obrigado
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Como informar na mensagem as buscas que tiveram exito? Empty Re: [Resolvido]Como informar na mensagem as buscas que tiveram exito?

    Mensagem  Alexandre Neves em 21/2/2019, 11:04

    Bom dia
    Private Sub CmvVerificar_Click()
    On Error GoTo Err_cmvVerificar_Click
    Dim bytExiste as Byte, strMsg as string
    Dim i As Long
    i = Me.Texto1.Value 'Texto1 = campo no formulário

    If DLookup("Numero", "Coletes Incinerados", "Numero=" & i) >0 Then
    bytExiste =1

    strMsg = vbcr & "Coletes Incinerados"
    End If
    If DLookup("Numero", "Coletes Incinerados 2015", "Numero=" & i) >0 Then
    bytExiste =bytExiste +1

    strMsg = strMsg & vbcr & "Coletes Incinerados 2015"
    End If
    If DLookup("Numero", "TbDestruidos2018", "Numero=" & i) >0 Then
    bytExiste =bytExiste +1

    strMsg = strMsg & vbcr & "TbDestruidos2018"

    End If



    Select Case bytExiste
    Case 0
    MsgBox "O Material de Nº.: " & i & " não foi encontrado!", , "Resultado da Verificação"
    Case 1
    MsgBox "O Material de Nº.: " & i & " foi encontrado numa tabela:" & strMsg , , "Resultado da Verificação"
    Case Else
    MsgBox "O Material de Nº.: " & i & " foi encontrado em " & bytExiste &" tabelas:" & strMsg, , "Resultado da Verificação"
    End Select
    Me.Texto1 = Empty

    Me.Texto1.SetFocus

    Exit_cmvVerificar_Click:
    Exit Sub

    Err_cmvVerificar_Click:
    MsgBox Err.description & "  Campo Vazio ou não é numérico!!!!"
    Resume Exit_cmvVerificar_Click


    .................................................................................
    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
    flecha
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 274
    Registrado : 11/01/2012

    [Resolvido]Como informar na mensagem as buscas que tiveram exito? Empty Re: [Resolvido]Como informar na mensagem as buscas que tiveram exito?

    Mensagem  flecha em 21/2/2019, 23:54

    Obrigado, Alexandre Neves.
    Funcionou direitinho.
    Eu fui tentando...tentando e consegui fazer dessa forma:

    Código:

    Private Sub CmvVerificar_Click()
    On Error GoTo Err_cmvVerificar_Click
    Dim txtBusca01, txtBusca02, txtBusca03
    Dim i As Long
    i = Me.Texto1.Value 'Texto1 = campo no formulário

    txtBusca01 = DLookup("Numero", "Coletes Incinerados", "Numero=" & i)
    txtBusca02 = DLookup("Numero", "Coletes Incinerados 2015", "Numero=" & i)
    txtBusca03 = DLookup("Numero", "TbDestruidos2018", "Numero=" & i)

    'If IsNull(txtBusca01) And Not IsNull(txtBusca02) And Not IsNull(txtBusca03) Then

    If Not IsNull(txtBusca01 And txtBusca02) Or Not IsNull(txtBusca01 And txtBusca03) Or Not IsNull(txtBusca02 And txtBusca03) Then  ' Se tem nas 3 tabs
    MsgBox "O Material de Nº.: " & i & " Foi encontrado em mais de uma tabela: " & Chr(13) & _
            "Verifique na tabela do ano que tem o nº buscado nesta Mensagem  " & Chr(13) & vbCrLf & _
            "destruidos em 2011 - " & txtBusca01 & "" & Chr(13) & _
            "destruidos em 2015 - " & txtBusca02 & "" & Chr(13) & _
            "destruidos em 2018 - " & txtBusca03 & ""
           
    Me.Texto1 = Empty

    ElseIf Not IsNull(txtBusca01) And IsNull(txtBusca02) And IsNull(txtBusca03) Then ' Só tem na tab1
    MsgBox "O Material de Nº.: " & i & " Foi encontrado apenas na tabela Incinerados 2011!", , "Resultado da Verificação"
    Me.Texto1 = Empty

    ElseIf Not IsNull(txtBusca02) And IsNull(txtBusca01) And IsNull(txtBusca03) Then ' Só tem na tab2
    MsgBox "O Material de Nº.: " & i & " Foi encontrado apenas na tabela Incinerados 2015!", , "Resultado da Verificação"
    Me.Texto1 = Empty

    ElseIf Not IsNull(txtBusca03) And IsNull(txtBusca02) And IsNull(txtBusca01) Then    ' Só tem na tab3
    MsgBox "O Material de Nº.: " & i & " Foi encontrado apenas na tabela Incinerado 2018!", , "Resultado da Verificação"
    Me.Texto1 = Empty

    ElseIf IsNull(txtBusca01) And IsNull(txtBusca02) And IsNull(txtBusca03) Then  ' Não tem em nenhuma tab
    MsgBox "O Material de Nº.: " & i & " Não foi encontrado!", , "Resultado da Verificação"
    Me.Texto1 = Empty
    End If

    Me.Texto1.SetFocus

    Exit_cmvVerificar_Click:
    Exit Sub

    Err_cmvVerificar_Click:
    MsgBox Err.description & "  Campo Vazio ou não é numérico!!!!"
    Resume Exit_cmvVerificar_Click

    End Sub

    Fui mexendo na mensagem até acertar a concatenação do meu modo que até daria para usar.

    Mas vou trocar tudo pela sua que ficou objetiva nas respostas.


    Se não fosse esse forum eu estava ferrado.

    Vocês estão de Parabéns.

    Obrigado.

    Conteúdo patrocinado

    [Resolvido]Como informar na mensagem as buscas que tiveram exito? Empty Re: [Resolvido]Como informar na mensagem as buscas que tiveram exito?

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/8/2019, 13:06