Access - Falta operador en la expresión

   
Vista:

Falta operador en la expresión

Publicado por Inti (11 intervenciones) el 15/11/2015 03:25:03
Hola, ¿Serían tan amables de ayudarme con lo siguiente?, , en el siguiente còdigo me da error de falta de operador en la expresión de consulta criterios, criteriouno

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Comunidad_o_Asentamiento_GotFocus()
Dim StrSQL As String
Dim Resta As Double
Dim CriterioUno As String
Dim CriterioDos As String
Dim CriterioTres As String
Dim Criterios As String
CriterioUno = "[Tabla_Maestra_de_Material_Recibido]![Código]=  " & Me.[Seleccionar_Código].Column(0)
CriterioDos = "[Tabla_Maestra_de_Material_Recibido]![Descripción]= '" & Me.[Descripción_Campo] & "'"
CriterioTres = "[Tabla_Maestra_de_Material_Recibido]![Asignado_a]= '" & Me.Parent![Seleccionar_Componente].Column(2) & "'"
Criterios = CriterioUno & " AND " & CriterioDos & " AND " & CriterioTres
 
Resta = Me.[Existencia_Inicial] - Me.[Material_x_Beneficiario]
 
StrSQL = "UPDATE [Tabla_Maestra_de_Material_Recibido] SET [Tabla_Maestra_de_Material_Recibido].[Cantidad] = " & Resta
StrSQL = StrSQL & " WHERE " & Criterios
 
Debug.Print StrSQL
CurrentDb.Execute StrSQL
End Sub

Saludos,
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

Falta operador en la expresión

Publicado por Enrique Heliodoro (1663 intervenciones) el 15/11/2015 09:21:39
Ha quedado en el tintero lo que podría indicar el problema: el resultado que aparece en la ventana de inmediato después de ejecutarse 'Debug.Print StrSQL'.

No tiene porque haber un error, bastar a que no acceda a uno de los datos que toma como referentes o que en ellos un valor sea NULL (en la operación matemática o en los criterios), para que Access encuentre un error en la SQL que le impida su ejecución (y en la SQL definitiva que se muestra en la ventana de inmediato se debería apreciar con claridad)
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

Falta operador en la expresión

Publicado por Inti (11 intervenciones) el 15/11/2015 15:36:06
Gracias por responder Enrique, pero ninguno de los valores es nulo, cada control toma el valor correspondiente, y cada criterio de igual manera.
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

Falta operador en la expresión

Publicado por Enrique Heliodoro (1663 intervenciones) el 15/11/2015 15:58:25
Con los datos aportados es difícil aventurar una solución a un problema en un entorno desconocido y sin un simple copy/paste de un supuesto resultado 'real'.

Lamento dejarlo aquí, las adivinanzas es un juego que no siempre apetece seguir.
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

Falta operador en la expresión

Publicado por jose (741 intervenciones) el 15/11/2015 22:27:28
a que veo algo raro
StrSQL = "UPDATE [Tabla_Maestra_de_Material_Recibido] SET [Tabla_Maestra_de_Material_Recibido].[Cantidad] = " & Resta


debe ser

StrSQL = "UPDATE [Tabla_Maestra_de_Material_Recibido] SET [Tabla_Maestra_de_Material_Recibido].[Cantidad] = " & str$(Resta)


mira a ver si era eso porque estaba concatenando string & numero -double
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

Falta operador en la expresión

Publicado por Inti (11 intervenciones) el 15/11/2015 22:37:24
Hola Jose gracias por responder, el código ha quedado asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Comunidad_o_Asentamiento_GotFocus()
Dim StrSQL As String
Dim Resta As Double
Dim CriterioUno As String
Dim CriterioDos As String
Dim CriterioTres As String
Dim Criterios As String
CriterioUno = "[Tabla_Maestra_de_Material_Recibido_de_Enatrel]![Código]=  " & Me.[Seleccionar_Código].Column(0)
CriterioDos = "[Tabla_Maestra_de_Material_Recibido_de_Enatrel]![Descripción]= '" & Me.[Descripción_Campo] & "'"
CriterioTres = "[Tabla_Maestra_de_Material_Recibido_de_Enatrel]![Asignado_a]= '" & Me.[Parent!Solicitud_de.Material_por_Componentge] & "'"
Criterios = CriterioUno & " AND " & CriterioDos & " AND " & CriterioTres
 
Resta = Nz(Me.[Existencia_Inicial], 0) - Nz(Me.[Material_x_Beneficiario], 0)
 
StrSQL = "UPDATE [Tabla_Maestra_de_Material_Recibido] SET [Tabla_Maestra_de_Material_Recibido].[Cantidad] = " & Str$(Resta)
StrSQL = StrSQL & " WHERE " & Criterios
 
Debug.Print StrSQL
CurrentDb.Execute StrSQL
End Sub

Pero me da el siguiente error

¿Serias tan amable de ayudarme con el ?

Saludos,
Print
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

Falta operador en la expresión

Publicado por Inti (11 intervenciones) el 16/11/2015 02:26:19
Ya lo solucioné.

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
Imágen de perfil de xve

Falta operador en la expresión

Publicado por xve (114 intervenciones) el 16/11/2015 08:49:11
Hola Inti nos puedes compartir como lo solucionaste?
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

Falta operador en la expresión

Publicado por Inti (11 intervenciones) el 16/11/2015 14:51:16
Hola xve, claro con gusto, la linea 10 la cambié por esta:

CriterioTres = "[Tabla_Maestra_de_Material_Recibido_de_Enatrel]![Asignado_a]= '" & Me.[Parent!Solicitud_de_Material_por_Componente] & "'"

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

Falta operador en la expresión

Publicado por Enrique Heliodoro (1663 intervenciones) el 17/11/2015 09:26:49
No entiendo como puede ser posible que haciendo referencia a un 'objeto que no existe' (no existe por un error sintáctico en su nombre), se de esta respuesta como real y verdadera:

... Gracias por responder Enrique, pero ninguno de los valores es nulo, cada control toma el valor correspondiente, y cada criterio de igual manera. ...

¿Acaso no se ve (en la ventana de inmediato) que un parámetro era un NULL?
O simplemente la función de esta línea :
Debug.Print StrSQL

Que esta ubicada (y se ejecuta) antes de esta:
CurrentDb.Execute StrSQL

No se sabe 'para que sirve'

Un simple (Control + c) y a continuación (Control + v) que es lo que se solicitaba hubiera resuelto el problema de forma mas elegante (se hubiera apreciado claramente el error en lugar de 'sentirse ofendido sin razón para ello')

¿Para que preguntas si desprecias las respuestas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar