Botón visible si se cumple una condición

Tengo una tabla con dos campos: un autonumérico y otro llamado empresas. Normalmente cada empresa tiene un único registro asociado pero excepcionalmente hay empresas que tienen más de un registro (Por ejemplo sería algo así):

id         empresa              sector

1          EMPRESA 1          MARKETING

2          EMPRESA 2          CONSTRUCCIÓN

3          EMPRESA 3          ASESORÍA

4          EMPRESA 2          GESTIÓN

5          EMPRESA 4          MARKETING

Ahora tengo un formulario que rescata los datos de esa tabla según la empresa que esté consultando. Lo que me gustaría es que en ese formulario, si la empresa en cuestión tiene más de un registro (sería el caso de la EMPRESA 2), se activara un Botón que permitiera navegar entre esos dos registros, es decir, me abriera los datos del primer registro de la EMPRESA 2 y luego en el botón "Siguiente Registro" al pulsar fuera al siguiente registro de esa empresa. Pero si la empresa en cuestión solo tiene un registro, ese botón de "Siguiente Registro" no apareciera.

2 respuestas

Respuesta

No dices donde escribes o eliges el nombre de la empresa, para que te "rescate" sus datos. Así, que vamos a suponer que en un combinado, al que llamaremos Elegir, seleccionas el nombre de una empresa. En sus propiedades-eventos-Después de actualizar crea un procedimiento de evento y entre Private Sub y End Sub puedes poner

me.recordsource="select * from empresas where empresa='"& me.elegir & "'"

If dcount("*","Empresas","empresa='" & me.elegir & "'")>1 then

nombredelbotón.enabled=true

else

nombredelboton.enabled=false

end if

Me explico. Cuando en el combinado Elegir seleccionas una empresa, primero te pone como origen de registros del formulario aquellos de la tabla Empresas en que el campo Empresa sea igual al que has elegido. Segundo, comprueba cuantos registros hay con esa empresa y si hay más de uno, habilita el botón y si sólo hay uno lo deshabilita.

Respuesta

Le preparé este ejemplo

TABLA

FORMULARIO

Selecciono EMPRESA 2, observe que el botón de navegación muestra Registro 1 de 2. Ahora hago clic sobre el botón de flecha (siguiente) y obtengo:

Obtengo el segundo registro con el nombre EMPRESA 2. Ahora selecciono la EMPRESA 3 y obtengo:

El botón de navegación muestra Registro 1 de 1 y se ocultan los botones de flecha anterior y siguiente.

Codigo del cuadro combinado

Private Sub cboFiltrar_AfterUpdate()
  Me.Filter = "empresa=" & "'" & Trim(Me.cboFiltrar.Column(1)) & "'"
  Me.FilterOn = True
  If Me.RecordsetClone.RecordCount > 1 Then
    Me.btnSiguiente.Visible = True
    Me.btnAnterior.Visible = True
  Else
    Me.btnSiguiente.Visible = False
    Me.btnAnterior.Visible = False
  End If
End Sub

Es más rápido filtrar que utilizar Me.RecordSource="SELECT ......." cuando la tabla tiene bastantes registros, por ejemplo 20 mil.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas