Coloracion de Combobox en ciertas condiciones

Tengo una plantilla de access con 4 combobox( cboxyear, cboxcountry, cboxcity y cboxrestricciones).

Estos combobox estan interconectados entre ellos atravez de una linea en SQL y la funcion rowsource ademas no importa con que combobox se empieza a filtrar. Pero quisiera que si por ejemplo selecciono Cboxcountry ( Mexico) ;el combobox "cboxrestricciones" se vuelva de color verde si es que existe alguna restriccion para el pais mexico y si no se mantenga de color blanco.

He intentado lo siguiente

Privat sub Color()

dim varcountry as byte

if isnull(me.cboxcountry) or me.cboxcountry="" then

varcountry=0

else varcountry=1

end if

if varcountry=0 and cboxrestriccion.listcount=0 then

cboxrestriccion.backcolor=vbwhite

elseif varcountry=1 and cboxrestriccion.listcount=0 then

cboxrestriccion.backcolor=vbwhite

elseif varcountry=1 and cboxrestriccion.listcount<>0 then

cboxrestriccion.backcolor=vbgreen

end if 

end sub

He intentado esto pero el combobox Restricciones se mantiene verde ya sea con elementos en la lista o no.

1

1 Respuesta

445.625 pts.

Daniel: En mi opinión no has de sondear el Combo de Restricciones, sino lo que hay detrás de él.

Me explico >> El combo tendrá una Tabla o Consulta, en la que un Pais dado, ejemplo el 50 tenga 2 restricciones, el País 80 0 Restricciones...

Voy a suponer que esas Restricciones están en una Tabla con el mismo Nombre >>"Restricciones""

Esa tabla tendrá IdRestriccion, IdPais entre otros.

Entonces el Sondeo debe ser en el AfterUpdate de CBoxCountry, aproximadamente así, suponiendo además que la primera columna de CBoxCountry es IdPais >> Numérico.

Private Sub CBoxCountry_AfterUpdate()
If Is Null(Me.CboxCountry) Or Me.CBoxCounry = “” Then
    MsgBox “Para seguir, el País ha de tener un valor”,vbCritical, “INFORMAR PAIS”
    Exit Sub
End If
‘Si llega aquí es que el Combo CBoxCountry tiene un valor
If Nz(DCount(“IdPais”,”Restricciones”,”IdPais = “ & Me.CboxCountry.Column(0)),0) = 0 Then
      Me.CBoxRestriccion.BackColor = RGB(255,255,255)
Else    
      Me.CBoxRestriccion.BackColor = RGB(0,255,0)
End If
End Sub

Debs adaptarlo a los Nombres que tú tengas. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas