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]Formulario Pesquisa e cadastra se não existir

    avatar
    Roxo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 10/07/2012

    [Resolvido]Formulario Pesquisa e cadastra se não existir Empty [Resolvido]Formulario Pesquisa e cadastra se não existir

    Mensagem  Roxo 29/7/2016, 20:42

    Boa tarde, Procurei no site mas não achei solução para minha duvida, talvez não tenha procurado da maneira correta
    Tenho um form, frm_Pedidos vinculado a uma tabela, tbl_Pedidos
    No form frm_Pedidos tenho um campo no cabeçalho Txt_PesquisaPedido, no corpo do form tenho o campo Txt_Pedido
    Gostaria de ao digitar um numero no campo Txt_PesquisaPedido, ao sair se aquele numero de pedido já existir, apresentar todos os dados deste pedido no formulário.
    Se o numero digitado não existir
    Mensagem, "pedido não cadastrado, deseja cadastrar agora?" sim ou não
    Se optar pelo sim, abre novo lançamento com o campo Txt_Pedido já preenchido com o numero pesquisado.
    Se optar pelo não, limpa o campo Txt_PesquisaPedido e não faz nada

    Espero ajuda dos mestres
    Desde já agradeço

    Roxo
    avatar
    merito
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 11/10/2012

    [Resolvido]Formulario Pesquisa e cadastra se não existir Empty Re: [Resolvido]Formulario Pesquisa e cadastra se não existir

    Mensagem  merito 29/7/2016, 21:23

    Olá

    (Estou usando um exemplo de um programa meu. Adapte os nomes de campos e tabela à sua necessidade.)

    Seu campo "localizar" deve ter como Origem da Linha algo assim:
    SELECT CodRep, NomeRep FROM tab_Agen ORDER BY NomeRep;

    Então, no evento Se não estiver na lista, o código será como este:

    Private Sub FindAgen_NotInList(NewData As String, Response As Integer)
    On Error GoTo trato
    Response = acDataErrContinue
    Me.FindAgen.Undo
    MsgBox "O item:" & vbNewLine & vbNewLine & NewData & vbNewLine & vbNewLine & _
    "não consta no cadastro." & vbNewLine & _
    "Digite ou clique em um nome da lista.", vbOKOnly + vbInformation, "Localizar"
    Me.NomeRep.SetFocus
    Exit Sub
    trato: MsgBox "Código: " & Form.Caption & " / FindAgen_NotInList", vbOKOnly + vbInformation, "Avise o programador"
    End Sub


    E no evento Após atualizar, o código será algo assim:

    Private Sub FindAgen_AfterUpdate()
    On Error GoTo trato
    If Not IsNull(Me.FindAgen) Then
    Dim rs As Object
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[CodRep] = " & Str(Me![FindAgen])
    Me.Bookmark = rs.Bookmark
    Set rs = Nothing
    End If
    Me.NomeRep.SetFocus
    Exit Sub
    trato: MsgBox "Código: " & Form.Caption & " / FindAgen_AfterUpdate", vbOKOnly + vbInformation, "Avise o programador"
    End Sub


    Se o registro não existir, basta incluir no evento Se não estiver na lista um código para ir para um novo registro, ou deixar para o operador a ação de clicar num botão equivalente (que provavelmente existe no seu formulário.
    (Eu faço com que meus forms já abram em um novo registro.)
    avatar
    Roxo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 10/07/2012

    [Resolvido]Formulario Pesquisa e cadastra se não existir Empty Re: [Resolvido]Formulario Pesquisa e cadastra se não existir

    Mensagem  Roxo 29/7/2016, 23:49

    Merito, valeu pela dica, mas gostaria de fazer funcionar com um campo normal, e não uma combo localizar, até porque o auto preenchimento da combo pode induzir ao erro do operador. além disso gostaria da opção de começar um novo registro no caso do pedido não estar cadastrado,

    Mesmo assim obrigado pelo retorno à minha solicitação

    Roxo
    avatar
    merito
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 39
    Registrado : 11/10/2012

    [Resolvido]Formulario Pesquisa e cadastra se não existir Empty Re: [Resolvido]Formulario Pesquisa e cadastra se não existir

    Mensagem  merito 30/7/2016, 21:12

    Obs: uma combo facilita ao usuário verificar se o número já existe, e a propriedade AutoExpandir pode ser configurada para Não.

    Numa TextBox pode usar a função DLookup para verificar se o valor digitado existe na tabela.

    If IsNull(DLookup("Numero", "SuaTabela", "Numero = Me.Txt_PesquisaPedido)) Then
    '... avisa que não existe e
    '... exibe msgbox perguntando se quer cadastrar agora;
    '... se confirmar, vai para um novo registro e insere o número pesquisado (NewData ou =Txt_PesquisaPedido)
    Else
    '... vai para o registro com o número informado
    End If
    avatar
    Roxo
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 10/07/2012

    [Resolvido]Formulario Pesquisa e cadastra se não existir Empty Re: [Resolvido]Formulario Pesquisa e cadastra se não existir

    Mensagem  Roxo 1/8/2016, 00:36

    Merito, muito obrigado pela ajuda
    Acabei resolvendo com a ajuda do Avelino
    Abaixo como ficou, pode servir para outra pessoa

    Private Sub TxtPesquisa_Pedido_AfterUpdate()
    ' Código By Avelino Sampaio

    If DCount("*", "tbl_Pedidos", "TxtPedido = " & Me!TxtPesquisa_Pedido) > 0 Then
    'O código existe na tabela
    Me.Filter = "TxtPedido = " & Me!TxtPesquisa_Pedido
    Me.FilterOn = True
    Me.TxtPesquisa_Pedido = " "
    Me.Combo_Lojista.SetFocus
    Else
    ' O código não existe na tabela
    If MsgBox("Pedido não cadastrado, deseja cadastrar agora?", vbQuestion + vbYesNo, "Confirmação") = vbNo Then
    ' Não autorizado
    Me.TxtPesquisa_Pedido = " "
    Me.Combo_Lojista.SetFocus
    Exit Sub
    Else
    ' Se Autorizado cadastrar o Pedido
    DoCmd.GoToRecord , , acNewRec
    Me!TxtPedido = Me!TxtPesquisa_Pedido
    Me.TxtPesquisa_Pedido = " "
    Me.Combo_Lojista.SetFocus
    End If
    End If
    End Sub


    Conteúdo patrocinado


    [Resolvido]Formulario Pesquisa e cadastra se não existir Empty Re: [Resolvido]Formulario Pesquisa e cadastra se não existir

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/5/2024, 05:25