Fiz um sistema de plano de leitura bíblia, inseri uma bíblia digitam onde cada versículos correspondem a um registro individual, então criei um formulário de pesquisa para filtrar esses registros (versículos) até ai tudo bem usei o seguinte código (DoCmd.OpenForm "Biblia", , , "CodBiblia = " & CodBiblia) para abrir o formulário onde estão os versículos com um duplo clique, o código funcionou bem ele aplica um filtro e abre apenas o versículo que eu quero, porem quando eu vou navegar para o próximo registro ou anterior o filtro impede de ir para outro registro, se eu removo o filtro ele vai para o primeiro registro. A pergunta é: como faço pra ao abrir o registro especifico eu também possa navegar nos próximos registro sem que ele vá para o primeiro registro.
4 participantes
[Resolvido]Formulário de Pesquisa com caixa de listagem
informais- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 53
Registrado : 23/10/2015
rubenscouto- Super Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 680
Registrado : 02/10/2011
eu também estava com uma duvida desta mesma caracteristica e consegui através do seguinte exemplo em anexo.
a diferença é que você não tem que filtrar o registro. tem que incorporar um comando para ir para o registro selecionado.
Veja no exemplo.
a diferença é que você não tem que filtrar o registro. tem que incorporar um comando para ir para o registro selecionado.
Veja no exemplo.
- Anexos
- LocalizaEpassaParaOutroForm.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (35 Kb) Baixado 49 vez(es)
informais- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 53
Registrado : 23/10/2015
- Mensagem nº3
O problema persiste
Muito Obrigado pelo retorno, o exemplo é igual ao que eu quero porém o problema persiste, depois de localizar e abrir o registro no Formulário [Empresa] ele recebe um filtro que impede de ir para o próximo registro, somente se eu remover o filtro que ele aciona a navegação de registro, mas ele volta para o primeiro registro e não para o próximo ou anterior. Será se existe uma forma de abrir o registro localizado e navegar normalmente apos ele ser localizado?
jrm- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 136
Registrado : 10/08/2012
verifique se o exemplo anexo serve para o que pretende utilizado o botão localizar e colocando nas opções este documento e qualquer parte do campo.
Sei que também da para fazer isto com VBA sem ter que selecionar estas opções mas não sei bem como se alguém poder ajudar.
Sei que também da para fazer isto com VBA sem ter que selecionar estas opções mas não sei bem como se alguém poder ajudar.
- Anexos
- LocalizaEpassaParaOutroForm.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (29 Kb) Baixado 28 vez(es)
informais- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 53
Registrado : 23/10/2015
- Mensagem nº5
não resolveu
Desculpem pela insistencia mais não sei se fui compreendido,o problema não é localizar o registro e nem ir parao registro localizado, o problema é qque, quando eu chego no registro localizado eu não consigo navegar em outros registro usando os os comando proximo ou anterior estou enviando o link do Db pra vcs o formulario [Frm_Pesq_NT] é um formulario de pesquisa quando clico duas vezes sobre uma referencia biblica ele abre o formulário [Biblia] e au abrir este formulariocom um registro especifico eu gostaria que ele tambem pudesse navegar nos versiculos anteriores e proximos a ele.
https://drive.google.com/file/d/0B0ESyaOzH2aKZGxwd21ZZG1JTjA/view?usp=sharing
https://drive.google.com/file/d/0B0ESyaOzH2aKZGxwd21ZZG1JTjA/view?usp=sharing
Jair Martins- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 78
Registrado : 23/03/2016
Olá, informais
Pelo que vi no seu aplicativo, o melhor caminho - e também o mais fácil - é utilizar combos ou caixas de listagem para a procura de registros dentro do form BibliaNT, em substituição ao form Frm_Pesq_NT.
Isso é o que recomendo.
Porém, se abrir o form BibliaNt através do form de pesquisa foi realmente imprescindível, existe uma outra técnica que usei uma única vez num requisito semelhante. Trata-se de usar uma variável externa criada via código e utilizada para abrir o form.
O primeiro passo é criar a função que disponibiliza a variável. Crie um novo módulo, atribua um nome e salve. Neste módulo, logo após a linha onde se lê Option Compare Database, insira a linha:
Dim varValue as Variant
Em seguida, crie a função para captura do valor da variável em tempo de execução. Digite:
Public Sub VariableName(FieldValue As Variant)
If IsNull(FieldValue) Then
varValue = Null
Else
varValue = FieldValue
End If
End Sub
Logo abaixo, crie a função que vai atribuir esse valor ao parâmetro que abrirá o form BibliaNT. Digite:
Public Function VariableReturn()
VariableReturn = varValue
End Function
Em seguida, vamos alterar os códigos de abertura do form BibliaNT a partir do form de pesquisa. Como existem 5 campos que ao Duplo Clique abrem o form BibliaNT, vamos criar uma sub rotina para evitar que o mesmo código tenha que ser digitado 5 vezes. Abra o subform NovoTestamento do form Frm_Pesq_NT no modo design e, logo abaixo da linha Option Compare Database, insira o seguinte código:
Private Sub AbrirBiblia ()
If IsNull(Me.CodBibliaNT) Then
Exit Sub
Else
Dim strName As String
strName = "BibliaNT"
VariableName Me.CodBibliaNT
DoCmd.OpenForm strName
End If
End Sub
Feito isto substitua, em todos os eventos DblClick dos campos, a linha
DoCmd.OpenForm "BibliaNT", , , "CodBibliaNT = " & CodBibliaNT
por esta:
AbrirBiblia
Agora, o passo final, que é fazer com que o form BibliaNT abra normalmente (carregando todos os registros) e imediatamente vá para o registro definido na variável atribuída no form de consulta.
No evento Ao Abrir do form BibliaNT, digite o seguinte código:
If VariableReturn > 0 Then
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[CodBibliaNT] = " & VariableReturn
Me.Bookmark = rs.Bookmark
End If
Você poderá usar esta técnica no mesmo BD usando a mesma função da variável para outras situações parecidas.
Espero ter ajudado. Não esqueça de postar se deu certo e, se sim, dar a dúvida como resolvida.
Abs.
Pelo que vi no seu aplicativo, o melhor caminho - e também o mais fácil - é utilizar combos ou caixas de listagem para a procura de registros dentro do form BibliaNT, em substituição ao form Frm_Pesq_NT.
Isso é o que recomendo.
Porém, se abrir o form BibliaNt através do form de pesquisa foi realmente imprescindível, existe uma outra técnica que usei uma única vez num requisito semelhante. Trata-se de usar uma variável externa criada via código e utilizada para abrir o form.
O primeiro passo é criar a função que disponibiliza a variável. Crie um novo módulo, atribua um nome e salve. Neste módulo, logo após a linha onde se lê Option Compare Database, insira a linha:
Dim varValue as Variant
Em seguida, crie a função para captura do valor da variável em tempo de execução. Digite:
Public Sub VariableName(FieldValue As Variant)
If IsNull(FieldValue) Then
varValue = Null
Else
varValue = FieldValue
End If
End Sub
Logo abaixo, crie a função que vai atribuir esse valor ao parâmetro que abrirá o form BibliaNT. Digite:
Public Function VariableReturn()
VariableReturn = varValue
End Function
Em seguida, vamos alterar os códigos de abertura do form BibliaNT a partir do form de pesquisa. Como existem 5 campos que ao Duplo Clique abrem o form BibliaNT, vamos criar uma sub rotina para evitar que o mesmo código tenha que ser digitado 5 vezes. Abra o subform NovoTestamento do form Frm_Pesq_NT no modo design e, logo abaixo da linha Option Compare Database, insira o seguinte código:
Private Sub AbrirBiblia ()
If IsNull(Me.CodBibliaNT) Then
Exit Sub
Else
Dim strName As String
strName = "BibliaNT"
VariableName Me.CodBibliaNT
DoCmd.OpenForm strName
End If
End Sub
Feito isto substitua, em todos os eventos DblClick dos campos, a linha
DoCmd.OpenForm "BibliaNT", , , "CodBibliaNT = " & CodBibliaNT
por esta:
AbrirBiblia
Agora, o passo final, que é fazer com que o form BibliaNT abra normalmente (carregando todos os registros) e imediatamente vá para o registro definido na variável atribuída no form de consulta.
No evento Ao Abrir do form BibliaNT, digite o seguinte código:
If VariableReturn > 0 Then
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[CodBibliaNT] = " & VariableReturn
Me.Bookmark = rs.Bookmark
End If
Você poderá usar esta técnica no mesmo BD usando a mesma função da variável para outras situações parecidas.
Espero ter ajudado. Não esqueça de postar se deu certo e, se sim, dar a dúvida como resolvida.
Abs.
informais- Intermediário
- Respeito às regras :
Sexo :
Localização :
Mensagens : 53
Registrado : 23/10/2015
- Mensagem nº7
Perfeito
Muito bom Jair Martins, fiz das duas formas com as caixas de listagem e com as variáveis que você me passou, muito grato pela informações, aprendi muito com você. Obrigado!
» [Resolvido]Formulário de pesquisa - caixa de listagem
» [Resolvido]Formulário pesquisa clientes em caixa listagem
» [Resolvido]Pesquisa em uma caixa de listagem
» [Resolvido]Ao colocar um formulario de navegacao como altero a minha pesquisa numa caixa de listagem?
» Caixa de Listagem / Formulário de Pesquisa
» [Resolvido]Formulário pesquisa clientes em caixa listagem
» [Resolvido]Pesquisa em uma caixa de listagem
» [Resolvido]Ao colocar um formulario de navegacao como altero a minha pesquisa numa caixa de listagem?
» Caixa de Listagem / Formulário de Pesquisa