MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 247
    Registrado : 23/12/2011

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  Krauss em 25/11/2020, 03:25

    Boa noite galera, tudo certo? Ultimamente tenho pedido bastante ajuda aqui, pois em alguns casos não consigo adaptar os códigos e exemplos já existentes em tópicos semelhantes.

    Tenho um campo txt (desvinculado) de pesquisa chamado cxaPesquisa e nele coloquei a condição de pesquisar tanto pelo código do produto (que tem 5 dígitos), quanto pelo SKU do produto (que tem 13 dígitos). A pesquisa funciona, inclusive me retorna a mensagem de erro quando digito qualquer número que não tenha 5 ou 13 dígitos. Só que tem um porém, quando eu digito um número de 5 ou 13 dígitos que não esteja cadastrado, ele vai para o novo registro.

    Já tentei usar a função: If IsNull(DLookup("[codigoProduto]", "tblProdutos", "[cxaPesquisa]= " & Me.codigoProduto & "")) Then e também tentei usar a condição: If IsNull(Me!skuProduto) Then .. mas não funciona, ele sempre vai para o novo registro.

    Eis o código que estou usando no momento e que preciso que, caso o produto não esteja cadastrado, o sistema dê a mensagem de erro.

    Private Sub cxaPesquisa_AfterUpdate()
     
      Me.cxaPesquisa.AutoTab = False  
      If Len(cxaPesquisa.Text) = 5 Then
         DoCmd.ApplyFilter , "[codigoProduto] = '" & Me![cxaPesquisa] & "'"
         Me.cxaPesquisa = ""
      ElseIf Len(cxaPesquisa.Text) = 13 Then
         DoCmd.ApplyFilter , "[skuProduto] = '" & Me![cxaPesquisa] & "'"
         Me.cxaPesquisa = ""
      Else
         MsgBox "Código inválido.", vbCritical, "Sispac"
         Me.cxaPesquisa = ""
         Me.cxaPesquisa.SetFocus
      Exit Sub
      End If
      Exit Sub
         
    End Sub


    Última edição por Krauss em 25/11/2020, 03:57, editado 1 vez(es)


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1496
    Registrado : 23/01/2018

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  crysostomo em 25/11/2020, 03:35

    Boa noite , seus campos estão desvinculados? se tive vinculados ele vai para o campo seguinte. Caso for isso desabilite- a , mas uma hora você vai precisar dela em outros casos.


    Renomeie seu titulo para que fique mais claro para todos
    Código:
    If KeyCode = 9 Then
    KeyCode = 0
    End If


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 247
    Registrado : 23/12/2011

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  Krauss em 25/11/2020, 03:55

    crysostomo, blz?

    Somente a cxaPesquisa está desvinculada, tanto o formulário quando os campos estão vinculados à tblProdutos.

    Eu não entendi bem o que vc quis dizer...


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1496
    Registrado : 23/01/2018

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  crysostomo em 25/11/2020, 04:00

    Se a caixa de pesquisa está desvirgulada , como ele pula para outro registro, estranho.
    nesse caso seria é desativa-la, mas no outros forms você precisará dela


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 247
    Registrado : 23/12/2011

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  Krauss em 25/11/2020, 06:55

    crysostomo, segue BD resumido.
    Anexos
    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada AttachmentBD_1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (83 Kb) Baixado 11 vez(es)


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 247
    Registrado : 23/12/2011

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  Krauss em 25/11/2020, 19:39

    Boa tarde! Graças ao crysostomo ontem, deu certo fazer com que o sistema filtrasse o registro após inserir os 5 caracteres do código do produto. Seguindo meu projeto, tentei incrementar para que, caso o código digitado na cxaPesquisa (textbox desacoplada que faço a pesquisa) não esteja cadastrado, o sistema emite uma msg de erro, cancela o evento e continua no último registro pesquisado. Só que sempre que digito um código não cadastrado ou que seja diferente de 5 caracteres, ele vai para a linha vazia da tabela, aquela que fica depois do último registro.

    Eis o código que coloquei no evento "Ao alterar".. coloquei nesse evento senão ele não sai do campo sem ter que teclar 'Enter'.

      If Len(Me.cxaPesquisa.Text) = 5 Then
         Me.campoNulo.SetFocus
         DoCmd.ApplyFilter , "[codigoProduto] = '" & Me![cxaPesquisa] & "'"
        If (IsNull(DLookup("[codigoProduto]", "tblProdutos", "[codigoProduto] ='" & Me!cxaPesquisa & "'"))) Then
         MsgBox "Código inválido.", vbCritical, "Sispac"
      Else
         Cancel = True
      End If
     End If


    Alguém pode me ajudar?


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1496
    Registrado : 23/01/2018

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  crysostomo em 25/11/2020, 20:07

    Deu no mesmo Bruno.
    estou mexendo nele nesse instantes coloquei outra ação para resolver.


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 247
    Registrado : 23/12/2011

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  Krauss em 25/11/2020, 21:17

    crysostomo, agora infelizmente (mas infelizmente mesmo) não poderei entrar.. se vc puder um pouco mais tarde estarei à disposição.

    Até a gente conseguir resolver isso, fiz uma gambiarra aqui rs... coloquei que se o código não tiver cadastrado, ele fecha o form e abre em seguida.. pelo menos assim não fica indo para o registro vazio... olha o código com a gambiarra provisória...

    If Len(Nz(Me.cxaPesquisa.Text)) = 13 Then
    Me.btEditar.SetFocus
    DoCmd.ApplyFilter , "[skuProduto] = '" & Me![cxaPesquisa] & "'"
    Me.cxaPesquisa.SetFocus
    If (IsNull(DLookup("[skuProduto]", "tblProdutos", "[skuProduto] ='" & Me!cxaPesquisa & "'"))) Then
    MsgBox "Código inválido.", vbCritical, "Sispac"
    DoCmd.Close
    DoCmd.OpenForm "formAdmProd", acNormal
    Else
    Cancel = True
    End If
    End If


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1496
    Registrado : 23/01/2018

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  crysostomo em 25/11/2020, 22:52

    Problema resolvido, uma açâo increscentada, pois se você tiver 2 if len ele só vai ler o primeiro. conforme está seu código.

    Como você me permitiu se puder ver outros código.
    Então acrescentei uma cbo que vai abrir a caixa de pesquisa tanto para o SKU ou para Cód do Produto, neles a função Len vai se encaixar tranquilo a parti que você colocar o código o filtro atualizará.
    Anexos
    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada AttachmentOpção de filtro.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (129 Kb) Baixado 19 vez(es)


    Última edição por crysostomo em 26/11/2020, 03:09, editado 1 vez(es)


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 247
    Registrado : 23/12/2011

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  Krauss em 26/11/2020, 00:42

    Lembra a questão dele ficar indo para o registro vazio (novo) ao digitar um código que não está cadastrado? Arrumei uma solução provisória: inseri o comando de "mostrar todos os registros" (DoCmd.ShowAllRecords) -que dá no mesmo que o de remover os filtros- Pelo menos, provisoriamente ele não vai ficar indo para aquele registro chato. E funcionou porque quando dá erro de código não cadastrado, ele emite a MsgBox, remove o filtro e atualiza o form, sendo assim ele vai para o primeiro registro. Não é o ideal, mas vai quebrar um galho até eu conseguir algo mais funcional. Vou juntar com sua ideia da alça e ir rodando assim por enquanto.

    Veja...

    If Len(Nz(Me.cxaPesquisa.Text)) = 13 Then
    Me.btEditar.SetFocus
    DoCmd.ApplyFilter , "[skuProduto] = '" & Me![cxaPesquisa] & "'"
    Me.cxaPesquisa.SetFocus
    If (IsNull(DLookup("[skuProduto]", "tblProdutos", "[skuProduto] ='" & Me!cxaPesquisa & "'"))) Then
    MsgBox "Código não consta na base de dados.", vbCritical, "Sispac"
    Me.cxaPesquisa = ""
    DoCmd.ShowAllRecords 'mostrar todos os registros
    Me.Undo
    Me.Form.Requery
    Else
    Cancel = True
    End If
    End If


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"
    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1496
    Registrado : 23/01/2018

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  crysostomo em 26/11/2020, 01:13

    O exemplo que enviei faz isso.
    Quando não está cadastrado a função para por ali.
    Só incrementar um msgbox


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    Krauss
    Krauss
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 247
    Registrado : 23/12/2011

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  Krauss em 26/11/2020, 02:55

    Sem palavras para agradecer cara. E quando meu BD tiver mais completo, se vc não se importar, vou querer saber mais sobre aquele esquema que vc fez com o BD da igreja. Achei muito massa a abertura/execução dele.

    Muito grato pela ajuda!!


    .................................................................................
    Trabalho com Access 2013

    "A dúvida é o princípio da sabedoria"

    crysostomo gosta desta mensagem

    crysostomo
    crysostomo
    VIP
    VIP

    Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1496
    Registrado : 23/01/2018

    [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada Empty Re: [Resolvido]Pesquisa com 2 opções de códigos via textbox desvinculada

    Mensagem  crysostomo em 26/11/2020, 03:06

    Ok. Com as horas tranquilas, voltaremos a sala.


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.

      Data/hora atual: 25/1/2021, 04:27