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

    Trazer informação tabela para form

    Compartilhe

    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 204
    Registrado : 15/05/2013

    Trazer informação tabela para form

    Mensagem  maguim em Ter 25 Jul 2017, 13:05

    Bom dia amigos !

    Uma duvida!


    tenho uma tabela com todos os dados e tenho um formulário de mascara para trazer esse dados.

    Minha Duvida é...


    Tenho filtro onde me tras o resultado do estou procurando, como poderia trazer informação da tabela pro formulário mascara ?


    tipo assim Forms!PAINEL!nmprest = Me.numeroprest (este é de formulario a formulario)

    Queria saber de tabela pra formulário sem estar acoplado!


    abraços


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Trazer informação tabela para form

    Mensagem  ronaldojr1 em Qua 26 Jul 2017, 13:24

    bom dia
    vc pode usar a função dlookup

    da uma olhada nesse link que explica como usar

    [Você precisa estar registrado e conectado para ver este link.]

    agora se vc precisar usar em varios campo compensa vc da uma lida nesse link do Avelino
    que ele fala dos problemas de usar muitas vezes as funções de agreção(Dlookup, Dcount,Dlast) e como contorna-los

    [Você precisa estar registrado e conectado para ver este link.]


    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 204
    Registrado : 15/05/2013

    Re: Trazer informação tabela para form

    Mensagem  maguim em Qua 26 Jul 2017, 13:45

    eu pensei nisso ontem,

    porem o dlook ele processa de mais o formulário, a ideia seria...

    algo direto do mysql pro formulário, conhece algo?


    acho que provável eu teria que chamar a função strSQL pro formulário nao ?


    eu consigo fazer um dlookup com tabelas vinculadas ao mysql ?


    abraços


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: Trazer informação tabela para form

    Mensagem  ronaldojr1 em Qua 26 Jul 2017, 14:26

    ai e uma boa pergunta chefe, nao sei se o dlookup funciona no mysql, mas enquanto eu pesquisava sua duvida eu vi um comentario dizendo que funciona
    so nao sei como.
    o jeito que eu faço para resolver esse tipo de necessidade talvez possa te ajudar, eu faço assim nos meus formulários:

    para vc entender vou ter q mostrar uma estrutura basica de tabela.

    tabela 1(Cliente)
    cdCliente - numeração automatica
    nomeCliente - texto
    Rg - texto
    cpf - texto
    ...

    tabela 2(venda)
    cdVenda - numeração automatica
    cdCliente - numero
    valorVenda - moeda
    ...

    no formulario de venda
    1 - eu vou ter os campos normalmente, mas a magica esta no campo cdCliente
    ele eu converto para comboBox(botao direito > alterar para > caixa de combinação).

    2 - na opção "Fonte de Controle"(propriedades > guia dados) eu faço uma consulta sql. nesse exemplo seria assim:
    select cdCliente, nmCliente, rg, cpf from Cliente order by nmCliente
    com isso seu campo cdCliente tera 4 colunas, o index começa com 0, ou seja, cdcliente e o index 0, nmCliente é o index 1, e assim sucessivamente.

    3 - essa parte e a mais importante, na opção "Coluna acoplada"(propriedades > guia dados)
    tem que ser informado de qual coluna vc deseja guardar a informação. nesse caso e a primeira coluna(cdCliente).
    para o cliente ira mostrar o nome do cliente, mas para sua tabela sera guardado o valor do id do cliente. legal né
    então nesse campo(Coluna Acoplada) digite 1

    4 - na opção "Número de Colunas"(Propriedades > guia Formato) informe a quantidade de colunas da nossa consulta, no nosso caso e 4.

    5 - na opção "Largura das colunas"(Propriedades > guia Formato) informe o tamanho de cada coluna do combobox separado por ";"
    para o usuario final seria interessante ele apenas ver o nome do cliente, pq nesse caso ele nao precisa ver id, cpf e rg na combobox,
    esses valores pode ser salvos de outra forma que irei mostrar mais abaixo. nesse caso a largura dos campos seria assim:
    0;5;0;0

    resgatando o restante dos campos:
    vamos supor que vc tem o campo rg(esse campo nao faz parte da tabela venda, por tanto ele e um campo não acoplado) do formulario venda.

    vc pode colocar o seguinte codigo no evento apos atualizar da combobox que acabamos de criar:
    Código:

    if not isnull(cdCliente) then
      rg = cdCliente.Column(2) '2 e o indice do campo na consulta que criamos no passo 1
    else
      rg = ""
    endif


    issso funciona bem para tabelas relacionadas, agora se vc quer um valor de uma tabela que tem nada a ver com as outras, eu uso uma função
    que criei usando a mesma ideia do dlookup.

    Código:
    Function getValorTabela(nmTabela As String, nmCampo As String, criterio As String) 'nmCampo e o nome do campo que vc deseja pegar o valor
     
    Dim rs As Recordset

    Set rs = CurrentDb().OpenRecordset("SELECT " & nmCampo & " from " & nmTabela & " where " & criterio)

    'verifica se tem dados
    If rs.RecordCount > 0 Then
        getValorTabela = rs.Fields(nmCampo)
    Else
        getValorTabela = Null
    End If
    Set rs = Nothing
    End Function

    'para usar no nosso caso para pegar o cpf
    cpf = getValorTabela("Cliente","cpf","cdCliente = 2"





      Data/hora atual: Sab 18 Nov 2017, 13:49