Access - Para Enrique u Otro Experto Por Favor...

 
Vista:

Para Enrique u Otro Experto Por Favor...

Publicado por Cecilia Calabresse (4 intervenciones) el 18/03/2008 01:27:01
resulta q estoy haciendo una aplicacion que incluye un procedimiento de sumado de campos, que es el sgte (a proposito, lo saque de un ejemplo de Enrique):

Set base = CurrentDb
txttotal1.ControlSource = "uno"
txttotal2.ControlSource = "dos"
txttotal3.ControlSource = "tres"

SQL2 = "SELECT sum(lunes) AS uno, sum(martes) AS dos, " & _
"sum(miercoles) AS tres FROM productos " & _
"WHERE producto = " & Val(TXTproducto) & " AND ID = '" & (txtvendedor) & "' And Año = " & Val(cboAño) & ""

Me.RecordSource = SQL2
Me.Requery
Me.FiltroConsulta = SQL2

La idea es que cada vez que presiono un boton se realiza esta suma, y otras veces cuando se hace una busqueda por producto que despliego en un subformulario, resulta que siempre funciona bien, pero hay un momento en que no quiere sumar y me tira el error 2001 que en ingles dice "canceló la operación"..o algo así...y apunta a la línea

Me.RecordSource = SQL2

No sé que hacer porque este este procedimiento es de autoria de Enrique y debe haber algun evento que yo no estoy manejando cuando sucede esto.

Gracias y 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

RE:Para Enrique u Otro Experto Por Favor...

Publicado por Enrique (1299 intervenciones) el 18/03/2008 16:32:53
Hola Celia:
Si me dices que ejemplo mío concretamente has usado para hacerlo, posiblemente pueda ayudarte, pués parece no has sabido adaptarlo correctamente. Veo que al principio pones: Set base = CurrentDb y esto, viendo el resto del código, no tiene ningún sentido porque no utilizas para nada Recordset de DAO en el Procedimiento.

Otra cosa que habría que comprobar es si la sentencia SQL2 está correctamente definida, teniendo en cuenta los campos que son texto y los que son números. Si te digo la verdad, esto no me suena a nada mío, o lo has cambiado mucho.

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

RE:Para Enrique u Otro Experto Por Favor...

Publicado por Cecilia Calabresse (4 intervenciones) el 18/03/2008 17:10:45
si lo saque de un ejemplo tuyo Enrique, bueno le hice algunos cambios pero
nace de tu ejemplo que se llama seleccion por criterios
el que muestra en una grilla los datos de los vehiculos que se vayan seleccionando
tu codigo es asi:

Dim sql As String
Form_SubFrmSeleccionAutos.Marca.ControlSource = "Marca"
Form_SubFrmSeleccionAutos.Modelo.ControlSource = "Modelo"
Form_SubFrmSeleccionAutos.Año.ControlSource = "Año"
Form_SubFrmSeleccionAutos.Kilometros.ControlSource = "Kilometros"
Form_SubFrmSeleccionAutos.Color.ControlSource = "Color"
Form_SubFrmSeleccionAutos.Motor.ControlSource = "Motor"
sql = "SELECT * FROM Autos WHERE (((Autos.Marca) Like '*' & [Forms]![frmSeleccionAutos]![Marca] & '*') AND ((Autos.Modelo) Like '*' & [Forms]![frmSeleccionAutos]![Modelo] & '*') AND ((Autos.Año) Like '*' & [Forms]![frmSeleccionAutos]![Año] & '') AND ((Autos.Kilometros) Like '' & [Forms]![frmSeleccionAutos]![Kilometros] & '*') AND ((Autos.Color) Like '*' & [Forms]![frmSeleccionAutos]![Color] & '*') AND ((Autos.Motor) Like '*' & [Forms]![frmSeleccionAutos]![Motor] & '*')) ORDER BY Marca;"
Form_SubFrmSeleccionAutos.RecordSource = sql
SubFrmSeleccionAutos.Requery
MuestraAviso
Marca.SetFocus

te acuerdas ahora?
eso quiero ver por que a mi me da el error 2001 en la linea que en tu codigo seria la
Form_SubFrmSeleccionAutos.RecordSource = sql

el codigo a mi me funciona muy bien en el evento form_load
luego lo ejecuto desde un boton de busqueda el filtrado sigue bien...
pero cuando en tiempo de ejecucion cambio el usuario (el usuario es siempre un criterio de consulta para el filtrado)
me tira el error 2001 "usted cancelo la operacion previa"
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

RE:Para Enrique u Otro Experto Por Favor...

Publicado por Cecilia Calabresse (4 intervenciones) el 18/03/2008 17:15:44
...ahora recuerdo otra cosa, tambien saqué codigo de un ejemplo tuyo que se llama Filtros que es muy similar al anterior.
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

RE:Y??? no hay nadie que me ayude???

Publicado por Cecilia Calabresse (4 intervenciones) el 18/03/2008 21:50:53
que ya me veo con un pie fuera de la empresa
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

RE:Y??? no hay nadie que me ayude???

Publicado por Chea (1015 intervenciones) el 18/03/2008 22:18:21
Parece que no están bien puestas las comillas de los Like.

El asterisco va rodeado de comillas simples, pero sólo debe ser simple la primera al abrir, pues la otra sirve para cerrar la cadena SQL que concatenamos con & Forms... Lo mismo pero al revés ocurre con el asterisco de cierre de cada expresión.

Prueba a poner cada Like más o menos así:

Like '*" & [Forms]![frmSeleccionAutos]![Marca] & "*')

Fíjate bien cómo están puestas comillas simples y dobles.

Saludos
José Bengoechea Ibaceta
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

RE:Y??? no hay nadie que me ayude???

Publicado por Enrique (1299 intervenciones) el 18/03/2008 23:20:36
El código que ha pegado aquí Cecilia está literalmente copiado de mi ejemplo y las comillas de los Likes y todo lo demás está correctamente porque así funciona perfectamente en el ejemplo, el problema es que ha hecho una adaptación para lo que necesita, que cambia totalmente el planteamiento. En la construcción de su sentencia SQL no utiliza para nada "Like", pero si utiliza la función "Val" de una forma aparentemente "sospechosa" de error y además hay que comprobar que todo lo que va después de "WHERE" esté bien encadenado. Esta es su SQL :

SQL2 = "SELECT sum(lunes) AS uno, sum(martes) AS dos, " & _
"sum(miercoles) AS tres FROM productos " & _
"WHERE producto = " & Val(TXTproducto) & " AND ID = '" & (txtvendedor) & "' And Año = " & Val(cboAño) & ""

Cecilia, si nos fijamos en tu primer mensaje, el código de mi ejemplo con respecto al tuyo, se parecen como "un huevo a una castaña", o sea, nada. No creas que no quiero ayudarte, es que no me entero. Mira, si quieres, envíame tu base de datos comprimida en zip a mi correo y le echo un vistazo a ver si consigo descubrir el error y si me surge alguna duda te pregunto; no puedo decirte ni hacer nada sin ver lo que tienes hecho.

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

RE:Y??? no hay nadie que me ayude???

Publicado por Cecilia Calabresse (1 intervención) el 19/03/2008 17:14:46
hola Enrique
te envie un correo pero me llego de vuelta un spam
te lo enviare de nuevo 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

RE:Y??? no hay nadie que me ayude???

Publicado por Enrique (1299 intervenciones) el 19/03/2008 17:23:19
Hola Cecilia:
No le hagas caso a eso del Spam, es que ese e-mail de Ono por el que te he contestado tiene una opción que yo he activado, para devolver un mensaje si el correo entrante no lo tengo en mi libreta de direcciones, pero los mensajes llegan igual.

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