Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Adodc y DataGrid (http://www.forosdelweb.com/f69/adodc-datagrid-301848/)

S-Virus 26/05/2005 02:51

Adodc y DataGrid
 
Hola de nuevo amigos. Tengo un nuevo "problemilla", a ver si ustedes (seguro que si), pueden ayudarme.

El problema es el siguiente:

Tengo un Adodc, con la cadena de conexión creada y con el DataSource siguiente:

SELECT tblLINEASPEDIDOS.ID_Pedido as IDPEDIDO, tblLINEASPEDIDOS.Cantidad, tblLINEASPEDIDOS.PrecioUnidad
FROM tblLINEASPEDIDOS, tblPEDIDOS
WHERE tblLINEASPEDIDOS.IDNOTA=tblPEDIDOS.IDNOTA AND tblLINEASPEDIDOS.IDNOTA=Form!frmPedidos.txtIDNOTA;

La idea es que me muestre los datos dependiendo del valor del campo que hay en el formulario frmPedidos con el nombre txtIDNOTA como parámetro para filtrar el contenido del DataGrid (Por supuesto, éste está asociado a dicho Adodc).

Errores en sí, no me da, salvo que me dice que "No se han especificado valores para algunos de los parametros requeridos".

Todo se ejecuta, pero en mi DataGrid no veo nada. Espero que puedan ayudarme. Gracias.

zabait 26/05/2005 04:23

Ese error suele dar cuado un campo que especificas en la sen¡tecia SQL no existe en la base de datos.
Si ejecutas esa misma sentencia en tu base de datos te funciona???
Responde y seguimos mirando cosas, pero creo que va a ser una tonteria de este pelo, que a veces son las peores.

zabait 26/05/2005 04:25

O también puede ser que en el momento que lanzas esa sentencia no existe un valor para el campo "Form!frmPedidos.txtIDNOTA".

En qué evento lo lanzas???

S-Virus 26/05/2005 04:39

Si funcionan pero en el programa no
 
Hola Zabit. A ver, yo he ejecutado esa sentencia SQL en Access que es donde tengo la BD, y lo que hace es pedirme que introduzca un numero, correspondiente al From!frmPedidos.txtIDNOTA, con el cual busco todos los pedidos que correspondan a la misma nota de pedidos, le doy el número y me hace la búsqueda correctamente.

Ahora bien, al pasar esa misma sentencia a VB ya me da el error este.

Lo que quiero es lo siguiente, cuando pulse un botón que tengo, el valor del textbox va a pasar a ser el código de la última nota. Hasta ahí bien.

Entonces ahora, se pasa a rellenar las líneas de pedido, de manera que cada vez que yo cierre un pedido, el datagrid se actualice y siempre vea los pedidos que he ido realizando en esa nota. Otra cosa será después la opción de buscar pedidos a través del codigo de la nota pero eso para después.

No se si me explico bien, espero que me entendáis. Lo que quiero es un Data grid que se me actualice con todas las líneas de pedido de la nota de pedido actual cada vez que yo cierre un pedido. Gracias.

S-Virus 26/05/2005 07:05

Todo Siguie igual
 
Pues sigo igual, no consigo hacer que el DataGrid se me actualize cada vez que ingreso un pedido nuevo en la Base de Datos. No se si es que no va bien con la consulta el Adodc o lo que sea, pero sigo liado.

xcars 26/05/2005 08:22

Cita:

Iniciado por S-Virus
Hola Zabit. A ver, yo he ejecutado esa sentencia SQL en Access que es donde tengo la BD, y lo que hace es pedirme que introduzca un numero, correspondiente al From!frmPedidos.txtIDNOTA, con el cual busco todos los pedidos que correspondan a la misma nota de pedidos, le doy el número y me hace la búsqueda correctamente.

Ahora bien, al pasar esa misma sentencia a VB ya me da el error este.

Lo que quiero es lo siguiente, cuando pulse un botón que tengo, el valor del textbox va a pasar a ser el código de la última nota. Hasta ahí bien.

Entonces ahora, se pasa a rellenar las líneas de pedido, de manera que cada vez que yo cierre un pedido, el datagrid se actualice y siempre vea los pedidos que he ido realizando en esa nota. Otra cosa será después la opción de buscar pedidos a través del codigo de la nota pero eso para después.

No se si me explico bien, espero que me entendáis. Lo que quiero es un Data grid que se me actualice con todas las líneas de pedido de la nota de pedido actual cada vez que yo cierre un pedido. Gracias.

mira chico, esto esta facilito, cuando vos declaras el datasource del adodc, y lo pegas a un datagrid cuando ejecutas la aplicacion el va a ejecutar la sentencia sql, como inicialmente te falta un valor el no lo va a poner nada pk no cumple la condicion. Entonces en la sentencia sql inicial del adodc ponele al final del WHERE 1=2 y luego en tu formulario pedis el dato que hace falta y pones:
adodc.recordsourse="select ... etc etc y al final pones en el where, campofiltro='" & tvariableparafilttro & "'
adodc.refresh

ahi actualizas la busqueda con el dato que queres y acutalizas el grid automaticamente, para la busqueda haces lo mismo.
Espero que esto sea lo que estes pidiendo.

xcars 26/05/2005 08:25

Código:

    Adodc1.RecordSource = "select * from proyectos_categorias where proyecto_id='" & tproyecto_id & "'"
    Adodc1.Refresh

tproyecto_id es un textbox, adodc1 es el adodc pegado al datagrid y este codigo se ejecuta cuando presionas un boton o cambias un combo etc etc,

S-Virus 26/05/2005 15:41

Come on
 
Bueno XCar, eso es creo yo lo que he estado haciendo, pero obviamente, en algo he tenido que fallar pues no me funcionó, ya hoy es tarde y hasta mañana no seguiré trabajando en mi proyecto, ya os contaré que tal me ha ido mañana vieres. Un saludo. Gracias por la colaboración de todos.

xcars 26/05/2005 16:20

Cita:

Iniciado por S-Virus
Bueno XCar, eso es creo yo lo que he estado haciendo, pero obviamente, en algo he tenido que fallar pues no me funcionó, ya hoy es tarde y hasta mañana no seguiré trabajando en mi proyecto, ya os contaré que tal me ha ido mañana vieres. Un saludo. Gracias por la colaboración de todos.

ok, pone tu codigo para ver pk esta fallando, a mi me funciona perfectamente, si no lo hacemos funcionar corrigiendo tu codigo, te mandare un formulario donde yo lo hago para que veas.

S-Virus 27/05/2005 02:00

Seguimos igual
 
Hola de nuevo. Paso a explicaros paso por paso lo que yo estoy haciendo a ver si en algo fallo ok?.

Bueno, en primer lugar creo un Adodc, le genero la cadena de conexión y le paso un datasource que me selecciona todos los registros de mi tabla de pedidos.

A continuación creo un DataGrid y le paso como recorsource el Adodc anteriormente creado. Ejecuto el formulario y funciona, no me muestra ningún mensaje y el DataGrid está cargado con todos los pedidos de mi BD.

Entonces me voy a código, concretamente al Load del Formulario porque quiero que el DataGrid me aparezca en blanco al iniciar el formulario y pongo lo siguiente:

txtIDNOTA.Text = ""

adoVisualPedido.RecordSource = "SELECT tblLINEASPEDIDOS.ID_Pedido AS IDPEDIDO, tblLINEASPEDIDOS.Cantidad, tblLINEASPEDIDOS.PrecioUnidad FROM tblLINEASPEDIDOS, tblPEDIDOS WHERE tblLINEASPEDIDOS.IDNOTA=tblPEDIDOS.IDNOTA AND tblLINEASPEDIDOS.IDNOTA='" & txtIDNOTA.Text & "';"

adoVisualPedido.Refresh

Pongo el txtIDNOTA a vacio para que no haya nada (también probé a poenerlo a 1 y pasaba lo mismo). Despues le paso al Recorsource del Adodc la consulta que ahí pongo y lo Refresco.

Al ejecutar me sigue dando el mismo fallo que al principio. "No se han especificado valores para algunos de los parametros requeridos".

Y ahí me quedé :no: . Gracias y un Saludo. :adios:

(Esto es lo que he venido haciendo en todo momento, no se si me salté algo al seguir los pasos pero sigue sin funcionar).

PD: El fallo me salta en el Refresh, lo comprobé con un punto de ruptura. Además, me imagino que será porque inicializo el txtIDNOTA en el Load, cuando hago click en el botón de rellenar nota, hasta ahora lo que hacia era situar el Adodc a un nuevo registro y ponía en este txtIDNO (que está asociado al adodc) el id de la nueva nota, pero ahora me dice que el campo no es actualizable o algo asi. En fin, me voy a volver loco. :neurotico

S-Virus 27/05/2005 08:07

NOVEDADES!!!! Todo Solucionado!
 
Entono el Mea Culpa. El problema era únicamente que en mi BD, uno de los campos, concretamente el de precio por unidad lo había creado con el nombre PrecioUnidad(€). Así pues, a la hora de realizar la consulta, parece ser que ese nombre, el cual incluía en ella para mostrar, se lo tomaba como una funcion, y evidentemente me pedía el "parámetro €".

Siento haberos molestado. Y sobre todo Gracias, muchas gracias. Un saludo amigos.

xcars 27/05/2005 08:22

:arriba: ok y yo que estaba listo para hecharte la mano :'(

S-Virus 27/05/2005 14:49

Y yo que lo agradezco
 
Yo te lo agradezco compañero, pero al final tras probar y probar y ver que estaba haciendo todo correcto, me dio por mirar la BD y caí en ese detalles. Lo dicho, Gracias.


La zona horaria es GMT -6. Ahora son las 08:56.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.