sábado, 5 de diciembre de 2020

Sexta Parte del Crud Botón Agregar

 Continuamos con la siguiente entrada al Blog con el objeto de insertar un botón para agregar un registro con los datos introducidos en el formulario. Por supuesto, lo que haremos será copiar nuestro botón, y le insertaremos el icono que más nos guste para este botón.

Realizaremos la macro Agregar  y posteriormente se la asignaremos a nuestro botón.

Esta es la macro Agregar

With BBDD

    'recuperando variable de los datos

    Dim Id As Long

    Dim Fecha As Date

    Dim Tipo, Musculo, Ejercicio, Repeticiones, Peso As String

    Dim Serie As Integer

        'lo escrito en los espacios lo almacenamos en variables

    Fecha = Formulario.Cells(5, 3)

    Tipo = Formulario.Cells(7, 3)

    Musculo = Formulario.Cells(9, 3)

    Ejercicio = Formulario.Cells(11, 3)

    Serie = Formulario.Cells(13, 3)

    Repeticiones = Formulario.Cells(15, 3)

    Peso = Formulario.Cells(17, 3)

    'calculamos la ultima fila para poder ingresar el registro

    Dim fila, filamax As Long

    filamax = .UsedRange.Rows.Count

    'obtenemos el codigo nuevo que es uno mas que el anterior

       Id = .Cells(filamax, 1) + 1

    'MsgBox Id

'grabar la fila nueva

    'vamos a realizar una validación

    If Fecha = Empty Then

        MsgBox "El campo Fecha no puede estar vacio"

    ElseIf Tipo = "" Then

        MsgBox "El campo Tipo no puede estar vacio"

    ElseIf Musculo = "" Then

        MsgBox "El campo Músculo no puede estar vacio"

    ElseIf Ejercicio = "" Then

        MsgBox "El campo Ejercicio no puede estar vacio"

    ElseIf Serie = 0 Then

        MsgBox "El campo Serie no puede estar vacio"

    ElseIf Repeticiones = "" Then

        MsgBox "El campo Repeticiones no puede estar vacio"

    Else

        .Cells(filamax + 1, 1) = Id

        .Cells(filamax + 1, 2) = Fecha

        .Cells(filamax + 1, 3) = UCase(MonthName(Month(Fecha), False))

        .Cells(filamax + 1, 4) = Year(Fecha)

        .Cells(filamax + 1, 5) = UCase(Tipo)

        .Cells(filamax + 1, 6) = UCase(Musculo)

        .Cells(filamax + 1, 7) = UCase(Ejercicio)

        .Cells(filamax + 1, 8) = Serie

        .Cells(filamax + 1, 9) = Repeticiones

        .Cells(filamax + 1, 10) = Peso

        MsgBox ("Registro Completado")

        'limpiamos los campos

        limpiar

 End If

End With

End Sub 


Macro limpiar:

Sub limpiar()

With Formulario

    .Cells(3, 3) = "" 'Codigo

    .Cells(5, 3) = "" 'fecha

    .Cells(7, 3) = "" 'Tipo

    .Cells(9, 3) = "" 'Musculo

    .Cells(11, 3) = "" 'Ejercicio

    .Cells(13, 3) = "" 'Series

    .Cells(15, 3) = "" 'Repeticiones

    .Cells(17, 3) = "" 'Peso

    'nos posicionamos

    .Cells(5, 3).Select 'fecha

End With

End Sub

En principio comenzaremos crean una serie de variables que necesitaremos para agregar nuestro  registro. Posteriormente le asignaremos el valor a cada variable de lo introducido en cada celda de nuestra hoja formulario.

La primera que hemos utilizado es el caso de :

Fecha = Formulario.Cells(5, 3).

Esto lo que hace es que la variable Fecha será igual a lo introducido en la hoja formulario, exactamente en nuestra celda de fila 5 y columna C. Y el resto igual.

En la segunda parte de la macro lo que hos hace es que la variable filamax nos calcula la ultima fila con datos y a partir de ahí le asignamos el valor a la variable Id el número siguiente al introducido en la última fila de la columna A.

Seguidamente lo que vamos a inscribir el nuevo registro, pero para ello realizaremos primero una validación, por si nos falta algún dato que no hayamos introducido. En el caso de que hayamos rellenado todos los campos nos introducirá el registro en la base de datos y nos mostrará un mensaje de Registro Completado, y posteriormente nos limpiará los registros, que esto lo tenemos en una nueva macro llamada limpiar.

La macro limpiar lo único que hace es que una vez realizado el registro nos limpia los campos de la hoja formulario y se posiciona en la celda de la fecha.


No hay comentarios:

Publicar un comentario

Gracias por participar en esta página.