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.
- En la vista de diseño, seleccione el formulario.
- Vaya a la Hoja de propiedades (ALT + Entrar)> pestaña Formulario.
- Cambie la vista predeterminada a: Formulario único.
- Cierre el formulario y guarde.
2. Cree una copia del formulario. Esto servirá como vista de hoja de datos.
- Vaya al panel de navegación.
- Haga clic derecho en su formulario y seleccione Copiar.
- Haga clic derecho en un área en blanco en el panel de navegación y seleccione Pegar.
- 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.
- Abra el formulario Hoja de datos.
- En la vista de diseño, seleccione el formulario.
- Vaya a la hoja de propiedades> pestaña Formulario.
- Actualice las siguientes propiedades:
- Vista predeterminada: Datasheet
- Permitir la vista de hoja de datos: Sí
- Permitir vista de formulario: No
- Cierre el formulario y guarde.
4. Vuelva a abrir el formulario principal y agregue el formulario de hoja de datos como subformulario.
- Abra el formulario principal (el que se copió) en la vista de diseño.
- Agregue un subformulario.
- Vaya al menú Diseño. Seleccione Subformulario / Subinforme.
- Haga clic en el área de Detalles del formulario.
- Aparecerá el Asistente de subformulario.
- Vaya al menú Diseño. Seleccione Subformulario / Subinforme.
1. Haga clic en 'Usar un formulario existente'.
2.Seleccione su formulario de hoja de datos.
3. Haga clic en Siguiente.
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.
- Abra el Editor de VBA (ALT + F11).
- Seleccione el formulario principal y pegue el código que sigue.
'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
- 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.
- 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 Opción Explícita 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' cuadro de texto que contiene la clave primaria * pk_field = "Member_ID" 'nombre del campo de la clave primaria * primaryKey = Nz (pk_tbox.Value, 0)' cambia el valor a 0 si es nulo pk_field = "[" & pk_field & "]" 'encierra el nombre del campo entre corchetes Si PrimaryKey <> 0 Then 'si no es nulo (o no es un registro nuevo) strSearch = pk_field & "=" & primaryKey Me.Parent.Recordset.FindFirst strSearch Else Me.Parent.Form.Recordset.AddNew End If End Sub
- 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.
- 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