Problema de comparación campos con variables

Ante todo, gracias por tu atención.
Me estoy iniciando con V.Basic6 y lenguaje SQL.
Mi problema es el siguiente:
La rutina
Select IDPedido from pedidos
where fechapedido=#01/02/01#
Funciona correctamente, pero si pongo una variable fecha definida previamente como publica y asignadol el
Valor fecha= Date, me dice que tengo parámetros por asignar. Osea la rutina
Select IDPedido from pedidos
where fechapedido=fecha
No funciona
Estas rutinas las pongo dentro de un control Adodc, asociandole un datagrid
Aprovechando la ocasión, te diré que la entrada de datos la hago con el control datagrid, exite algún otro
Control más intuitivo o más fácil de manipular

1 Respuesta

Respuesta
1
Paso a aclararte el tema:
Esa instrucción SELECT se la estás asignando a la propiedad Recordsource. Si haces esto en la ventana de propiedades no podrás utilizar ahí variables. La propiedad recordsource lo que recibe es una cadena de caracteres, por tanto tendrás que montarla tu por código.
Para conseguir lo que quieres lo tendrás que hacer por código, concatenando las distintas partes, de la siguiente forma:
fecha = date
adodc1.recordsource = 'select IDPedido from pedidos where fechapedido=' & _
DTOC(fecha, 1)
DTOC te convierte una fecha en cadena de caracteres. Además si fecha siempre va a coger la del sistema puedes poner directamente DTOC(date, 1) y no utilizar la variable fecha.
Si de verdad vas a programar en Visual Basic olvídate del adodc y del Datagrid, te darán muchísimos quebraderos de cabeza, y aunque en principio son muy sencillos de utilizar y no necesitan código, en cuanto quieras hacer las cosas a tu gusto no te dejan, como acabas de comprobar incluso para cosas muy sencillas tienes que escribir código.
Si quieres un control bueno para entradas de datos, todos los que hay son de pago (APEX True DBGrid, VSFlexGrid y Sheridan son de lo mejor). Otra solución es que cojas el control MSHFlexGrid que viene con visual Basic (el problema es que es de solo lectura) y lo modifiques para que se puedan introducir datos en él. Esto último, si estás empezando es demasiado complejo, simplemente te lo digo para si en un futuro aprendes a modificar controles ActiveX que tengas en cuenta la posibilidad de personalizarte este control.
Resumiendo: olvidate de adodc y datagrid. Y si quieres hacer cosas serias aprende bien a programar, y a utilizar otros controles más complejos pero más flexibles.
Aclarada la duda, ya me lo temía que todo tan simple no podía ser.
¿Dónde puedo adquirir los controles de pago?
Gracias por todo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas