Cómo crear su propio formulario dividido en Access usando VBA

Comparte ahora:

Los formularios divididos en Access son extremadamente útiles. Desafortunadamente, no funcionan cuando los coloca dentro de un formulario de navegación. Descubra cómo puede crear una función VBA que simule las funcionalidades de formulario dividido de Access y haga que funcione incluso dentro de un formulario de navegación.

El formulario dividido le permite tener dos vistas de sus registros al mismo tiempo: vista de formulario y vista de hoja de datos. Le permite tener una descripción general de todos sus registros y, al mismo tiempo, le brinda la opción de verlos y editarlos uno por uno.

Desafortunadamente, los formularios divididos no funcionarán cuando los coloque dentro de un formulario de navegación, algo que me desconcierta. Menos mal que hay una solución para esto. Usando VBA, puede crear su propia función que simulará la forma dividida de Access. Simplemente siga los pasos a continuación.

Descargar Ahora

Si quieres starPara utilizar la función lo antes posible, puede:

Descargue la base de datos de muestra con códigos VBA ahora

De lo contrario, si desea hacer bricolaje, puede leer el contenido a continuación.

Pasos para crear su propio formulario dividido en Access usando VBA

1. Abra su formulario dividido y actualice la Vista predeterminada a Formulario único. Abra su formulario dividido y actualice la vista predeterminada a formulario único

  1. Abra su formulario dividido.
  2. En la vista de diseño, seleccione el formulario.
  3. Vaya a la Hoja de propiedades (ALT + Entrar)> pestaña Formulario.
  4. Cambie la vista predeterminada a: Formulario único.
  5. Cierre el formulario y guarde.

2. Cree una copia del formulario. Esto servirá como vista de hoja de datos.

  1. Vaya al panel de navegación.
  2. Haga clic derecho en su formulario y seleccione Copiar.
  3. Haga clic derecho en un área en blanco en el panel de navegación y seleccione Pegar.
  4. Cambie el nombre del formulario. Añádalo con "_Datasheet".

Ejemplo:

  • Formulario: Miembros
  • Copia del formulario: Members_Datasheet

3. Abra el formulario de hoja de datos y actualice sus propiedades de vista de formulario.

  1. Abra el formulario Hoja de datos.
  2. En la vista de diseño, seleccione el formulario.
  3. Vaya a la hoja de propiedades> pestaña Formulario.
  4. Actualice las siguientes propiedades:
    • Vista predeterminada: Hoja de Datos
    • Permitir la vista de hoja de datos:
    • Permitir vista de formulario: No
  5. Cierre el formulario y guarde.

4. Vuelva a abrir el formulario principal y agregue el formulario de hoja de datos como subformulario.

  1. Abra el formulario principal (el que se copió) en la vista de diseño.
  2. Agregue un subformulario.
    • Vaya al menú Diseño. Seleccione Subformulario / Subinforme.Seleccionar subformulario
    • Haga clic en el área de Detalles del formulario.
    • Aparecerá el Asistente de subformulario.El asistente de subformulario

1. Haga clic en 'Usar un formulario existente'.

2.Seleccione su formulario de hoja de datos.

3. Haga clic en Siguiente.Seleccione 'Definir mi propio'

4.Seleccione 'Definir el mío'.

5.Haga clic en Finalizar.

3. El formulario de hoja de datos es ahora un subformulario de su formulario principal. Ajústelo a su tamaño y posición deseados.

5. Finalmente, agregue el código.

  1. Abra el Editor de VBA (ALT + F11).
  2. Seleccione el formulario principal y pegue el código que sigue.Seleccione el formulario principal y pegue el código
'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
  1. Después de copiar el código, reemplace todas las instancias de la palabra Miembros_Hoja de datos con el nombre real de su formulario de hoja de datos.
  2. Cuando haya terminado, seleccione su formulario de hoja de datos en el menú Proyecto y copie el código a continuación.
'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
  1. Actualice los valores de las siguientes variables:
  • pk_tbox - se refiere al cuadro de texto que contiene la clave primaria.
  • pk_field - se refiere al campo de clave principal de la fuente de registro.

Cada uno tiene un asterisco (*) en la sección de comentarios para que pueda encontrarlos fácilmente.

  1. Cuando termine, guarde los cambios (CTRL + S) y cierre el Editor de VBA.

Ahora, puede agregar su propio formulario dividido dentro del formulario de navegación. ¡Pruébalo!

Reparar la base de datos de acceso dañada (.accdb)

Puede haber muchas razones por las que una base de datos de Access se corrompe. Lamentablemente, no tenemos control sobre most de ellos. Si te pasa, recuerda que todavía hay una forma de recuperarlo. DataNumen Inc. ha creado un software que realiza reparación accdb. Echale un vistazo.

Introducción del autor:

Jayme Stack es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo recuperación de sql y productos de software de recuperación de Excel. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.