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]Formulário pesquisa clientes em caixa listagem

    Compartilhe

    jp_maximoaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 36
    Registrado : 08/11/2012

    [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  jp_maximoaccess em 22/11/2018, 23:47

    Olá amigos,

    Estou a fazer um base de dados, e fiquei encalhado num formulário de pesquisa de clientes numa caixa de listagem.

    O que tenho é o seguinte:

    1 - Formulário 1, com origem numa consulta de clientes, onde o principal campo é o nº de cliente (Cliente), e os restantes dados do cliente.

    2 - Criei um botão para abrir outro formulário (Formulário 2) de pesquisa dos clientes, onde tenho um campo para introduzir o que pretendo pesquisar de nomes, onde vais fazer a pesquisa numa caixa de listagem que criei, onde aparece 2 colunas, o nº de cliente e o nome, e tudo bem.

    3- O que pretendo é, no formulário 2 que criei para a pesquisa, ao clicar na caixa de listagem no nome que pretendo, gravar o nº cliente (que está na coluna 1 da caixa listagem)  no Formulário 1, no campo (Cliente), para me dar os dados todos referentes ao cliente.

    Já fiz 1001 maneiras, e nada, agora ao clicar na caixa de listagem abre o formulário 1 sem nada.

    O que tenho é o seguinte:

    Private Sub clist_cliente_Click()
    DoCmd.OpenForm "f_cliente", acNormal, "", "[Cliente] = [Forms]![f_cliente pesq].[clist_cliente]", , acNormal
    End Sub

    Agradeço ajuda,
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 366
    Registrado : 05/12/2016

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  caiosouza em 23/11/2018, 11:13

    Tente assim:


    Código:
    Private Sub clist_cliente_Click()
        Dim rs As Object
            DoCmd.OpenForm "f_cliente"
            Set rs = Forms!f_cliente.Recordset.Clone
            rs.FindFirst "[Cliente]=" & Str(Nz(Me.clist_cliente.Collumn(0), 0))
        If Not rs.EOF Then Forms!f_cliente.Bookmark = rs.Bookmark
       
        DoCmd.Close acForm, "SeuFormPesquisa"
    End Sub


    .................................................................................
    A persistência leva ao sucesso!

    jp_maximoaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 36
    Registrado : 08/11/2012

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  jp_maximoaccess em 23/11/2018, 16:32

    Está me a dar "Run-Time Error 13: Type Mismatch"

          rs.FindFirst "[Cliente]=" & Str(Nz(Me.clist_cliente.Column(0), 0))

    o numero em (Me.clist_cliente.Column(0), 0)) , está correcto, mas depois não envia para o campo (Cliente) do formulário.

    Será por o formulário ter origem numa consulta?

    Qual a razão?
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10356
    Registrado : 04/11/2009

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  JPaulo em 23/11/2018, 16:53

    Ola;

    Type Mismatch é erro de você estar a tentar enviar texto como se trata-se de numero.
    Para texto tem de estar entre aspas simples;

    Código:
     rs.FindFirst "[Cliente]='" & Str(Nz(Me.clist_cliente.Column(0), 0)) & "'"

    Ou se for numerico, não deve usar o Str.

    Código:
    rs.FindFirst "[Cliente]=" & Me.clist_cliente.Column(0)


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    Utilize o Sistema de Busca do Fórum...
    102 Códigos VBA Gratuitos...
    Instruções SQL como utilizar...
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 366
    Registrado : 05/12/2016

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  caiosouza em 23/11/2018, 17:28

    Ooops, não tinha testado. Correto Jpaulo.


    Sendo assim, fica:

    Código:
    Private Sub clist_cliente_Click()
        Dim rs As Object
            DoCmd.OpenForm "f_cliente"
            Set rs = Forms!f_cliente.Recordset.Clone
            rs.FindFirst "[Cliente]=" & Nz(Me.clist_cliente.Collumn(0),0)
        If Not rs.EOF Then Forms!f_cliente.Bookmark = rs.Bookmark
        
        DoCmd.Close acForm, "SeuFormPesquisa"
    End Sub


    .................................................................................
    A persistência leva ao sucesso!

    jp_maximoaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 36
    Registrado : 08/11/2012

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  jp_maximoaccess em 23/11/2018, 22:30

    Ainda continua o mesmo erro.
    O nº cliente tem letras, por isso é considerado texto.
    No formulário pesquisa criei uma caixa nova sem nenhuma ligação à consulta, para ver se copiava o texto do nº ou nome, e nada.. sempre o mesmo erro.


    Anexo o exemplo
    Anexos
    Database1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (164 Kb) Baixado 4 vez(es)
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 366
    Registrado : 05/12/2016

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  caiosouza em 24/11/2018, 10:08

    Bom dia!

    Segue:

    Código:
        Dim rs As Object
            DoCmd.OpenForm "f_clientes"
            Set rs = Forms!f_clientes.Recordset.Clone
            rs.FindFirst "[Cliente]='" & Me.clist_cliente.Column(0) & "'"
        If Not rs.EOF Then Forms![f_clientes].Bookmark = rs.Bookmark
       
        DoCmd.Close acForm, "f_clientes pesq"
    Anexos
    Database1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (218 Kb) Baixado 11 vez(es)


    .................................................................................
    A persistência leva ao sucesso!

    jp_maximoaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 36
    Registrado : 08/11/2012

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  jp_maximoaccess em 24/11/2018, 17:47

    Obrigado a todos,
    Resolvido.
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 366
    Registrado : 05/12/2016

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  caiosouza em 24/11/2018, 18:47

    Boa tarde,

    Favor não esquecer de marcar o tópico como resolvido:

    http://www.maximoaccess.com/t860-resolucao-de-topicos


    .................................................................................
    A persistência leva ao sucesso!
    avatar
    vieirasoft
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  vieirasoft em 24/11/2018, 18:54

    Desta vez eu coloco, mas não devem esquecer,

    jp_maximoaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 36
    Registrado : 08/11/2012

    Re: [Resolvido]Formulário pesquisa clientes em caixa listagem

    Mensagem  jp_maximoaccess em 25/11/2018, 16:31

    Eu também iria colocar, mas depois tive de ir fazer outra coisa e esqueci-me de clicar no enviar/resolvido.

    Obrigado,

      Data/hora atual: 18/1/2019, 00:01