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


+3
chsestrem
criquio
Jr.Wano
7 participantes

    [Resolvido]Popular Form.Desacoplado

    avatar
    Jr.Wano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 29/01/2010

    [Resolvido]Popular Form.Desacoplado Empty [Resolvido]Popular Form.Desacoplado

    Mensagem  Jr.Wano 6/5/2011, 22:50

    Usando o DAO.Recordset, como popular um formulário contínuo desacoplado, com os registros da tabela ???

    Mais uma vez recorro aos membros fórum, estou começando com formulários desacoplados e confesso que está dificil.

    Abraços,

    avatar
    Convidad
    Convidado


    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Convidad 7/5/2011, 00:26

    http://maximoaccess.forumeiros.com/t268-formulario-desvinculado

    http://maximoaccess.forumeiros.com/t1004-resolvidonavegacao-em-formulario-desacoplado-em-registros-por-recordset
    avatar
    Jr.Wano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 29/01/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Jr.Wano 7/5/2011, 16:58

    Ricardo,

    Os exemplos que me passou foram:

    1) Para popular Formulário MODO Simples
    2) Para navegar entre os registros de um formulário

    O que preciso é como popular um Formulário MODO Continuo ou folha de dados.


    Abraços,
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  criquio 7/5/2011, 19:07

    Vou lhe deixar uma dica que talvez possa ajudar: olhe em um formulário acoplado, como está a "Fonte de registro" na guia "Dados". Talvez lhe ajude a escrever a sintaxe que necessitas.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Jr.Wano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 29/01/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Jr.Wano 7/5/2011, 19:21

    Dim rs2 As DAO.Recordset
    Set rs2 = CurrentDb.OpenRecordset("SELECT cdTit, mVlrE FROM tb5FlxA")
    Do While Not rs2.EOF
    cdTit = rs2!cdTit
    mVlrE = rs2!mVlrE
    rs2.MoveNext
    Loop
    rs2.Close
    Set rs2 = Nothing

    Essa rotina faz o Loop pelos registros da tabela e joga no formulário.
    O que acontece é que joga SEMPRE no primeiro registro do Form.
    Preciso que jogue o primeiro registro da tabela no primeiro registro do Form., o segundo da tabela no segundo do Form., e assim sucessivamente.

    Não tô conseguindo...

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  criquio 7/5/2011, 20:21

    Uma forma de se fazer isso pode ser colocando no evento "Ao carregar" do formulário:


    Me.RecordSource = "SELECT [Tabela1].[Código], [Tabela1].[Nome], [Tabela1].[Sobrenome] FROM [Tabela1] ORDER BY [Código], [Nome];"

    E na origem dos campos você coloca os nomes dos campos das tabelas.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Jr.Wano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 29/01/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Jr.Wano 7/5/2011, 20:27

    Criquio,

    Com o RecordSource a Tabela fica aberta e é justamente isso que preciso evitar, com o Formulário desvinculado a tabela fica livre.
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  chsestrem 10/5/2011, 18:47

    Boa Tarde Walter,

    Acredito que o topico que você solicitou seja este.

    Hoje em dia quando preciso apresentar um formulario em forma de Lista eu uso o controle

    ListView do Visual Basic.

    Estou em viagem mas vou disponibilizar um exemplo de um listView desacoplado usando

    DAO.

    Marque no seu projeto a Referência "Microsoft Windows Common Controls 6.0(SP6)"

    Altere o caminho do Banco de Dados no modulo do projeto, e altere o nome
    da tabela no evento Load do Formulário.

    Link

    Para saber mais sobre as propriedades deste controle, procure a
    documentação no site do Macoratti, tem muita coisa boa lá Valeu?

    Sds,


    .................................................................................
    Charles Sestrem
    http://www.vbabit.com.br
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Alexandre Neves 10/5/2011, 20:32

    Boa noite, Jr.Wano

    Eu criaria uma tabela a partir do seu código e colocava-a como origem do formulário.
    Cumprimentos,
    avatar
    Jr.Wano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 29/01/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Jr.Wano 11/5/2011, 16:53

    Charles,

    O tópico é esse mesmo, agradeço pela disponibilidade.

    Baixei o exemplo de ListView e vou estuda-lo (é o exemplo mais enxuto que já tinha visto).
    Mas, minha necessidade é popular um Formulário contínuo desacoplado com os registros da tabela usando DAO:

    Dim rs2 As DAO.Recordset
    Set rs2 = CurrentDb.OpenRecordset("SELECT cdTit, mVlrE FROM tb5FlxA")
    Do While Not rs2.EOF
    'AQUI DEFINE OS REGISTROS DA TABELA NO FORMULÁRIO
    cdTit = rs2!cdTit
    mVlrE = rs2!mVlrE

    'O QUE ACONTECE: Faz o laço pelos registros da tabela, e joga um em cima do outro no primeiro registro do formulário.
    'O QUE PRECISO É:
    'O PRIMEIRO registro da tabela no PRIMEIRO registro do Formulário
    'O SEGUNDO ... no SEGUNDO ..., e assim sucessivamente


    rs2.MoveNext
    Loop
    rs2.Close
    Set rs2 = Nothing


    avatar
    Jr.Wano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 29/01/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Jr.Wano 11/5/2011, 17:05

    Alexandre,

    Realmente, criar uma tabela temp seria uma alternativa, vou usa-la se todos as alternativas de fazer com o DAO se esgotarem.

    Por enquanto, continuo tentando...

    Se possível, veja o código que postei, o que falta nele é ir para o próximo (novo) registro do FORMULÁRIO, após cada laço pelo registro da TABELA.


    Abraços,
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Alexandre Neves 11/5/2011, 21:12

    Boa noite, Jr.Wano

    Eu quase não utilizo sub-formulários.
    Pode criar tabela TdfTemp e utilizar essa tabela como origem do sub-formuário

    'criar tabela TdfTemp
    CurrentDb.Execute "INSERT INTO TblTemp SELECT cdTit, mVlrE FROM tb5FlxA"
    Cumprimentos,
    Wandelson
    Wandelson
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 08/07/2011

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Wandelson 8/7/2011, 16:08

    Galera, tenho um exemplo bem simples e prático onde o formulário é populado a partir de uma conexão via DAO.
    Ele pega o caminho atribuído à tabela vinculada para acessar as informações.
    Acho que vai te ajudar.

    Private Sub Form_Open(Cancel As Integer)
    Dim cn As ADODB.Connection
    Dim Rs As ADODB.Recordset

    'Use the ADO connection that Access uses 'Use a ligação ADO que o Access utiliza
    Set cn = CurrentProject.AccessConnection

    'Create an instance of the ADO Recordset class, and 'Criar uma instância da classe Recordset ADO, e
    'set its properties 'Definir suas propriedades
    Set Rs = New ADODB.Recordset
    With Rs
    Set .ActiveConnection = cn
    .Source = "SELECT * FROM TblFuncionarios"
    .LockType = adLockOptimistic
    .CursorType = adOpenKeyset
    .Open
    End With

    'Set the form's Recordset property to the ADO recordset "Defina a propriedade Recordset do formulário para o conjunto de registros ADO
    Set Me.Recordset = Rs

    Set Rs = Nothing
    Set cn = Nothing
    End Sub

    Encontrado em: http://support.microsoft.com/kb/281998

    Para que a caixa de texto exiba os dados é só atribuir à propriedade "Fonte do Controle" o nome do campo.

    Abrç!
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  vieirasoft 8/7/2011, 16:45

    Obrigado pelo retorno. O fórum agradece.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  criquio 8/7/2011, 17:19

    Pode ser feito assim tambem:

    Dim db As Database, rs As RecordSet, strSql As String

    Set db = CurrentDb
    strSql = "SELECT * FROM NomeDaTabela"
    Set rs = db.OpenRecordset(strSql)

    Me.Campo1DoForm.ControlSource = "Campo1DaTabela"
    Me.Campo2DoForm.ControlSource = "Campo2DaTabela"
    Me.Campo3DoForm.ControlSource = "Campo3DaTabela"

    rs.Close
    db.Close
    Set rs = Nothing
    Set db = Nothing


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Motar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 150
    Registrado : 03/08/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Motar 15/11/2013, 17:10

    Viva
    O problema de usar este código é que os filtros do access não funcionam

    Private Sub Form_Open(Cancel As Integer)
    Dim cn As ADODB.Connection
    Dim Rs As ADODB.Recordset

    'Use the ADO connection that Access uses 'Use a ligação ADO que o Access utiliza
    Set cn = CurrentProject.AccessConnection

    'Create an instance of the ADO Recordset class, and 'Criar uma instância da classe Recordset ADO, e
    'set its properties 'Definir suas propriedades
    Set Rs = New ADODB.Recordset
    With Rs
    Set .ActiveConnection = cn
    .Source = "SELECT * FROM TblFuncionarios"
    .LockType = adLockOptimistic
    .CursorType = adOpenKeyset
    .Open
    End With

    'Set the form's Recordset property to the ADO recordset "Defina a propriedade Recordset do formulário para o conjunto de registros ADO
    Set Me.Recordset = Rs

    Set Rs = Nothing
    Set cn = Nothing
    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Alexandre Neves 15/11/2013, 19:26

    Boa noite,
    Coloque o filtro na cláusula WHERE
    .Source = "SELECT * FROM TblFuncionarios WHERE ..."


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Motar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 150
    Registrado : 03/08/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Motar 15/11/2013, 20:24

    Boa noite Alexandre
    Colocar na cláusula where não é viável porque o filtro varia de acordo com as necessidades do utilizador e que pode ter vários filtros em simultaneo das diferentes colunas.
    Uma solução que me surge é criar uma tabela offline via ado com dados do sql server mas ainda não consegui por a funcionar.
    Tenho um exemplo com código semelhante ao referido e funcionava com filtros no 2007, desde que os PCs foram atualizados para o win7 e office 2010 deixou de funcionar
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  criquio 15/11/2013, 20:45

    O filtro pode ser manipulado dinamicamente, como por exemplo acrescentando os campos selecionados em uma listbox que contenha a lista dos campos e/ ou acrescentando os valores de campos de pesquisa.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Motar
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 150
    Registrado : 03/08/2010

    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Motar 16/11/2013, 09:33

    Sim isso pode ser feito, mas para cobrir todas as alternativas dos filtros do access era muito trabalhoso e ainda mais quando se tem dezenas de formularios

    Conteúdo patrocinado


    [Resolvido]Popular Form.Desacoplado Empty Re: [Resolvido]Popular Form.Desacoplado

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 20:22