Problema al modificar un registro de una base de datos

Tengo el siguiente código para modificar un registro

Private Sub CommandButton5_Click()
'botón de modificar, los datos del ejercicio seleccionado, sobre la misma fila
Dim fila As Integer
Dim Ffinal As Integer
Dim i As String
For fila = 4 To 2000
    If Sheets("BaseDatosEjercicios").Cells(fila, 7) = Empty Then
        Ffinal = fila - 1 'restamos 1 porque queremos modificar, no añadir
Exit For
    End If
Next
For fila = 4 To Ffinal
    If cmbBuscador.text = Sheets("BaseDatosEjercicios").Cells(fila, 7) Then
        Cells(fila, 1) = TextBox1.Text
        Cells(fila, 2) = TextBox2.Text
        Cells(fila, 3) = TextBox3.Text
        Cells(fila, 4) = TextBox4.Text
        Cells(fila, 5) = TextBox5.Text
        Cells(fila, 6) = TextBox6.Text
        Cells(fila, 7) = TextBox7.Text
        Cells(fila, 8) = TextBox8.Text
        Cells(fila, 9) = TextBox9.Text
        Cells(fila, 10) = TextBox10.Text
        Cells(fila, 11) = TextBox11.Text
        Cells(fila, 12) = TextBox12.Text
        Cells(fila, 13) = TextBox13.Text
        Dim res
        res = MsgBox("Ha modificado la imagen?", vbQuestion + vbYesNo, "IMAGEN")
        If res = vbYes Then
            Cells(fila, 14) = RutaImagen
        Else
            Cells(fila, 14) = txtNombreImagen
        End If
        MsgBox "El ejercicio se ha modificado con éxito", vbInformation + vbOKOnly, "MODIFICAR EJERCICIO"
txtImagen.Picture = LoadPicture("") 'borramos la ultima imagen seleccionada
Call ComboBoxEjercicio 'actualiza la lista total de ejercicios
Call ordenarBDejercicio 'ordena la base de datos
Call nuevocódigo 'genera nuevo código de registros
CommandButton2.Enabled = True 'Activa el botón de guardar
Exit For
    End If
Next
End Sub

El problema es que sólo modifica datos hasta el textbox7 (el nombre), lo pasa correctamente a la hoja y al buscarlo de nuevo salen los datos con la modificación. Pero desde el textbox8 en adelante si modifico o añado algun dato en dichos textbox, no se guardan. Desconozco el motivo.

Antes funcionaba bien pero hice una modificación en el ComboBoxEjercicio (lo utilizo para actualizar la lista de ejercicios del buscador) pasando del código

Private Sub ComboBoxEjercicio()
'Sirve para que aparezca una lista con todos los ejercicios en cmbBuscador
    trows = Worksheets("BaseDatosEjercicios").Range("A1").CurrentRegion.Rows.Count
    cmbBuscador.Clear 'se borra la lista de ejercicios
    For i = 4 To trows
        cmbBuscador.AddItem Worksheets("BaseDatosEjercicios").Cells(i, 7).Value 'Se carga la lista de ejercicios
    Next i
End Sub

Al siguiente código

Private Sub ComboBoxEjercicio()
'Sirve para que aparezca una lista con todos los ejercicios en cmbBuscador
cmbBuscador = ""
Me.cmbBuscador.RowSource = "ListaEjercicios"
End Sub

La modificación la hice con el fin de buscar el dato con la condición del tipo de ejercicio y agilizar tiempo de búsqueda pero me daba problemas en el "call ComboBoxEjercicio"

ss

En fin, tras todas las modificaciones, funciona todo perfecto excepto por ese detalle del boton modificar y tras horas dandole vueltas no se cual es la solución.

1 respuesta

Respuesta
1

El detalle que veo es que estás reemplazando en la misma celda que buscar por el combo por el textbox7:

Aquí buscas en cells(fila, 7) lo que tienes en el combo

If cmbBuscador.text = Sheets("BaseDatosEjercicios").Cells(fila, 7) Then

Y en esta parte reemplazas el contenido de esa misma celda por lo que tienes en el textbox7

Cells(fila, 7) = TextBox7.Text

Si combBuscador y textbox7 son iguales, entonces el problema es otro.

Envíame tu archivo, me explicas cómo funciona tu formulario y lo reviso

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Esteban Tierra Arias” y el título de esta pregunta.

Gracias por la aclaración del código, no lo interpretaba pero algun bucle así me imaginaba.

Le he dado una vuelta y he añadido un listbox al buscador para sacar los tipos de ejercicio al listbox (en lugar de sacarlos al segundo combobox) y así no entorpecer el rango de lista de ejercicios del ComboboxEjercicio que se saca directamente de la hoja, entonces la he dejado como lo tenía al principio. He puesto que el item seleccionado del listbox se muestre en el combo (pero no borra la lista, solo lo selecciona y asi  aparezca toda la información y pueda modificar o añadir. He agilizado la búsqueda, se puede modificar y 0 problemas. 

Gracias igualmente! un saludo Dante

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas