Como distinguir cuando un subformulario tiene registros activos

A ver si logro explicarme:

Tengo un formulario, un subformulario y un botón y un combo en el formulario (hay más cosas pero no intervienen), al carga el form el botón lo inhabilito y cuando por medio del combo del form paso los datos al subfor, habilito el botón. Mi problema es si en la siguiente vez que vuelvo a abrir el combo y no hay datos para cargar en el subformulario el botón sigue activo. Mi pregunta es como puedo detectar que tenga o no tenga datos activos el subformulario, para que dada una condición u otra poder activar o desactivar el dichoso botoncito.

1 respuesta

Respuesta
1

Javier: Supongo que ahora ya tienes el Procedimiento AfterUpdate del Combo porque es ahí es donde habilitas el Botón.

Ponle un condicional, contando los Registros del SubForm. Si se llama SubF1

If Me.SubF1.Form.Recordset.RecordCount = 0 Then

Me.NombreDeTuBoton.Enabled = False

Else

Me.NombreDeTuBoton.Enabled = False

End If

Un saludo >> Jacinto

No funciona, no entra el en if.

Lo que no tengo es la propiedad RecordCount. Puede ser eso?

Javier: Entiendo que te diera algún error, pero lo que no veo es que o entre en el If...

On si quieres aquí el código que tienes para activar el botón y en qué procedimiento a ver si veo algo extraño. Un saludo >> Jacinto

bueno como verás el codigo es muy sencillo, en combo se llama Nombre y le he puesto varios msgbx para ver su funcionamiento

Private Sub Nombre_AfterUpdate()

MsgBox "entro en el If"

If Me.Sub_PedidosPorCliente.Form.RecordCount = 0 Then

'Me.Comando468.Enabled = True
MsgBox "estoy dentro del if, contador =0"

Else
MsgBox "estoy en el else contador distinto de cero"

'Me.Comando468.Enabled = False

End If

Msgbox " salto el if"

solo me sale el primer msgbox, se queda dentro, no me da error, no me sale el segundo msgbox, y tampoco el último msgbox. Simplemente no hace nada.

End Sub

Javier: Lo que veo es que pones >>

If Me.Sub_PedidosPorCliente.Form.RecordCount = 0 Then

Según la línea de arriba sería:

If Me.Sub_PedidosPorCliente.Form.Recordset.RecordCount = 0 Then

y por si acaso

If Me.[Sub_PedidosPorCliente].Form.Recordset.RecordCount = 0 Then

Prueba y me comentas. Un saludo >> Jacinto

Vale ya entra, ha sido un error de transcripción.

Pero cuando le doy al combo y selecciono en este caso el cliente, si el subfor tiene registros me indica que efectivamente los tiene, pero hay muchas veces que cuando selecciono en el combo un cliente, me indica que hay registros, y el subform aparece vacío, y efectivamente está vacío, porque no tiene ningún registro ni debe tenerlo. El subformulario tiene el origen de datos en una consulta que es filtrada por este combo.

Javier: Quizá ocurra que tiene registros que no visualizas por alguna extraña razón.

Realmente lo veo raro, pero puede ocurrir que la Consulta te devuelva "Registros vacíos".

Ahora no se me ocurreotra cosa. Mira si fuera eso y me comentas.

Si tiene alguna otra pista, nos ayudará alos dos a encontrar una solución. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas