martes, 12 de febrero de 2019

Ciclos o bucles.

-1 Actitud de escucha, -1 Orden, -1 Aseo
Asignatura: Tecnología e Informática
Formación en Valor: Gratitud.
Núcleo Integrador: Ciclos o bucles.
Indicador de desempeño: Conoce y aplica los ciclos en Visual Basic.
Exploración Cognitiva
¿Conoces cómo funciona un ciclo?


Ciclos o bucles
Un bucle o ciclo, en programación, es una secuencia que ejecuta repetidas veces un trozo de código, hasta que la condición asignada a dicho bucle deja de cumplirse. Los tres bucles más utilizados en programación el bucle for y el bucle do-while.

Taller:
Desarrollar un formulario que permita:
1. Buscar información en la hoja de calculo, se busca la cédula escrita en el primer cuadro de texto, si existe mostrar la información.

2. Registrar o introducir información en la hoja de calculo. Se busca la cédula si existe no se puede introducir la información en la hoja de calculo.

3. Actualizar la información en la hoja de calculo, buscando por cédula. Solo si existe y el usuario desea es que se actualiza la información.

4. Al dar clic en el botón siguiente, borrar los datos de los cuadros de texto y pasar el cursor al cuadro de texto cédula.

Tenga en cuanta el siguiente diseño de formulario:

Para lo anterior se utiliza el siguiente código. Analice el funcionamiento.

Private Sub CommandButton1_Click()
  'BOTÓN BUSCAR
  Dim R As String, F As Integer, _
      Cedula As String, Nombre As String, _
      Direccion As String, Salario As Currency
  TextBox2 = ""
  TextBox3 = ""
  TextBox4 = ""
  F = 2
  R = "S"
  Cedula = TextBox1
  Do While R = "S"
    If Cedula = Hoja1.Cells(F, 1) Then
      Nombre = Hoja1.Cells(F, 2)
      Direccion = Hoja1.Cells(F, 3)
      Salario = Hoja1.Cells(F, 4)
      
      TextBox2 = Nombre
      TextBox3 = Direccion
      TextBox4 = Salario
      MsgBox "SE ENCONTRO LA CEDULA"
      Exit Sub
      
    End If
    F = F + 1
    If Hoja1.Cells(F, 1) = "" Then
      MsgBox "NO SE ENCONTRO LA CEDULA"
      R = "N"
    End If
  Loop
End Sub


Private Sub CommandButton2_Click()
  'BOTÓN REGISTRAR
  Dim R As String, F As Integer, _
      Cedula As String, Nombre As String, _
      Direccion As String, Salario As Currency
  
  F = 2
  R = "S"
  Cedula = TextBox1
  Do While R = "S"
    
    If Hoja1.Cells(F, 1) = Cedula Then
      MsgBox "La cedula existe, no se puede duplicar los datos!!"
      Exit Sub
    End If
    
    If Hoja1.Cells(F, 1) = "" Then
      Hoja1.Cells(F, 1) = TextBox1
      Hoja1.Cells(F, 2) = TextBox2
      Hoja1.Cells(F, 3) = TextBox3
      Hoja1.Cells(F, 4) = Val(TextBox4)
      MsgBox "SE REGISTRARON LOS DATOS"
      Exit Sub
      
    End If
    F = F + 1
  Loop
End Sub

Private Sub CommandButton3_Click()
  'BOTÓN ACTUALIZAR
  Dim R As String, F As Integer, _
      Cedula As String, Nombre As String, _
      Direccion As String, Salario As Currency
  
  F = 2
  R = "S"
  Cedula = TextBox1
  Do While R = "S"
    
    If Hoja1.Cells(F, 1) = Cedula Then
      If MsgBox("La cedula existe, Desea actualizar sus datos!!", vbYesNo, "PREGUNTA") = vbYes Then
        Hoja1.Cells(F, 1) = TextBox1
        Hoja1.Cells(F, 2) = TextBox2
        Hoja1.Cells(F, 3) = TextBox3
        Hoja1.Cells(F, 4) = Val(TextBox4)
        MsgBox "SE ACTUALIZARON LOS DATOS"
        R = "N"
        Exit Sub
      End If
    End If
    
    If Hoja1.Cells(F, 1) = "" Then
      R = "N"
      Exit Sub
    End If
    F = F + 1
  Loop
End Sub

Private Sub CommandButton4_Click()
    'BOTÓN SIGUIENTE
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox1.SetFocus
End Sub


Tenga en cuenta:

Do While: Es un tipo de ciclo que se ejecuta siempre y cuando la condición sea verdadera, al ser falsa la condición el ciclo se interrumpe.

Loop: hace parte del ciclo Do While, al encontrar la instrucción Loop el ciclo evalúa si la condición del Do While es verdadera, en caso afirmativo el ciclo continua, en caso falso el ciclo termina.

Exit Sub: Esta instrucción termina la ejecución del código.

MsgBox: Esta instrucción permite mostrar un mensaje en una caja.

Hoja1.Cells(F, 1)
Esta línea de código  hace referencia a la Hoja1 con celda ubicada en fila con valor F y columna 1.

If Hoja1.Cells(F, 1) = "" Then
Aquí se pregunta si la ubicación de la celda no contiene nada o esta vacía.

TextBox1.SetFocus
Pasa el cursor al cuadro de texto TextBox1

F = F + 1
Incrementa en 1 el valor que guarda F.

No hay comentarios:

Publicar un comentario