Access - Recorset en un subformulario

 
Vista:

Recorset en un subformulario

Publicado por Alan (22 intervenciones) el 04/04/2007 11:56:56
Hola a todos, en un formulario tengo un subinforme que me muestra la tabla principal de datos. Estoy intentando hacer que cuando seleccione un registro, todos los campos que contiene ese registro me salgan en el formulario que tengo al lado para así poder modificar el registro. En el evento “al activar el registro” del subformulario pongo este código:
Option Compare Database
Private Sub Form_Current()
Dim rst As DAO.Recordset, _
strsql As String
Set rst = CurrentDb.OpenRecordset(strsql, dbOpenDynaset)
Me.Parent.Proveedor = rst!Proveedor
Me.Parent.Formatos = rst!Formatos
Me.Parent.HoraSolicitada = rst!HoraSolicitada
Me.Parent.HoraEntrada = rst!HoraEntrada
Me.Parent.FechaSolicitada = rst!FechaSolicitada
Me.Parent.FechaEntrada = rst!FechaEntrada
Me.Parent.Pedido = rst!Pedido
Me.Parent.Entrada = rst!Entrada
Me.Parent.Diferencia = rst!Diferencia
Me.Parent.Puntualidad = rst!Puntualidad
Me.Parent.Documentacion = rst!Documentacion
Me.Parent.Problemaenproduccion = rst!Problemaenproduccion
End Sub

Este código es de otro programa que utiliza la forma que yo quiero y este código es el que he adaptado yo.
Lo que pasa es que cuando activo uso el programa me sale la ventanita de: no se ha definido el tipo definido por el usuario y ahí se queda.
Otra duda que tengo es que la variable rst que usa ¿de donde proviene?, ya que yo entiende que es del subformulario mientras que el Me.Parent.Proveedor es el nombre que uso en el formulario
Yo porque he visto esta parte de programa sinó hubiese intentando hacer algo con el recordsetclone pero voy un poco perdido, a ver si me podéis ayudar, Gracias. Alan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Mostrar registros seleccionados en un formulario al seleccionar un registro en un subformulario

Publicado por Alejandro (4142 intervenciones) el 07/08/2023 21:49:43
Aquí te proporciono una posible solución para mostrar los registros seleccionados en un formulario al seleccionar un registro en un subformulario:

1. Primero, asegúrate de que el subformulario esté vinculado correctamente al formulario principal a través de una clave única, como el campo "IdCliente".

2. En el evento "Al activar" del subformulario, puedes utilizar el siguiente código para filtrar los registros en el formulario principal basados en el registro seleccionado en el subformulario:

1
2
3
4
5
6
7
8
9
10
11
Private Sub Form_Current()
    Dim IdCliente As Long
    Dim strFilter As String
 
    If Not IsNull(Me.IdCliente) Then
        IdCliente = Me.IdCliente
        strFilter = "IdCliente = " & IdCliente
        Forms!NombreDelFormularioPrincipal.Filter = strFilter
        Forms!NombreDelFormularioPrincipal.FilterOn = True
    End If
End Sub

Asegúrate de reemplazar "NombreDelFormularioPrincipal" con el nombre real del formulario principal donde deseas mostrar los registros seleccionados.

3. Asegúrate de que el evento "Al activar" del subformulario esté habilitado. Para hacerlo, selecciona el subformulario en el formulario principal, ve a la pestaña "Eventos" de la ventana de propiedades y asegúrate de que el evento "Al activar" tenga un procedimiento asociado.

Con este código, cuando selecciones un registro en el subformulario, los campos del formulario principal se filtrarán y mostrarán solo los registros relacionados con el cliente seleccionado en el subformulario.

Recuerda que este es solo un ejemplo, y dependiendo de la estructura de tu base de datos y los nombres de tus controles, es posible que necesites adaptar el código para que funcione correctamente en tu caso particular.

Espero que esta solución te sea útil, Alan.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar