Os formulários divididos no Access são extremamente úteis. Infelizmente, eles não funcionam quando você os coloca dentro de um formulário de navegação. Aprenda como você pode criar uma função VBA que irá simular as funcionalidades do formulário dividido do Access e fazê-lo funcionar até mesmo dentro de um formulário de navegação.
O formulário dividido permite que você tenha duas exibições de seus registros ao mesmo tempo - exibição de formulário e exibição de folha de dados. Ele permite que você tenha uma visão geral de todos os seus registros e, ao mesmo tempo, oferece a opção de visualizá-los e editá-los um por um.
Infelizmente, formulários divididos não funcionam quando você os coloca dentro de um formulário de navegação – algo que me deixa perplexo. Ainda bem que existe uma solução alternativa para isso. Usando o VBA, você pode criar sua própria função que simulará o formulário dividido do Access. Apenas siga os passos abaixo.
Faça o download
Se você deseja começar a usar o recurso o mais rápido possível, você pode:
Baixe o banco de dados de amostra com códigos VBA agora
Caso contrário, se você quiser DIY, pode ler o conteúdo abaixo.
Etapas para criar seu próprio formulário dividido no Access usando o VBA
1. Abra seu formulário dividido e atualize a Exibição padrão para Formulário único. 
- Abra seu formulário dividido.
- Enquanto estiver no modo de design, selecione o formulário.
- Vá para a Folha de propriedades (ALT + Enter) > guia Formulário.
- Altere a exibição padrão para: Formulário único.
- Feche o formulário e salve.
2. Crie uma cópia do formulário. Isso servirá como exibição da folha de dados.
- Vá para o painel de navegação.
- Clique com o botão direito do mouse no formulário e selecione Copiar.
- Clique com o botão direito do mouse em uma área em branco no painel de navegação e selecione Colar.
- Altere o nome do formulário. Anexe-o com “_Datasheet”.
Exemplo:
- Formulário: Membros
- Cópia do formulário: Members_Datasheet
3. Abra o Formulário Folha de Dados e atualize suas propriedades de exibição de formulário.
- Abra o formulário Folha de dados.
- Enquanto estiver no modo de design, selecione o formulário.
- Vá para a guia Folha de propriedades > Formulário.
- Atualize as seguintes propriedades:
- Visualização padrão: Ficha de dados
- Permitir visualização da folha de dados: Sim
- Permitir visualização de formulário: Não
- Feche o formulário e salve.
4. Reabra o Formulário Principal e adicione o Formulário Folha de Dados como subformulário.
- Abra o formulário principal (aquele que foi copiado) no modo de design.
- Adicione um subformulário.
- Vá para o menu Desenho. Selecione Subformulário/Subrelatório.
- Clique na área Detalhe do formulário.
- O Assistente de subformulário aparecerá.
- Vá para o menu Desenho. Selecione Subformulário/Subrelatório.
1. Clique em 'Usar um formulário existente'.
2.Selecione seu formulário de folha de dados.
3.Clique em Avançar.
4.Selecione 'Definir meu próprio'.
5.Clique em Concluir.
3. O formulário de folha de dados agora é um subformulário do formulário principal. Ajuste-o para o tamanho e posição desejados.
5. Finalmente, adicione o código.
- Abra o Editor VBA (ALT + F11).
- Selecione o formulário principal e cole o código a seguir.
'MAIN FORM Option Explicit Private Sub Form_AfterUpdate() Me.Members_Datasheet.Requery End Sub Private Sub Form_Current() If Me.NewRecord Then Me.Members_Datasheet.Form.Recordset.AddNew Else Me.Members_Datasheet.Requery End If End Sub
- Depois de copiar o código, substitua todas as instâncias da palavra Membros_Folha de dados com o nome real do seu formulário de folha de dados.
- Quando terminar, selecione seu formulário de folha de dados no menu Projeto e copie o código abaixo.
'SUBFORM/DATASHEET FORM Option Explicit Private Sub Form_AfterUpdate() Me.Parent.Form.Requery End Sub Private Sub Form_Current() Dim pk_field As String, pk_tbox As Control Dim primaryKey As String, strSearch As String Set pk_tbox = Me.Member_ID 'textbox containing primary key * pk_field = "Member_ID" 'primary key field name * primaryKey = Nz(pk_tbox.Value, 0) 'change value to 0 if null pk_field = "[" & pk_field & "]" 'enclose field name with brackets If primaryKey <> 0 Then 'if not null (or not a new record) strSearch = pk_field & "=" & primaryKey Me.Parent.Recordset.FindFirst strSearch Else Me.Parent.Form.Recordset.AddNew End If End Sub
- Atualize os valores para as seguintes variáveis:
- pk_tbox – refere-se à caixa de texto que contém a chave primária.
- campo_pk – refere-se ao campo de chave primária da fonte de registro.
Cada um deles tem um asterisco (*) na seção de comentários para que você possa encontrá-los facilmente.
- Quando terminar, salve as alterações (CTRL + S) e feche o Editor VBA.
Agora, você pode adicionar seu próprio formulário dividido dentro do formulário de navegação. Experimente!
Corrigir banco de dados de acesso danificado (.accdb)
Existem muitas razões pelas quais um banco de dados Access pode ser corrompido. Infelizmente, não temos controle sobre a maioria delas. Se isso acontecer com você, lembre-se de que ainda existe uma maneira de recuperá-lo. DataNumen Inc. criou um software que executa reparo de accdb. Confira.
Introdução do autor:
Jayme Stack é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo recuperação sql e produtos de software de recuperação do Excel. Para mais informações visite www.datanumen.com



