Vista no parametrizada en un grid

Hola:
Llevo dos semanas con un tema que no consigo resolver. Necesito que una vista muestre en un grid los datos filtrados de acuerdo con la entrada que se haga en una textbox.
He probado poniendo un parámetro en la vista que señala al valor de la textbox. Lo mismo señalando a una propiedad del formulario. Nada. No funciona.
La aplicación que estoy haciendo es el formulario de entrada de asientos de una contabilidad. Una vez metido un asiento quiero que salga vayan saliendo en el grid los distintos movimientos del asiento, filtrados por el número de asiento.
Si me puede ayudar te lo agradeceré mucho.
Saludos
Gonzalo
{"Lat":37.3881971671015,"Lng":-5.99720478057861}

1 Respuesta

Respuesta
1
Crea una vista por ejemplo he creado esta vista para conocer existencias de productos en el inventario.
*!*    SELECT Producto.codmat AS codigo, Producto.nombre,;
*!*      SUM(Transacciones_inventaro.existencia) AS existencia;
*!*     FROM ;
*!*         "emily_bd!transacciones inventario" Transacciones_inventaro ;
*!*        INNER JOIN emily_bd!producto ;
*!*       ON  Producto.codmat = Transacciones_inventaro.codmat;
*!*     GROUP BY Producto.codmat, Producto.nombre,;
*!*      Transacciones_inventaro.codmat;
*!*     ORDER BY Transacciones_inventaro.codmat
En un formulario necesito actualizar las cantidades de esos productos en el inventario para eso necesito esa vista antes creada. Para ello click derecho en cualquier parte del formulario->data environment
En el data environment click derecho click derecho en cualquier -> add
En add Table or View seleccionar en el radio button View y selecciona tu vista ahora arrastra la vista al formulario y secrea una grid. Hasta alli estamos bien
AL MOMENTO FINAL DE GUARDAR LOS CAMBIOS de las cajas de texto agrega estas 2 lineas de codigo
thisform.grdVist_inventarios.Refresh &&vuelve a dibujar la grid
REQUERY([vist_inventarios]) &&llama nuevamente a la consulta
Muchas gracias por tu ayuda.
Lo que me comentas ya lo había probado solo que las dos lineas las había puesto en otro orden.
No está ahí el problema. Tu vista no está limitada, no tiene clausula WHERE, por tanto muestra todos los registros.
Yo necesito que en la clausula where del select se limiten los registros que van a aparecer en el grid de acuerdo con el valor que acabe de meter en la caja de texto.
En mi formulario hay cajas de texto para número de asiento, fecha, concepto, número de cuenta, cuenta, debe/haber e importe.
Cuando termine de meter un movimiento del asiento, éste debe aparecer en el grid. Luego me pedirá que meta los demás movientos de ese asiento y los irá poniendo en el grid. Así en el grid sólo estarán los movimientos de ese asiento, para poder ser editados. Entonces la clausula WHERE tendría que tener algo así como WHERE asientos. numero=thisform. texbox_1.value, pero cuando meto este valor en el diseñador de vistas no me lo admite. Y tampoco me admite c_asiento que sería una variable creada en las propiedades del form para acumular los valores que vaya tomando textbox_1 (nº asiento).
Ese es el problema. Así que el grid está siempre en blanco o muestra todos los registros de la tabla.
Si esto te ha dado una pista te agradeceré un nuevo esfuerzo. Muchas gracias.
SELECT Producto.codmat AS codigo, Producto.nombre,;
  SUM(Transacciones_inventaro.existencia) AS existencia;
 FROM ;
     "emily_bd!transacciones inventario" Transacciones_inventaro ;
    INNER JOIN emily_bd!producto ;
   ON  Producto.codmat = Transacciones_inventaro.codmat;
 WHERE  Producto.codmat = ( codigo );
 GROUP BY Producto.codmat, Producto.nombre,;
  Transacciones_inventaro.codmat;
 ORDER BY Transacciones_inventaro.codmat
evento init del  formulario que necesites la vista
Public codigo
en el boton para actualizar el contenido
codigo=thisform.text1.Value
REQUERY([vist_inventarios])
thisform.grdVist_inventarios.Refresh
Thisform. Refresh

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas