No me muestra datos seleccionados desde un subformulario
A tod@s, Intentaré explicarmes lo más claro posible. Estoy modificando una antigua base de datos (para reducir el número de formularios) y me he encontrado con el siguiente inconvenientes, os explico lo que tengo realizado.
Tengo un formulario llamado FCodificado y dentro del mismo un subformulario SubGeneral, como se muestra en la imagen:
El subformulario me sirve para mostrar datos de 8 tablas, según seleccione un botón (cada botón corresponde a una tabla diferente), para mostrar los datos utilizo la siguiente instrucción:
Private Sub Marco20_Click()
Select Case Me.Marco20
Case 1 ' Reglamento General de Circulación (CIR)
txtNorma.Value = "RGCir."
txtCodigo.Value = 1
txtArticulo.SetFocus
Form_SubGeneral.Visible = True
Etiqueta65.Caption = "REGLAMENTO GENERAL DE CIRCULACIÓN"
Form_SubGeneral.Form.RecordSource = "SELECT TCIR.Articulo1, TCIR.Articulo, TCIR.Apartado, CIR.Opcion,TCIR.Hecho FROM TCIR ORDER BY TCIR.Articulo,Apartado,Opcion asc; " Texto62.Value = DCount("*", "TCIR")
……
Si selecciono cualquiera de las opciones se me muestra los datos en el subformulario (SubGeneral), a continuación si doy doble clic en cualquier artículo, se abre un formulario (FArticulado) y muestra los datos correspondientes al artículo seleccionado, según se muestra en la imagen:
Antiguamente tenía tantos Formularios como normativa infringida es decir 8 formularios como los de la imagen anterior, lo que pretendo ahora es que en un solo formulario (FArticulado) pudiera mostrar los datos seleccionados en el subformulario (SubGeneral), para eso uso la siguiente instrucción:
Dim strFiltro As String
Dim strFiltro2 As String
'Reglamento General de Circulación (CIR)
If Forms!FCodificado!txtCodigo.Value = "1" Then
'Construyo la cadena para filtrar por Título
If Not IsNull(Me.ARTICULO1) And Me.ARTICULO1 <> "" Then
strFiltro = Nz("ARTICULO1 = '" & Me.ARTICULO1 & "'", "")
DoCmd.OpenForm "FArticulado", , , strFiltro, acFormReadOnly, , 1
End If
End If
'Reglamento General de Conductores (CON)
If Forms!FCodificado!txtCodigo.Value = "2" Then
'Construyo la cadena para filtrar por Título
If Not IsNull(Me.ARTICULO1) And Me.ARTICULO1 <> "" Then
strFiltro2 = Nz("ARTICULO1 = '" & Me.ARTICULO1 & "'", "")
DoCmd.OpenForm "FArticulado", , , strFiltro2, acFormReadOnly, , 2
End If
End If
Muestro solo los datos de las dos primeras opciones, por no extenderme mucho.
Aquí viene el error que estoy teniendo. Si pulso en un articulo de la primera opción sale todo bien, pero cuando selecciono un articulo de la segunda opción, me sale el siguiente error:
Se ha producido el error 2427 en tiempo de ejecución: Ha especificado una expresión que no tiene valor.
Al abrirse filtrado el formulario FArticulado tengo la siguiente instrucción:
Private Sub Form_Open(Cancel As Integer)
'Reglamento General de Circulación (CIR)
If Me.OpenArgs = 1 Then
Forms!FArticulado.Caption = "Reglamento General de Circulación"
If ARTICULO.Value = "002" Then
Etiqueta28. Caption = "Título I. Normas generales de comportamiento en la circulación "
Etiqueta29.Caption = "Capítulo I. Normas generales"
Etiqueta34.Caption = ""
Etiqueta16.Caption = "Usuarios "La instrucción que uso para
Me podéis ayudar si se puede realizar lo que pretendo o tendré que tener un formulario por cada opción, es decir 8 formularios.