Continuamos con la siguiente entrada al Blog con el objeto de insertar un botón para actualizar 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.
Primero, tenemos que tener en cuenta que solamente podemos buscar por el id. Una vez que hemos encontrado el registro, podremos variar todos los datos menos el Id, y una vez modificado el apartado, le daremos al botón Actualizar.
Crearemos una macro llamada actualizar y se la asignaremos a nuestro botón.
Sub Actualizar()
With BBDD
'recuperando el codigo actualizar
'recuperamos las variables
Dim Id As Long
Dim Fecha As Date
Dim Tipo, Musculo, Ejercicios, Repeticiones, Peso As String
Dim Series As Integer
'capturamos los datos obtenidos de la busqueda
Id = Formulario.Cells(3, 3)
Fecha = Formulario.Cells(5, 3)
Tipo = Formulario.Cells(7, 3)
Musculo = Formulario.Cells(9, 3)
Ejercicios = Formulario.Cells(11, 3)
Series = Formulario.Cells(13, 3)
Repeticiones = Formulario.Cells(15, 3)
Peso = Formulario.Cells(17, 3)
'buscamos la linea
Dim fila, filamax As Long
'calculamos la ultima fila ingresada
filamax = .UsedRange.Rows.Count 'nos da como resultado 8 la última fila con datos de la bbdd
For fila = 2 To filamax
If (.Cells(fila, 1) = Id) Then
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 Ejercicios = "" Then
MsgBox "El campo Ejercicios no puede estar vacio"
ElseIf Series = 0 Then
MsgBox "El campo series no puede estar vacio"
ElseIf Repeticiones = "" Then
MsgBox "El campo Repeticiones no puede estar vacio"
Else
.Cells(fila, 2) = Fecha
.Cells(fila, 3) = UCase(MonthName(Month(Fecha), False))
.Cells(fila, 4) = Year(Fecha)
.Cells(fila, 5) = UCase(Tipo)
.Cells(fila, 6) = UCase(Musculo)
.Cells(fila, 7) = UCase(Ejercicios)
.Cells(fila, 8) = Series
.Cells(fila, 9) = Repeticiones
.Cells(fila, 10) = Peso
'mensaje todo correcto
MsgBox "Registro Actualizado"
'limpiar
limpiar
End If
End If
Next fila
End With
End Sub
En principio comenzaremos crean una serie de variables que necesitaremos para capturar los datos que hemos obtenido en la búsqueda y cargarlos en las variables creadas.
Hemos vuelto a crear dos variables una fila y la otra filamax, que lo que hace el caso de filamax es calcularnos la última fila con datos, y la variable fila es para recorrer todas las filas.
En la parte siguiente creamos un ciclo donde nos encontrará en la hoja de la base de datos el valor que nos consta en la variable Id, para que posteriormente donde coincida el valor de Id nos actualice el resto de columnas con los datos modificados en las celdas correspondientes.
Todo esto viene de bbdd.Cells(fila, 1) = Id, donde coincida actualizará con los datos que existen en el formulario con las columnas siguientes.
Por supuesto, hemos creado una validación por si vaciamos algún campo por error, para que no nos actulice el registro.
No hay comentarios:
Publicar un comentario
Gracias por participar en esta página.