Es posible ejecutar varios Docmd.Runsql seguidos al pulsar un botón en formulario Access?.

En concreto quiero hacer esto:

Private Sub Comando2_Click()

Dim SQLString As String

SQLString = "UPDATE Avisos "
SQLString = SQLString & "SET Avisos.Aviso_apenom = REPLACE(Avisos.Aviso_apenom,'é','e') "
SQLString = SQLString & "WHERE Mid$(Avisos.Aviso_apenom,1,1)='G'"

DoCmd.RunSQL (SQLString)

Dim SQLStringb As String

SQLStringb = "UPDATE Avisos "
SQLStringb = SQLString & "SET Avisos.Aviso_apenom = REPLACE(Avisos.Aviso_apenom,'í','i') "
SQLStringb = SQLString & "WHERE Mid$(Avisos.Aviso_apenom,1,1)='C'"

DoCmd.RunSQL (SQLStringb)

End Sub

El primer UPDATE lo hace bien, pero al ejecutar el segundo mde da este error:

Se ha producido el error 3075 en tiempo de ejecución

Error de sintaxis (falta operador) en la consulta

Será una tontería que me falta por el medio, pero no lo consigo.

1 Respuesta

Respuesta
1

Por lo que veo en el código que pones, en la segunda SQL tenes una cosa mal:

SQLStringb = "UPDATE Avisos "
SQLStringb = SQLStringb & "SET Avisos.Aviso_apenom = REPLACE(Avisos.Aviso_apenom,'í','i') "
SQLStringb = SQLStringb & "WHERE Mid$(Avisos.Aviso_apenom,1,1)='C'"

Mira a ver si es por eso por lo que te da el error.

Como comentario, te comento que no te haría falta definir la nueva variable SQLStringb, este código te funcionaria lo mismo:

Private Sub Comando2_Click()
Dim SQLString As String
SQLString = "UPDATE Avisos "
SQLString = SQLString & "SET Avisos.Aviso_apenom = REPLACE(Avisos.Aviso_apenom,'é','e') "
SQLString = SQLString & "WHERE Mid$(Avisos.Aviso_apenom,1,1)='G'"
DoCmd.RunSQL (SQLString)
<br class="scayt-misspell" data-scayt_word="Dim" data-scaytid="103" />SQLString = "UPDATE Avisos "
SQLString = SQLString & "SET Avisos.Aviso_apenom = REPLACE(Avisos.Aviso_apenom,'í','i') "
SQLString = SQLString & "WHERE Mid$(Avisos.Aviso_apenom,1,1)='C'"
DoCmd.RunSQL (SQLString)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas