Problemas con la sentencia UPDATE

Estoy intentando crear un botón de modificación, y al poner la sentencia update me da el siguiente error y no se como corregirlo a ver si me puedes echar una mano

El Error es este:

"No se puede hacer referencia a una propiedad o a un método para un control al menos que el control tenga el enfoque"

La sentencia que le pongo es esta, a ver si esta correcta:

Private Sub Guardar_Click()
Dim actualiza As String
If MsgBox("Deseas Guardar el Registro", vbQuestion + vbYesNo, "Guardar Registro") = vbYes Then
actualiza = "UPDATE Definiciones SET Concepto '" & Concepto.Text & "', Nota = '" & Nota.Text & "', Vease_Termino = '" & Vease_termino.Text & "', Termino_AAP = '" & Termino_AAP.Text & "', Def_AAP_Ingles = '" & Def_AAP_Ingles.Text & "', Def_AAP_Español = '" & Def_AAP_Español.Text & "', Termino_OTAN = '" & Termino_OTAN.Text & "', Definicion_OTAN = '" & Definición_OTAN.Text & "', Term_equi_AAP = '" & Term_equi_AAP.Text & "', Def_equi_AAP = '" & Def_equi_AAP.Text & "', Usuario = '" & Usuario.Text & "' WHERE Ind_definiciones = " & Ind_definiciones.Text & ""
CurrentDb.Execute actualiza
MsgBox "El Registro se ha modificado correctamente", vbInformation, "Guardar Registro"
Else
MsgBox "No se ha modificado el Registro", vbInformation, "Guardar Registro"
End If
End Sub

1 respuesta

Respuesta
1

He puesto en mismo código que me has puesto para hacer una prueba y no me da ningún error,

Revisa a ver si tienes algún control que pongas las propiedades Enabled o Visible a false, es lo único que se me ocurre que pueden dar ese error.

Muy buenas otra vez.

En las propiedades del formuilario les tengo puesto en todos los campos la propiedad enabled en false y la propiedad locked en true ya que lo que quiero que al entrar en ese formulario no permita modificar ninguna caja del texto, pero cuando le des al botón de modificar las propiedades de los campos los pongo enabled en true y locked en false para que te deje modificar todos los campos y una vez que esta modificado lo que el usuario quiere le doy a un botón donde grabo todos los campos y ahí es donde pongo la sentencia update en todos los campos y es donde me da el error.

Gracias.

Si te parece bien y no te importa te subo la base de datos a dropbox y le echas un vistazo ya que llevo toda la mañana intentado solucionar este problema, y no consigo adelantar nada, lo he cambiado a enabled en true en todos y nada, le he dado un montón d vueltas y la sintaxis es correcta según mi parecer, me harías un gran favor para poder continuar trabajando en la base de datos.

Muchísimas gracias.

PD. Podrías mirar la propiedad dirty por si la sintaxis no esta bien.

Mil Gracias

https://www.dropbox.com/s/l29vsrj1377w7d1/Terminos.accdb

Ya he descargado la base de datos. ¿Cuál es el formulario que te da error?

El F_modificar.

Ya he visto cual es la causa. La tabla que quieres modificar está vinculada al formulario cuando se ejecuta. No necesitas actualizar nada ya que lo hace de forma automática.

La única forma de poder hacerlo manualmente (por medio del código) sería que el formulario no estuviera vinculado a la tabla, ya sea directamente o a través de una consulta.

Hacer esto requiere desvincular los controles del subformulario de los campos de la tabla/consulta, crear un recordset con los datos apropiados y luego cargar todos los datos en los controles por medio de programación.

Esta es la única forma de hacerlo sin errores.

Buenas Tardes otra vez, perdona por la tabarra que te estoy dando, pero lo he echo como me sugeriste desvinculando el subformulario a ninguna tabla (es decir lo he puesto todo el subformulario independiente), pero cuando estoy haciendo el recorset y al ponerle el select y mandar todos los campos a la caja de texto pues siempre en el subformulario me sale el primer registro de la tabla definiciones y no el que le digo que iguale y no consigo sacar el dato que yo quiero, a ver si serias tan amable de sugerirme algo o de decirme en donde cometo el error.

El código que pongo es este:

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("select * from Definiciones where definiciones.histórico = false and Definiciones.Ind_Definiciones =" & Me.Ind_definiciones)
Me.TxtConcepto.SetFocus
TxtConcepto.Text = rs!Concepto
Me.TxtNota.SetFocus
TxtNota.Text = rs!Nota
Me.TxtVease_termino.SetFocus
TxtVease_termino.Text = rs!Vease_termino
Me.TxtTermino_AAP.SetFocus
TxtTermino_AAP.Text = rs!Termino_AAP
Me.TxtDef_AAP_Ingles.SetFocus
TxtDef_AAP_Ingles.Text = rs!Def_AAP_Ingles
Me.TxtDef_AAP_Español.SetFocus
TxtDef_AAP_Español.Text = rs!Def_AAP_Español
Me.TxtTermino_OTAN.SetFocus
TxtTermino_OTAN.Text = rs!Termino_OTAN
Me.TxtDefinición_OTAN.SetFocus
TxtDefinición_OTAN.Text = rs!Definición_OTAN
Me.TxtTerm_equi_AAP.SetFocus
TxtTerm_equi_AAP.Text = rs!Term_equi_AAP
Me.txtDef_equi_AAP.SetFocus
txtDef_equi_AAP.Text = rs!Def_equi_AAP
Me.TxtUsuario.SetFocus
TxtUsuario.Text = rs!Usuario
rs.Close
Set rs = Nothing

Muchas Gracias otra vez.

Saludos.

Muchas Gracias por tu ayuda, ya he podido hacerlo, ya se en donde estaba el error.

En que le ponía un UPDATE, pero lo que no sabia es que se actualizaba cualquier caja de texto en la tabla sin necesidad de UPDATE, lo hace automáticamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas