Access - variables en SQL

 
Vista:
sin imagen de perfil

variables en SQL

Publicado por Fco. Javier (4 intervenciones) el 13/03/2017 13:51:22
Hola a todos y gracias de antemano al que pueda ayudarme.

estoy construyendo una base de datos en Access, y quiero ejecutar una consulta update en vba.

conozco un poco la sintaxis, pero me está dando fallo.
El problema es que intento pasarle unos valores mediante dos variables, y parece que no reconoce bien esas variables.
Las variables son de tipo entero.

Alguien puede decirme donde me estoy equivocando?

saludos

SQL = "UPDATE TBL_Nombre SET Tipo_Re =" & miVariable1 & _
"WHERE Id_Nombre =" & miVariable2

DoCmd.RunSQL SQL
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

variables en SQL

Publicado por jorge (304 intervenciones) el 13/03/2017 16:34:02
Buenos dias por mi parte yo asi hagoo ese tipo de consulta.

DoCmd.RunSQL "UPDATE USUARIOS SET NOMBRE='" & Me.NOMBRE & "', PASWORD='" & Me.PASWORD & "' WHERE CLAVE=" & Me.CLAVE & ""
DoCmd.SetWarnings False


hay atualizo mi tabla usuarios los campos nombre y password.
despues uso este commando DoCmd.SetWarnings False
para que no me salga la devertencia de que se actualizaran los datos.


saludos desdde mexicoo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

variables en SQL

Publicado por Fco. Javier (4 intervenciones) el 14/03/2017 13:59:04
Hola Jorge, gracias por tu respuesta. He probado lo que dices pero sigue saltando el mismo error.
No sé que más hacer, creo que he probado casi de todo.
saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jorge
Val: 1.039
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

variables en SQL

Publicado por jorge (304 intervenciones) el 14/03/2017 14:19:04
y como estas hacienda la consulta puedo verla?? saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

variables en SQL

Publicado por Fco. Javier (4 intervenciones) el 14/03/2017 15:09:22
si, este es código.
cmbTipoResiduo es un combo box. Al hacer click en una opción de la lista desplegable, debería actualizarse la tabla TBL_Nombre_Residuos.

Las dos variables están declaradas en el mismo formulario.

1
2
3
4
5
6
7
8
9
10
11
12
13
Public mIntIdResiduo As Integer
 
Public SQL As String
 
Private Sub cmbTipoResiduo_Click()
 
    Me.txtTipoResiduo.Value = DLookup("[N_Tipo_Residuo]", "TBL_Tipo_Residuo", "[Id_Tipo_Residuo] =" & Me.cmbTipoResiduo.Value)
 
    SQL = "UPDATE TBL_Nombre_Residuos SET TBL_Nombre_Residuos.Tipo_Residuo = " & Me.cmbTipoResiduo.Value & _
    "WHERE TBL_Nombre_Residuos.Id_Nombre_Residuo =" & mIntIdResiduo
 
    DoCmd.RunSQL SQL
End Sub

Y el error que salta es este:
Se ha producido el error '3075' en tiempo de ejecución:
Error de sintaxis (falta operador) en la expresión de consulta 'where TBL_Nombre_Residuos.Id_Nombre_Residuo

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

variables en SQL

Publicado por Fco. Javier (4 intervenciones) el 14/03/2017 16:03:38
He conseguido solucionar el problema.

El error estaba en la sintaxis. Parece que SQL en Access no acepta muy bien el paso de parámetros por variable.
En su lugar he cambiado las variables directamente por los objetos que almacenan los valores.
El código quedaría así.

DoCmd.RunSQL "UPDATE TBL_Nombre_Residuos SET TBL_Nombre_Residuos.Tipo_Residuo = [Formularios]![FM_Actualizar_Residuo]![cmbTipoResiduo]" _
& "WHERE (([TBL_Nombre_Residuos]![Id_Nombre_Residuo]=[Formularios]![FM_Actualizar_Residuo]![cmbElegirResiduo]));"

cmbTipoResiduo es un combo box y cmbElegirResiduo es otro combo box.

Saludos, y gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar