Access - Una ayuda porfa

   
Vista:

Una ayuda porfa

Publicado por Rafi (66 intervenciones) el 12/01/2008 12:24:19
Hola a todos y Feliz año. Vereis estoy adaptando una BD "planing Hotel" encontrada en la Web del Buho, a mi establecimiento. Esta BD original tiene una función para colorear cuadros de texto independientes en un calendario, pero solo tiene la opción de poner dos colores y no consigo, pués no controlo bien los códigos, añadir un tercer color a una funcion de un módulo llamado semana. Ya modifiqué todas las funciones de los form que enlazan con éste y que os pongo a ver si podeis a yudarme:

Function CambiaColorSemana()
Dim ctl
Dim frm As Form

Set frm = Forms!frmocupacionsemanal!SubformSemana.Form 'Asignamos SubformSemana a una variable

For Each ctl In frm.Controls 'Recorremos todos los controles de SubFormSemana
If ctl.ControlType = acTextBox Then 'si es un cuadro de texto
If ctl.Value <> "" And Not IsNull(ctl.Value) Then 'Si está Ocupado
If ctl.Tag = "1" Then 'Si el Tag es 1 ==> Simple = Naranja
ctl.BackColor = 33023 'Naranja
Else 'En otro caso = Doble = Rojo
ctl.BackColor = 255 'Rojo
End If
Else 'Si no está ocupado
ctl.BackColor = 65280 'Verde
End If
End If
Next ctl

Set ctl = Nothing
Set frm = Nothing

End Function

Yo quisiera añadir el tercer color que sería esto:

Else 'En otro caso = Triple = Rosa
ctl.BackColor = 16744703 'Rosa

Corrí el código de la siguiente forma:
For Each ctl In frm.Controls 'Recorremos todos los controles de SubFormSemana
If ctl.ControlType = acTextBox Then 'si es un cuadro de texto
If ctl.Value <> "" And Not IsNull(ctl.Value) Then 'Si está Ocupado
If ctl.Tag = "1" Then 'Si el Tag es 1 ==> Simple = Naranja
ctl.BackColor = 33023 'Naranja
If ctl.Tag = "2" Then 'Si el Tag es 2==> Triple= Rosa
Else............................................................................................................................pero no me aclaro con los End If y Each, así que me salen errores de compilación diciendome que faltan End If y For que no se aplicar. Espero podais entenderlo así como lo puse, cosa un poco dificil ya que sin la BD al completo se complica el entender, pero espero vuestros comentarios como agua de mayo. GRACIAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Una ayuda porfa

Publicado por Victoria (1530 intervenciones) el 12/01/2008 12:38:56
Hola:

En vez de: If ctl.Tag = "2" Then 'Si el Tag es 2==> Triple= Rosa
tienes que poner:

else If ctl.Tag = "2" Then 'Si el Tag es 2==> Triple= Rosa

Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Una ayuda porfa

Publicado por Rafi (66 intervenciones) el 12/01/2008 14:09:01
No lo consigo Victoria, haciendo lo que me dices me da error de compilación
"Next sin For"
Podrías seguir ayudándome, si es posible ponme el código completo para contrastar con el mio. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Una ayuda porfa

Publicado por Victoria (1530 intervenciones) el 12/01/2008 20:22:16
Hola:

Al pegarlo aquí pierde la indexación. Te recomiendo que pongas siempre

Function CambiaColorSemana()
Dim ctl
Dim frm As Form

Set frm = Forms!frmocupacionsemanal!SubformSemana.Form 'Asignamos SubformSemana a una variable

For Each ctl In frm.Controls 'Recorremos todos los controles de SubFormSemana

If ctl.ControlType = acTextBox Then 'si es un cuadro de texto

If ctl.Value <> "" And Not IsNull(ctl.Value) Then 'Si está Ocupado

If ctl.Tag = "1" Then 'Si el Tag es 1 ==> Simple = Naranja

ctl.BackColor = 33023 'Naranja

ElseIf ctl.Tag = "2" Then 'Si el Tag es 2==> Triple= Rosa

ctl.BackColor = 16744703 'Rosa

Else 'En otro caso = Doble = Rojo

ctl.BackColor = 255 'Rojo

End If

Else 'Si no está ocupado

ctl.BackColor = 65280 'Verde

End If

End If
Next ctl

Set ctl = Nothing
Set frm = Nothing

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Una ayuda porfa

Publicado por Rafi (66 intervenciones) el 12/01/2008 23:15:49
Gracias Victoria, lo implementé comparándolo con el código de mi BD, y teniendo en cuenta lo de la indexación, y funciona perfectamente. Desde luego a veces las cosas son tan fáciles que una se pone a darles vueltas y vueltas hasta que tiras la tohalla. Bueno tambien la flojera de no estudiar un poco más sobre las instruccionesde VB. Gracias de nuevo y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar