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]Caixa de Listagem

    Compartilhe

    Edgar Massa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/01/2017

    [Resolvido]Caixa de Listagem

    Mensagem  Edgar Massa em 8/1/2018, 17:23

    Boa tarde senhores

    Tenho um formulário onde tenho uma caixa de listagem fazendo uma consulta de impressoras.

    E neste mesmo formulário, tenho caixas de texto, sendo elas: Requisitos de Hard, Requisitos de Aliment, Requisitos de Ambiente e por ai vai.

    Explicando a estrutura e relacionamento do meu banco, tenho uma tabela;

    Impressoras
    Codigo
    Modelo
    Serie
    Linha

    Tabela Requisitos de Impressoras
    Codigo
    Codigo_Impressora
    Requisito_Hard
    Requisito_Aliment
    ...

    Como faço para clicar numa impressora da caixa de listagem e os requisitos registrados dela apareçam nos campos ?
    avatar
    José Machado
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 101
    Registrado : 13/09/2016

    Re: [Resolvido]Caixa de Listagem

    Mensagem  José Machado em 8/1/2018, 18:06

    Amigo

    No Editor VBA crie um método Chamando Preecher_txt, ex:

    Sub Preencher_txt()
    dim conexao As DAO.Database
    dim result_set As DAO.Recordset
    dim query As String

    query = "SELECT * FROM a tabela impressora LEFT JOIN a tabela Requisitos WHERE Requisitos de Impressoras.Codigo_Impressora = "& me.lista_impressora.column(0) &";"

    Set conexao = CurrentDb
    Set result_set = conexao .OpenRecordset(query)

    seu_campo_de_texto = result_set("campo_da_tabela")
    seu_campo_de_texto = result_set("campo_da_tabela")

    Set result_set = Nothing
    Set conexao = Nothing

    End Sub


    Depois é só chamar o metodo no evento do clique da lista

    Private Sub sua_lista_Click()
    If Me.sua_lista.ListCount > -1 Then
    Preencher_txt
    End If

    End Sub

    Edgar Massa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/01/2017

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Edgar Massa em 9/1/2018, 00:59

    Cara, não deu certo

    Tentei desta forma

    Public Sub ConsultarRequisitos()
    Dim conexao As DAO.Database
    Dim result_set As DAO.Recordset
    Dim query As String

    query = "SELECT TB_IMPRESSORA.* " & _
    "FROM TB_IMPRESSORA INNER JOIN TB_REQUISITOS_DE_IMPRESSORA ON " & _
    "TB_IMPRESSORA.Código = TB_REQUISITOS_DE_IMPRESSORA.[Código da Impressora] " & _
    "WHERE (((TB_REQUISITOS_DE_IMPRESSORA.[Código da Impressora])= " & _
    "[forms]![frm_Consultar_Requisitos]![lst_RequisitosImpressoras])); "

    Set conexao = CurrentDb
    Set result_set = conexao.OpenRecordset(query)

    Requisito_de_Hardware = result_set("Requisito de Hardware")
    End Sub


    Aparece "Parâmetros Insuficientes. Eram esperados 1."

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Noobezinho em 9/1/2018, 09:53

    Olá Edgar

    Se entendi, ao clicar em uma impressora numa listbox(caixa de listagem) , o aplicativo procura na tabela de requisitos os dados para essa impressora e coloca em outros campos (caixa de texto).

    Se for isso, por que não colocar esses dados numa tabela somente, já que dados são únicos para cada impressora?

    Ou seja, una as duas tabelas.

    [ ]"s

    Edgar Massa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/01/2017

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Edgar Massa em 9/1/2018, 14:01

    Noobezinho boa tarde

    Acostumado mexer só com banco, modelei desta forma, mais achei até melhor assim se não a tabela de impressoras (penso eu), ia ficar muito poluída, banco não normalizado e etc.. ! rs

    E nessa altura do campeonato, não da pra mexer na estrutura, se não vou ter um pouco de trabalho desnecessário!

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Noobezinho em 9/1/2018, 14:23

    Bem se entendi, experimente isso:

    Faça uma consulta adicionando as duas tabelas.

    Utilize essa consulta como origem da linha da listbox

    Como deseja que apareçam os dados dos requisitos em textboxes no mesmo formulário,

    no evento Ao clicar de cada campo que ficar visivel na listbox, coloque:

    =Minhafunção()

    crie a função para esses código, por exemplo: Minhafunção
    e coloque:
    Me.Requisitos de Hard = me.listbox.Column(1)
    Me. Requisitos de Aliment =me.listbox.Column(1)
    Me. Requisitos de Ambiente=me.listbox.Column(1)
    Verifique cada campo em que ordem está na listbox começando com 0 para a primeira coluna e coloque no parênteses de column().

    Assim quando clicar em qualquer campo da linha do registro, ira executar a função e preencher os campos do formulário.

    Acho que é isso que deseja.

    [ ]'s

    Edgar Massa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/01/2017

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Edgar Massa em 9/1/2018, 19:51

    Este método só funciona adicionando a coluna do requisito na caixa de listagem, e não é essa minha intenção.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Noobezinho em 9/1/2018, 19:53

    Lembre-se que pode ocultar colunas na listbox.

    Edgar Massa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/01/2017

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Edgar Massa em 9/1/2018, 20:25

    Não funcionou Noobezinho

    Mesmo ocultando, o código funciona se eu deixa a coluna lá na list

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Noobezinho em 9/1/2018, 20:26

    A coluna deve ficar na listbox, mas oculta e deve funfar.


    Edgar Massa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/01/2017

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Edgar Massa em 9/1/2018, 20:50

    Desculpe, acho que devo ter esquecido isto, pra deixa então a coluna oculta como que faz?

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Noobezinho em 9/1/2018, 21:01

    Na folha de propriedades da listbox, na propriedade número de colunas, coloque a quantidade de colunas existentes.
    Logo abaixo, na propriedade Largura das colunas, coloque a largura desejada de cada coluna, para ocultar uma coluna coloque 0.

    Exemplo:

    Numa lista com 5 colunas, sendo que a terceira ficará oculta:

    1cm;2,5cm;0;1cm;1cm

    É isso.

    [ ]'s

    Edgar Massa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/01/2017

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Edgar Massa em 9/1/2018, 23:41

    Consegui meu querido

    Só ainda fico um problema, tenho um campo de busca que está assim
    Private Sub txt_Consultar_Change()
    Dim Busca As String
    Busca = Me.txt_Consultar.Text

    Me.lst_RequisitosImpressoras.RowSource = "SELECT TB_IMPRESSORA.* " & _
    "FROM TB_IMPRESSORA WHERE TB_IMPRESSORA.Código Like """ & Chr(42) & TodosAcentos(Me.txt_Consultar.Text) & Chr(42) & """" & _
    "OR TB_IMPRESSORA.[Série da Impressora] Like """ & Chr(42) & TodosAcentos(Me.txt_Consultar.Text) & Chr(42) & """" & _
    "OR TB_IMPRESSORA.[Modelo da Impressora] Like """ & Chr(42) & TodosAcentos(Me.txt_Consultar.Text) & Chr(42) & """" & _
    "OR TB_IMPRESSORA.[Tipo de Impressora] Like """ & Chr(42) & TodosAcentos(Me.txt_Consultar.Text) & Chr(42) & """" & _
    "OR TB_IMPRESSORA.[Linha de Impressora] Like """ & Chr(42) & TodosAcentos(Me.txt_Consultar.Text) & Chr(42) & """" & _
    "ORDER BY TB_IMPRESSORA.[Modelo da Impressora];"


    e ao clicar depois que ele faz o filtro, agora nao aparece os requisitos, o que seria ?

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Noobezinho em 10/1/2018, 09:29

    Edgar

    Verifique tua listbox, faça um pente fino nela, para ver se está tudo certo.

    Quanto a esse código que passou, ele está correto, pois fui eu quem o fez, para

    uma listbox colorida nesse [Você precisa estar registrado e conectado para ver este link.]

    Edgar Massa
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 08/01/2017

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Edgar Massa em 11/1/2018, 12:23

    Consegui,

    Fiz da seguinte forma, ao clicar no caixa de listagem, rowsource consulta novamente, e os campos são preenchidos com o registro que eu cliquei

    Me.lst_RequisitosImpressoras.RowSource = "Query_ConsultaRequisitosImpressora"
    Me.txt_Req_Hard = Me.lst_RequisitosImpressoras.Column(5)
    Me.txt_Req_Soft = Me.lst_RequisitosImpressoras.Column(6)
    Me.txt_Req_Alim = Me.lst_RequisitosImpressoras.Column(7)
    Me.txt_Req_Ambi = Me.lst_RequisitosImpressoras.Column(Cool
    Me.txt_Req_Refr = Me.lst_RequisitosImpressoras.Column(9)


    Valewwww cara, muito bom !

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Caixa de Listagem

    Mensagem  Noobezinho em 11/1/2018, 12:27

    Legal que teu certo !

    Boa sorte !

      Data/hora atual: 13/12/2018, 18:26