Actualizar Dato en tabla desde un Formulario

Amigazo, me puedes ayudar con este código sql. Tengo conocimientos en access pero soy nuevo en sql, solo estoy aprendiendo sql con ejemplos que encuentro en los manuales y foros. Te explico: En la tabla TBREGISTRO tengo entre tantos campos, los campos MES y VER . Quiero actualizar el campo VER a TRUE desde un frm FRMACTUALIZAR pero solamente a los registros que están dentro de un rango (x ejmp. Registros del MES 1 al MES 3). En el FRMACTUALIZAR hay dos cuadros combinado (MesInicial y MesFinal) donde selecciono el numero de mes. El siguiente código debe ejecutar después de dar clic al botón ActualizarVER
Private Sub ActualizarVER_Click()
Dim DB As Database
Dim ActSql As String
ActSql = "UPDATE TBREGISTRO SET TBREGISTRO.VER = True WHERE (((TBREGISTRO.MES) Between forms!FrmActualizar!MesInicial And forms!FrmActualizar!MesFinal));"
Set DB = CurrentDb()
DB.Execute ActSql, dbFailOnError
End Sub
Al ejecutar me arroja el error 3061 en tiempo de ejecución. Pocos parámetros. Se esperaba 2.
He revisado bien todos los nombres, y están ok. NO SE donde esta el error.
Si lo ejecuto desde una consulta de actualización con parámetros lo hace muy bien. Pero ya no quiero tener más consultas.
Por cierto utilizo office 2003.

2 respuestas

Respuesta
1
No veo yo tampoco dónde puede estar el error, pero si te voy a sugerir unos cambios:
Private Sub ActualizarVER_Click()
If Not IsNumeric(Me!MesInicial) Or Not IsNumeric(Me!MesFinal) Then
  MsgBox "Revisa los meses. Debes rellenar ambos campos 
  Exit Sub
End If
CurrentDb.Execute "UPDATE TBREGISTRO SET VER = True WHERE MES Between " & Me!MesInicial & " And " & Me!MesFinal & ";", dbFailOnError
End Sub
Un saludo
http://www.aesoft-databases.com
Muy buena tu anotación, lo tomaré en cuenta para resumir mi código.
Encontré mi error en tu ejemplo, que tampoco lo habías percatado, faltaba colocar el símbolo & en la línea. Quedaría así:
="update ...Between "& forms!FrmActualizar!MesInicial &" And "& forms!FrmActualizar!MesFinal &"));"
Ahora si funciona perfectamente.
Gracias por tu ayuda.
Respuesta
-1
Pues no se que decirte, únicamente se me ocurre que pruebes con paréntesis

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas