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]Dúvidas:Usando Bookmarks, Recordset e filtros

    avatar
    EdiFirst
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 14/01/2012

    [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros Empty [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros

    Mensagem  EdiFirst 2/2/2012, 11:02


    Olá Pessoal, este fórum realmente foi um achado para mim, estão de parabéns! Very Happy

    O problema é o seguinte,tenho pesquisado bastante tópicos, e vistos várias soluções inteligentes com esses métodos:Bookmarks,Recordset e filtros.Eu gostaria de entendê-los melhor, olhei na ajuda do access para dev, mas não ficou claro.
    Por exemplo na definição de bookmark:

    Use a propriedade Bookmark para salvar a posição do registro atual e retornar para esse registro a qualquer momento. Bookmarks estão disponíveis apenas em objetos Recordset que ofereçam suporte à funcionalidade de indicadores.

    Quando um objeto Recordset é aberto, cada um dos registros tem um indicador exclusivo. Para salvar o indicador do registro atual, atribua o valor da propriedade Bookmark a uma variável. Para retornar rapidamente àquele registro depois de se mover para um registro diferente, defina a propriedade Bookmark do objeto Recordset com o valor daquela variável.


    O que entendo disto é que se eu usar esse bookmark no meu form quando está sendo atualizado ou inserindo o registro de alguma maneira vou poder resgatar essas informações, apenas chamando a variável que o bookmark armazenou estes registros, mas como faço isto e na onde em um módulo confused

    E mais ou menos.. segue assim as outras definições, sem muitos esclarecimentos, as vezes colocam exemplos, mas muitos são complexos envolvendo várias rotinas.
    O ponto alto da minha questão é que quero aplicá-los ao meu projeto, vi que tem a vantagem de não ter que fazer nenhum ou quase nenhum relacionamentos entre tabelas.Que aliás não entendi direito como funciona.

    Fico no aguardo,Obrigado!







    avatar
    Convidad
    Convidado

    [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros Empty Re: [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros

    Mensagem  Convidad 2/2/2012, 19:34

    Olá Edi

    Vamos lá.

    Bookmark = literalmente é marcador de livro. Aquelas tiras de papel usada para marcar onde você parou de ler.
    Cada registro exibido no momento está com sua propriedade Bookmark definida como Verdadeiro (True.)

    Digamos que você esteja com um formulário de Clientes aberto em um registro qualquer e que contem uma caixa de texto ou combobox para pesquisar (localizar) Clientes.
    Digitamos o código do Cliente ou selecionamos na combobox e então é disparado o evento ApósAtualizar.
    Então poderemos usar nesse evento esse código:

    Private Sub IdCliente_AfterUpdate()
    Como o nome já diz, RecodsetClone cria uma cópia (clone) da tabela ao qual o form está vinculado, nesse caso a tblClientes.Essa cópia está na memória do computador.
    Então ele busca pelo registro nesse clone e uma vez encontrado, o bookmark do recordsetclone para esse registro está como Verdadeiro.
    Me.RecordsetClone.FindFirst "[idCliente] = " & Me.[idCliente]
    Então pedimos para o Access fazer com que aquele registro encontrado seja exibido e para isso. usamos o bookmark do formulário.
    Me.Bookmark = Me.RecordsetClone.Bookmark
    Ou seja, igualamos os Bookmark do recordsetClone e o do formulário.
    Tentei explicar o mais simples possível.
    Espero que me tenha feito entender

    Abraços
    avatar
    EdiFirst
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 14/01/2012

    [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros Empty Re:Re:Dúvidas:Usando Bookmarks, Recordset e filtros

    Mensagem  EdiFirst 3/2/2012, 03:14


    Fala Balem! Muito Obrigado por se dispor a responder a minha dúvida, um tanto confusa, é que estou iniciando agora com vba, como deve ter percebido.
    Então,vc explicou bem mas como nunca usei isto eu entendi pouco.rsss...Mas vamos-lá,filtrando a minha dúvida,vc disse:

    Se eu estiver por exemplo, com o formulário de cliente em aberto, e colocar no evento AfterUdate() de um registro, que pode ser uma caixa de texto ou um combobox:
    Me.RecordsetClone.FindFirst "[idCliente] = " & Me.[idCliente]
    Ele busca pelo registro nesse clone e uma vez encontrado, o bookmark do recordsetclone para esse registro está como Verdadeiro.
    Então pedimos para o Access fazer com que aquele registro encontrado seja exibido e para isso. usamos o bookmark do formulário.
    Me.Bookmark = Me.RecordsetClone.Bookmark 'Até aqui tá Ok,entendi, mas este já não é uma ação comum,automática do formulário? Se eu procuro um registro, ou dígito um código de cliente dentro do formCliente, é natural que ele traga informações daquele código,não é isso? Aí vc comenta:
    "Ou seja, igualamos os Bookmark do recordsetClone e o do formulário."
    Então,te pergunto amigo Smile eu posso usar este valor que acabei da armazenar no bookmark num próximo registro? em outro formulário? Question
    Na explicação do access o que não tinha entendido é como eu "pegava" o registro e jogava pro BookMark, isto vc me explicou,lá está comentado que posso atribuir uma variável a este BookMark, acredito que algo do tipo:
    Dim varBookmark As Variant
    Depois eu posso usar está varBookmark para "mostrar" para mim o que ela tem armazenado? Fico no aguardo,Obrigado! Very Happy
    avatar
    Convidad
    Convidado

    [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros Empty Re: [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros

    Mensagem  Convidad 3/2/2012, 06:19

    Edi


    mas este já não é uma ação comum,automática do formulário?
    Então,te pergunto amigo eu posso usar este valor que acabei da armazenar no bookmark num próximo registro? em outro formulário?

    Não, tente digitar algo num formulário com registro, o que você irá fazer é alterar o registro em questão,isso é uma das causa do porque os formulário ter as barras de navegação.
    Para que o Access procure um determinado registro, temos que criar uma rotina pra isso.
    Voltamos a analogia que eu fiz com o bookmark e o marcador de livros, podemos usar a página marcada num livro e um outro?
    Nunca usei colocar o bookmark numa variável para usá-lo depois, se eu quero retornar ao registro, simplesmente digito o registro na caixa de texto novamente para ele procurar.


    Dim varBookmark As Variant
    Depois eu posso usar está varBookmark para "mostrar" para mim o que ela tem armazenado?
    Bookmark é boolean ou seja falso/verdadeiro ou sim/não.
    Ela irá guardar na variável o registro para quando você precisar usar essa variável para EXIBIR o registro novamente no formulário.
    Ou seja, ela não tem dados do registro, é apenas um apontador para o registro.

    Abraço
    s
    avatar
    EdiFirst
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 14/01/2012

    [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros Empty Re:Re:Dúvidas:Usando Bookmarks, Recordset e filtros

    Mensagem  EdiFirst 3/2/2012, 08:34





    Very Happy Muito Obrigado,Balem pela resposta,agora entendi! Se bem que não sei quando me sentirei tranquilo em usar estes recursos,tenho muito que aprender ainda.Agora que entendi o que estes métodos fazem,talvez vc possa me apontar uma solução para aquilo que preciso.Estou tentando fazer uma apliçãozinha aqui de uma oficina.Já tenhos algumas tabelas prontas e formulários,acredito que a maioria já está Ok.
    O que acontece é o Seguinte: Tenho o Cadastro de Cliente,Funcionário,Veículos e Avarias(estes são os principais,a partir deles provalvemente falta muito pouco). Com ajuda de vcs aqui do forúm os forms estão Ok,ficou legal, com os botãos de navegação e tudo mais,regras de validação,ele valida cpf,cnpj,insere endereços com base no cep, ficou bacana até aqui.
    O que eu queria é o seguinte ao terminar de fazer o cadastro de cliente e clicar em salvar automaticamente ele vai para tela do cadastro de veículo,depois para avarias,asssim:

    Cadastro Cliente(terminado vai para)>Cad.Veículo>Avarias.Fazer salvar o form. anterior e abrir o próximo maximizado eu fiz,foi simples,mas o que eu queria q ao chegar no form de veículos por exemplo ele já preencha automaticamente o código e nome do cliente, depois no de avaria a mesma coisa,preencha automaticamente alguns dados dos forms anteriores que irei precisar,assim as tarefas vão ficando mais automazidas, pensei que era o RecordstClone, e Bookmark, que daria conta disto mas não é.

    Sobre os relacionamentos entre tabelas, eu fiz mas acabei excluindo porque ele não traz o campo automaticamente pro form,ele só obriga que tenha dados comuns entre tabelas,Vc pode me ajudar com estas dúvidas? Embarassed Valeu!! Very Happy



    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 50%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1757
    Registrado : 23/01/2018

    [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros Empty Re: [Resolvido]Dúvidas:Usando Bookmarks, Recordset e filtros

    Mensagem  crysostomo 25/2/2019, 09:20

    Uma duvida sobre isso, eu não posso usar ele 2x no mesmo formulário? Pois se da erro " dados compatíveis, mas não vejo erro.
    fix uma com a busca nome e tido ok, ja outa caixa de busca de cpf da erro
    Código:
    Private Sub Combinação370_Click()
     
     
      ' Encontrar o registro que coincide com o controle.
        
        Me.RecordsetClone.FindFirst "[CPF] = '" & Me![BUSCA] & "'"
      
        Me.Bookmark = Me.RecordsetClone.Bookmark
        
        Me.CPF.SetFocus
        
        Me.BUSCA = Null
    End Sub
    Na consulta so tem a coluna cpf


    .................................................................................
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.

      Data/hora atual: 1/8/2021, 06:32