Dudas con ElseIF

18/01/2007 - 01:10 por ~ jose ~ | Informe spam
Hola muy buenas,
tengo un problema de sintaxis (creo!)
porque no me funciona bien este código?

Private Sub CommandButton5ModificarDatos_Click()
If Len(TextBox3Titulo.Text) = 0 Then
MsgBox "Es obligatorio poner el título.", vbCritical, "Error al
rellenar el formulario."
TextBox3Titulo.SetFocus
ElseIf Len(TextBox7FechaPrestado.Text) > 0 Then
If Not IsDate(TextBox7FechaPrestado) Then
MsgBox "El formato de la fecha no es correcto.", vbCritical, "Error al
rellenar el formulario."
TextBox7FechaPrestado.SetFocus
ElseIf Len(TextBox8FechaDevuelto.Text) > 0 Then
If Not IsDate(TextBox8FechaDevuelto) Then
MsgBox "El formato de la fecha no es correcto.", vbCritical, "Error al
rellenar el formulario."
TextBox8FechaDevuelto.SetFocus
Else
'AQUI TENGO CÓDIGO QUE RELLENA UNAS CELDAS
End If
End If
End If
End Sub

Si ongo mal el formato de la fecha me lanza el mensaje, esto está
bien, pero si después corrijo la fecha el problema está cuando le
vuelvo a pulsar el botón, que no me rellena las celdas, me pasa
directamente al End If. He visto su comportamiento "paso a paso por
instrucciones".

Que tengo mal?, donde tengo que poner los end if?
He probado mil maneras y ná! no hay manera.

Gracias y un saludo, vale?
jose
 

Leer las respuestas

#1 Héctor Miguel
18/01/2007 - 02:14 | Informe spam
hola, jose !

tengo un problema de sintaxis (creo!) porque no me funciona bien este codigo? [...]
Si pongo mal el formato de la fecha me lanza el mensaje, esto esta bien
pero si despues corrijo la fecha el problema esta cuando le vuelvo a pulsar el boton
que no me rellena las celdas, me pasa directamente al End If.
He visto su comportamiento "paso a paso por instrucciones".
Que tengo mal?, donde tengo que poner los end if?
He probado mil maneras y ná! no hay manera.



si revisas el codigo expuesto con 'sangria' para distinguir los 'niveles' de ejecucion del codigo [al final del presente]...
[seguramente] podras comprobar que la estructura que estas usando...

1) NO te avisa si el largo de los textboxes de fecha es cero -?-
2) si el largo del textbox de fecha 'devuelto' es cero... NO se aplica el codigo que rellena las celdas -?-
3) [solo como comentarios] cuando un codigo If...ElseIf...End If 'entra' a un apartado, se omiten los restantes -?-

comentas [si encuentras} algun otro detalle ?
saludos,
hector.
__ el codigo expuesto con 'sangria' __
Private Sub CommandButton5ModificarDatos_Click()
If Len(TextBox3Titulo.Text) = 0 Then
MsgBox "Es obligatorio poner el título.", vbCritical, "Error al rellenar el formulario."
TextBox3Titulo.SetFocus
ElseIf Len(TextBox7FechaPrestado.Text) > 0 Then
If Not IsDate(TextBox7FechaPrestado) Then
MsgBox "El formato de la fecha no es correcto.", vbCritical, "Error al rellenar el formulario."
TextBox7FechaPrestado.SetFocus
ElseIf Len(TextBox8FechaDevuelto.Text) > 0 Then
If Not IsDate(TextBox8FechaDevuelto) Then
MsgBox "El formato de la fecha no es correcto.", vbCritical, "Error al rellenar el formulario."
TextBox8FechaDevuelto.SetFocus
Else
' AQUI TENGO CODIGO QUE RELLENA UNAS CELDAS
End If
End If
End If
End Sub

Preguntas similares