Elegir varios registros de un mismo código con elegir solo uno

Tengo un formulario llamado factura el cual tiene un subformulario que se llama detalle cuando hago una factura degamos 0001, en el detalle los registros que hago todos salen con el código de la factura activa, así que si hago 3 registros los tres salen con el numero de la factura ose 0001.

Ahora cuando quiero sacar esa factura en el formulario caja hay un cuadro combinado donde aparecen todos los registros anteriormente ingresados.

Cuando quiero sacar un numero de factura digamos 0001 si esa factura quedo con 3 registros todos son 0001 pero al querer seleccionarlos para darle entrada a caja me toca primero el registro 1 de la factura 0001 después el registro 2 de la misma y así con el tercero mediante el cuadro combinado.

Mi pregunta es habrá alguna forma de que pueda seleccionar solo el primero y automáticamente los otros se ingresen por ser de el mismo numero.

El programa esta en microsoft access

3 Respuestas

Respuesta
2

En el formulario Salida Inv,,,, en su encabezado crea un combinado igual al que tienes en nº recibo, y en sus propiedades-otras-nombre ponle ElegirRecibo y en sus propiedades-eventos-después de actualizar ponle

form.recordsource=select * from tablaquesea where [nºrec]="& me.elegirrecibo & ""

Y convierte el combinado del registro en un cuadro de texto.

Así, cuando elijas un numero de recibo en el combinado ElegirRecibo, el origen del formulario serán aquellos registros de la tabla que tengan el mismo número que el que has elegido.

He supuesto que nª Rec es numérico, si fuera texto seria

.........='" & me.elegirrecibo & "'"

Si es numérico pero mira que la escritura del código me da error falta algo

Y donde dice la tabla que seate va el nombre de la tabla queque hace parte del formulario ósea salida Inv es la tabla

Tengo una tabla Clientes con esos campos

En el formulario si elijo, por ejemplo el 222

Me queda

Y lo único que le digo, en el evento Después de actualizar del combinado

Form.RecordSource = "select * from clientes where nrecibo=" & Me.ElegirRecibo & ""

Icue en tu ejemplo el combinado filtra registros que ya están.

La necesidad que yo tengo es que si elijo un número en el combinado y ese tiene 5 registros que los 5 los saque de una sola

Mi pregunta es no se podría con elel combinado elegir el registro y en la parte de detalle aparezcan los registros que competen a ese número?

Me parece, que se traspapelaron las respuestas. Si en el combinado eliges un código puedes poner

Docmd.runsql"Insert into Caja select * from Detallefactura where Nfactura='" & me.elegir & "'"

form.requery

De todas formas. Si quieres, repito, si quieres, mándame una copia con dos o tres registros inventados de LAS TABLAS, a [email protected]. Si lo haces, en el asunto del mensaje pon tu alias Hernan, ya que si no sé quien me escribe ni los abro.

Respuesta
2

Hernan: A mi modo de ver tienes un error conceptual y me explico.

Cuando tu quieres descontar de Caja una Factura, lo que debes hacer es "Descontar la Factura" y no cada una de las líneas que la componentes. A partir de aquí y según mi idea lo que te sugiero es que revises y cambies ese proceso. Totalizar el Importe y descontar éste

Es posible que haya malinterpretado tu pregunta y el error sea mío, en cuyo caso vayan por delante mis disculpas. Un saludo >> Jacinto

Jacinto no creo que no me hice entender esta es la factura

Los códigos son esos y en el detalle aparece con el mismo código de factura para que se sepa que es de esa factura

Y este es el formulario salida pero como vez me toca seleccionar registro por registro para sacar los 3 como vez en el circulo

¿Entonces no se si se pudiera solo seleccionar el primero y que los otros salgan con el primero sin necesidad de seleccionarlos se podrá?

Hernán: Donde te ponía "descontar" de caja lo cambio por Entradas o Ingreso a caja y sigo pensando lo mismo, porque a la caja no entran 4000+7000+7000, si no que el Ingreso es de 18000, en el caso de que realmente se produzca.

En el segundo formulario, me parece ver que mezclas salidas de Inventario con entradas a Caja y también a mi modo de ver son dos procesos que pueden ocurrir en tiempos distintos.

Ejemplo >> Hago una Venta >> Marco como vendida 3CHQT Chaqueta, y a mi modo de verlo ese es el momento en que he de rebajarla de Inventario. Así con los demás Productos/Articulos.

Hago la Factura y puede que cobre en ese instante o dos horas después o tres días mas tarde y en un caso extremo el cliente sale corriendo y no me paga nunca. Los articulos ya los he rebajado del Inventario, que es lo correcto, pero el Ingreso aun no lo he materializado.

Si es que sigo en el error me comentas. No hay problema. Un saludo >> Jacinto

No te entiendo pero sería por ella momento algo que tendría que trabajar mucho por que no se como hacerlo pensé que si con un código pudiera sacarlos códigos con uno solo sería genia pero por la explicación parece que no se puede si tomo tu consejo me tocaría mirarel como hacerlo ya quese no se de programación soy empírico entonces no se ja ja pero realmente tu respuestaya sería la mejor manera de hacerlo pero como lo tengo funcionando me queda complicado hacerlo así. Entonces pensé en que algo, más fácil si se podía

Hernán: Lo bien o mal en bastantes ocasiones depende de nuestra percepción de un hecho.

En ese sentido te he dado mi opinión, pero no necesariamente que lo estés haciendo "mal"

Si quieres seguir el proceso como lo tienes, seguro que se puede hacer lo que expones, aunque en mi caso no lo vea adecuado, lo único es que para mí es dificil darte una solución sin tener delante los objetos.

Por ello y si en tu base no tienes datos "confidenciales/personales" y me la quieres enviar a jtrillojgmail.com intento ayudarte. Mis saludos >> Jacinto

Respuesta
1

Edita la consulta del cuadro combinado N° REC del formulario "Salida Inv Entrada Caja" ingresa a propiedades y en "Registros únicos" a Sí. Es decir si miras el código SQL debe quedarte algo como:

SELECT DISTINCT su_tabla_recibos.N° REC FROM su_tabla_recibos ORDER BY N° REC

El DISTINCT te indica que solo quieres los valores únicos de esta tabla. Por ejemplo,

1801

1802

1803

Etc

Se puede dar el caso que más bien debas agrupar por el N° REC, CANTIDAD Y TOTAL

Lo intente y sale igual eso que es diCES es para agrupar los valores y cantodas lo. Intente peropero nada

La única forma de poderte ayudar es enviando la base de datos a [email protected]

En este caso me en el asunto me anotas tu consulta.

Mirando la información como tienes diseñada la estructura de tus tablas no hay forma que no aparezca repetido el número de recibo, toda vez, que lógicamente debe aparecer las veces que aparece según el artículo. Lo ideal serian 2 tablas, una con el idrecibo, fecha,.. etc, Una segunda tabla con id, idrecibo, articulo (aunque debiera ser idarticulo de una tabla maestra de artículos). Debes relacionar la tabla uno con la dos (relación uno a varios) por el campo idrecibo y marcar la casilla exigir integridad referencial. Te recomiendo utilizar una tabla temporal para registrar la factura, así el encabezado del formulario va a la tabla UNO y la información del subformulario va en la tabla temporal, esta información la incorporas con un INSERT o con una consulta de datos anexados. Cuando vayas a agregar otra factura borras la información de la tabla temporal y cuando cargues el formulario. El subformulario lo vinculas con el formulario principal por el campo idrecibo. Es claro que existen otras opciones de tratar este tipo de información.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas