¿Como numero registros según fecha?

Tengo una tabla llamada tblventa, con los campos IdVenta, Fecha, Estado, NTicket.

Lo que quiero crear un botón que me introduzca números correlativo en NTicket, ordenados por fecha menor a mayor y solo cuando el estado = 3. También quiero que los registros que ya tengan el NTicket puesto queden como están y el nºcorrelativo siga a partir del mayor de NTicket.

¿Alguien tiene alguna idea de como puedo hacerlo?

1 respuesta

Respuesta
2

Puedes hacerlo de muchas formas, todo depende de como lo quieras hacer y que número quieras poner en Nitcket. Por ejemplo, supongamos que construyes un formulario con ella( da igual si es único o continuo) y le añades un botón, en el evento Al hacer clic del botón puedes poner

form.recordsource="select * from tblventa order by fecha asc"

docmd.gotorecord,,acfirst

If isnull([nticket]) and Estado=3 then

nticket=dmax("nticket","tblventas")+1

docmd.gotorecord,,acnext

next

Pero, para dar una opinión más centrada, convendría que pusieras una imagen de como están los registros en la tabla

Muchas Gracias, he probado con el código pero me da un error de compilación de Next sin For. Te envío la imagen de la tabla para que te hagas una idea.

Tienes toda, toda la razón, por lo que sea, al pegar el código se comió una línea

form.recordsource="select * from tblventa order by fecha asc"

docmd.gotorecord,,acfirst

for i= 1 to form.recordset.recordcount

If isnull([nticket]) and Estado=3 then

nticket=dmax("nticket","tblventas")+1

docmd.gotorecord,,acnext

next

Hola primero muchas gracias por ayudarme.

Lo he probado y primero me da error de que i no está declarado por lo que lo declaré como integer (no sé si he hecho bien). Y luego me sigue dando el error del next sin for. 

No sé que me pasa con esta página me corta líneas

Si tengo una tabla en que el mayor Nticket es 6

Construyo el formulario y en ves de decirle que estado=3 le digo que país=Alemania

Y pulso el botón que no sé porque me lo ha cortado, recorre todos los registro y para que veas lo que ha hecho, te pongo una consulta sólo con Alemania

Como puedes ver, el 6 lo ha respetado porque estaba en un registro con pais=Alemania. El código del botón

En caso de que te diera igual que los Nticket de Alemania vayan correlativos, es decir que si el mayor Nticket es, por ejemplo, 32 y corresponde a uno de Inglaterra y te da igual que habiendo uno de Alemania con 6, el siguiente sea el 33, en la instrucción

... Dmax... bórrale el criterio de País=""Alemania""" y lo dejas como

Nticket=dmax("nticket","clientes")+1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas