Fichas de control

Query tengo un pequeño problema con un formulario el cual contiene una ficha de control, en un página tengo un subformulario A y en otra el subformulario B, lo que quiero hacer es poner botones para los mismos formularios, es decir un botón nuevo para ambos y que cuando le de click, ambos se inicien en un nuevo registro, esoy muy confundida por demás quiero recuperar información para ambos subformularios con un texbox del formulario principal, ayuda!
Respuesta
1
1º Antes que nada asegurate que tienes definidas las Relaciones de las tablas/consultas en que se basarán el formulario principal y los dos subformularios. Un ejemplo típico de esto lo tienes en Neptuno.mdb (base de datos de ejemplo de access) y en la forma en que se relacionan las tablas: Clientes, Pedidos y Detalles de pedidos. Ten en cuenta que debes Vincular campos secundarios y campos principales en la propiedad Datos del subformularioA para unir este al form principal, del mismo modo el subformularioB para unirlo al subformularioA. Expresiones típicas serian:
SubformularioA ficha Datos:
Vincular campos secundarios: IdPedido
Vincular campos principales: IDPedido
SubformularioB ficha Datos:
Vincular campos secundarios: IdPedido
Vincular campos principales: [SubformularioA]. Form![IdPedido]
Plantéate el form principal con la sección Detalle conteniendo el control ficha con los dos subformularios, y la sección Encabezado del form conteniendo el texbox con el que quieres recuperar datos. Yo usaría un cuadro combinado basado en Tabla/Consulta, vista en SQL seria algo así:
SELECT DISTINCTROW [Apellidos] & ", " & [Nombre] AS Vendedor, Empleados.IdEmpleado
FROM Empleados INNER JOIN Pedidos ON Empleados.IdEmpleado = Pedidos.IdEmpleado
ORDER BY [Apellidos] & ", " & [Nombre];
Puedes cambiar la tabla Empleados por Clientes, por ejemplo.
Este procedimiento seria para el cuadro combinado:
Private Sub SeleccionarVendedor_AfterUpdate()
' Buscar los registros del vendedor seleccionado en el cuadro combinado Vendedor.
' Activar los controles de la sección Detalle.
' Ir a subformularioA.
DoCmd.ApplyFilter , "IdEmpleado = Forms!MiFormularioPrincipal!SeleccionarVendedor"
ActivarControles Me, acDetail, True
Me!subformularioA.SetFocus
End Sub
Y esta función iría en un módulo estándar:
Option Compare Database
Option Explicit
Function ActivarControles(frm As Form, entSección As Integer, entEstado As Boolean) As Boolean
' Activar o desactivar los controles de la sección especificada del formulario.
' Utilizar los argumentos objeto Form, constante de sección y estado
' Pasados al procedimiento ActivarControles.
Dim ctl As Control
' Establecer entEstado para todos los controles de la sección especificada.
For Each ctl In frm.Controls
If ctl.Section = entSección Then
On Error Resume Next
ctl.Enabled = entEstado
Err = 0
End If
Next ctl
ActivarControles = True
End Function
Asegurate que en Referencias tienes activada Microsoft Access 9.0 Object Library (es el archivo MSACC9. OLB).
2º Para lo del botón que cuando le des click te deje los dos subformularios (cada uno en una página del control ficha) en registro nuevo, he usado una macro con:
Acción: IrAControl
Nombre del control: subformularioA
Acción: IrARegistro
Registro: Nuevo
Acción: IrAControl
Nombre del control: subformularioB
Acción: IrARegistro
Registro: Nuevo
Esta macro la guardas como GoToRecNew y se la pones en el evento Al hacer click del botón. Observa el resultado y decide con cual de los dos subforms empiezas a editar registros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas