
¿Cómo puedo rellenar un subformulario desde VBA?
Publicado por Javier (2 intervenciones) el 28/12/2023 09:46:49
Buenos días, soy Javi,
Necesito de vuestra ayuda. He estado leyendo en foros (también le he preguntado a ChatGPT), y no he conseguido nada.
Tengo un subformulario dentro de un formulario, y necesito rellenar el subformulario desde VBA, ya que necesito algo como esto:
- Juan Perez
-1º Antonio Tal
- María Noseque
-------
- Javier Perez
-2º Antonio Martinez
- Rosa Flores
Necesito algo como que me muestre el numero de clase y el nombre de todos los alumnos de la clase. El problema es que al usar Me.nombreSubForm.Form.txtNombreCaja = DLookup(...), no me muestra los datos en la tabla.
El DLookup, me devuelve valores, por lo que el error es en la asignación.
**Lo explico con este ejemplo, ya que es más sencillo de entender que con mi propio proyecto.
Aún así, os dejo por aquí el codigo completo de VBA del formulario.
Gracias!
Necesito de vuestra ayuda. He estado leyendo en foros (también le he preguntado a ChatGPT), y no he conseguido nada.
Tengo un subformulario dentro de un formulario, y necesito rellenar el subformulario desde VBA, ya que necesito algo como esto:
- Juan Perez
-1º Antonio Tal
- María Noseque
-------
- Javier Perez
-2º Antonio Martinez
- Rosa Flores
Necesito algo como que me muestre el numero de clase y el nombre de todos los alumnos de la clase. El problema es que al usar Me.nombreSubForm.Form.txtNombreCaja = DLookup(...), no me muestra los datos en la tabla.
El DLookup, me devuelve valores, por lo que el error es en la asignación.
**Lo explico con este ejemplo, ya que es más sencillo de entender que con mi propio proyecto.
Aún así, os dejo por aquí el codigo completo de VBA del formulario.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Option Compare Database
Private Sub btnCriteriosCerrados_Click()
Me.listadoWorkOrders.Form.RecordSource = "consultaWorkOrdersCerradas"
End Sub
Private Sub Form_Load()
DoCmd.Maximize
Dim rs As DAO.Recordset
Dim idCriterio As String
Set rs = CurrentDb().OpenRecordset("SELECT idCriterio FROM criterios")
Do Until rs.EOF
idCriterio = rs!idCriterio
Me.trabajosSubForm.Form.Controls("txtCodigoCriterio").Value = DLookup("[codigoCriterio]", "criterios", "[idCriterio]=" & idCriterio)
Dim idEstadoCriterio As Integer
idEstadoCriterio = DLookup("[idEstadoCriterio]", "criterios", "[idCriterio]=" & idCriterio)
Me.trabajosSubForm.Form.Controls("txtEstado").Value = DLookup("[estado]", "estadosCriterios", "[idEstadoCriterio]=" & idEstadoCriterio)
Me.trabajosSubForm.Form.Controls("txtDeadLine").Value = DLookup("[DeadLine]", "criterios", "[idCriterio]=" & idCriterio)
Dim idAnalista As Integer
idAnalista = DLookup("[analista]", "criterios", "[idCriterio]=" & idCriterio)
Me.trabajosSubForm.Form.Controls("txtAnalista").Value = DLookup("[nombreUsuario]", "usuarios", "[idUsuario]=" & idAnalista)
Dim rs1 As DAO.Recordset
Set rs1 = CurrentDb().OpenRecordset("SELECT codigoWo FROM workOrders WHERE idCriterio = " & idCriterio)
Do Until rs1.EOF
Me.trabajosSubForm.Form.Controls("txtCodigoWo").Value = rs1!codigoWo
rs1.MoveNext
Loop
rs1.Close
rs.MoveNext
Loop
rs.Close
End Sub
Private Sub Form_Resize()
Me.Box0.Width = Me.InsideWidth
End Sub
Gracias!
Valora esta pregunta


0