Visual Basic - CONDICIONAR DOS COMBOS Y UN TEXBOX.

Life is soft - evento anual de software empresarial
 
Vista:

CONDICIONAR DOS COMBOS Y UN TEXBOX.

Publicado por Pedro (26 intervenciones) el 16/10/2002 00:56:41
Hola, tengo en un formulario un textbox y dos Combobox, text1, Combo1 y Combo2. Quiero que en ejecución se utilicen para que el usuario introduzca una fecha: en el textbox el día (en dos dígigos), en el Combo1 que seleccione el mes, y en el Combo2 el año. Pues bien, qué código necesito para que cuando por ej. el mes sea febrero se limite el día al día 28 como máximo, excepto en años bisiestos (ej. 2004) que permita hasta el día 29. Es decir que condicione el mes con el día y el año. He probado con la sentencia If Then pero no sé condicionar dos o más controles a la vez como es el caso.
Gracias de antemano.
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:CONDICIONAR DOS COMBOS Y UN TEXBOX.

Publicado por Alvaro Marín (574 intervenciones) el 16/10/2002 09:55:32
Estimado amigo:
Yo no me complicaría la vida y después de tener controlado lo de los años bisiestos que supongo ya lo tendrás y si no visita www.ambsoftware.com y busca por la palabra "bisiesto" que encontrarás una rutina para controlarlo, lo que haría sería tener tres combos distintos para los días del mes, de forma que iría jugando con ellos en lo referente a la propiedad Visible mostrando únicamente el
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:CONDICIONAR DOS COMBOS Y UN TEXBOX.

Publicado por Alvaro Marín (574 intervenciones) el 16/10/2002 09:57:58
Perdona pero le día sin querer al botón de enviar mensaje...
Pues eso, que juegues con mostrar a través de la propiedad Visible el que corresponda en cada momento, ya que uno de ellos lo tendrás con una lista de 30 días, otro con una lista de 31, otro con una de 28 y por último el de los años bisiestos con la lista de 29 días.
En fin, espero que te sirva la sugerencia.
Un saludo y suerte
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

Gracias a todos...

Publicado por Pedro (26 intervenciones) el 17/10/2002 00:02:47
Sois geniales, gracias, buena idea Álvaro no se me había ocurrido. Gracias también a Alh y a Pedro Luís, voy a probarlo en seguida. Por cierto Álvaro Marín, no puedo entrar en tu página, (te envié un e-mail avisándote de que falla el Link). Ya la he visitado en otras ocasiones, muy práctica y útil.
Saludos a todos.
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

Ya funciona el link

Publicado por Pedro (26 intervenciones) el 17/10/2002 00:14:11
Ya funciona el link a la página de Álvaro Marín: www.ambsoftware.com, quizás el problema lo tenía yo.
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:CONDICIONAR DOS COMBOS Y UN TEXBOX.

Publicado por Pedro Luis (878 intervenciones) el 16/10/2002 18:39:43
Me imagino que esa fecha la compondrás para guardarla y en ese momento puedes textarla if not isdate(fecha) then mensaje.
¿Que lo quieres dificil? pues entonces recuerda que los años bisiestos son divisibles por cuatro
if (mes="Enero" or mes="Marzo or ...) and dia>31 then mensaje
if (mes="Abril" or mes="junio" or ... ) and dia>30 then mensaje
if mes="Febrero" and mod(año,4)=0 and dia>29 then mensaje
if mes="Febrero" and mod(año,4>0 and dia>28 then mensaje
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:CONDICIONAR DOS COMBOS Y UN TEXBOX.

Publicado por ALH (278 intervenciones) el 16/10/2002 22:10:51
Esto fue lo que se me ocurrio, esta algo confuso, pero funciona, ademas debo ser claro al decirte que la condicion funciona hasta el final, es decir cuando el usuario a terminado de escribir o seleccionar el año, no cuando introduce el dia, mira:

Private Sub Command1_Click()
Dim A As Integer
Dim UltimaCifra As String
Dim Bisiesto As Boolean
UltimaCifra = Right(Combo2.Text, 2) 'Obtenemos los 2 ultimos #'s
If Val(UltimaCifra) = 0 Then 'Si es cero
UltimaCifra = Left(Combo2.Text, 2) 'Obtenmos los 2 primeros #'s
End If
A = Val(UltimaCifra) Mod 4 ' si las cifras q obtuvimos, primeras o ultimas cifras son divisibles entre 4, entonces
If A = 0 Then
Bisiesto = True 'es bisiesto
Else
Bisiesto = False 'de lo contrario no lo es
End If
'Aqui analizamos lo q el usuario escribio y condicionamos
If Text1.Text = "29" And Combo1.Text = "02" And Bisiesto = False Then
MsgBox "El dia que introdujo es incorrecto, febrero solo tienes 28 dias"
Text1.SetFocus
End If
End Sub

Bueno, fue lo q se me ocurrio, ya lo probe y funciona, espero q te sirva....

Saludos!!!
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