Crear un formulario que introduzca un nuevo usuario tantas veces como yo indique el número de veces

Estoy desesperado.
Tengo que crear un formulario para asignar una numeración de boleto de rifa.
Lo que quiero es que cuando me venga un usuario queriendo por ejemplo 6 números de forma consecutiva yo ponga en la casilla 6 y me asigne a la table los 6 números consecutivos siguientes al ultimo asignado (vamos que en la tabla de registro me aparezca los datos del usuario 6 veces repetido.
Y luego me saque por la impresora el usuario y sus 6 números adquiridos.

1 respuesta

Respuesta
2

Puedes hacerlo de mil formas distintas. Vamos a suponer que la tabla se llama Lotería, con los campos IdLoQueSea, numero, cliente(no haría falta pero...), etc.,

Vamos a suponer que en el formulario tienes un cuadro de texto Comprador donde vas a escribir el nombre del iluso que cree que le va a tocar y un cuadro de texto Cantidad donde pones el número de veces que quieres. Puedes poner un botón y en sus propiedades-eventos-al hacer clic creas un procedimiento de evento y entre private Sub y End sub pones

dim i as integer

for i=1 to cantidad

docmd.runsql"insert into lotería(cliente,numero)values(comprador,nz(dlast(""numero"",""loteria""))+1)"

next

También podrías hacerlo sin el cuadro Cantidad y en el botón usar un inputbox.

Si quieres, repito, si quieres, mándame un mensaje (sólo el mensaje) a [email protected] y te mando unos ejemplos.

Si lo haces, en el asunto del mensaje pon tu alias Enrique, ya que si no sé quien me escribe ni los abro.

¡Mil Gracias! Por toda la ayuda la ayuda. Voy a ver si con tus indicaciones lo consigo. Si no pudiese  aceptaría tu ofrecimiento de enviarme unos consejos.... otra vez mil gracias por todo.

Gracias por tu ayuda ya lo tengo bastante confeccionado pero necesitaría que me ayudases un poco mas. Era que necesito que cuando le doy al botón guardar necesitaría que me abriese una ventana donde pone lo datos del iluso y sus números adquiridos y me de la opción de imprimirlo. Sería posible?

Gracias por toda la ayuda dada.

Enrique, no hay problema pero, honestamente, no lo entiendo. Verás, si llega una persona y. según tú, te "compra" 5 veces el ¿mismo? Número, cuando le digas de verlo, a menos que le pongas alguna condición, te mostraría 5 registros con el mismo número. Mira si tengo el formulario

La primera vez, en el combinado no estará ese nombre por lo que habrá que escribirlo. Al pulsar Enter

En el formulario de antes, en el combinado ya aparece el nombre, por lo que si lo elijo

Al pulsar el botón de abajo, te mostraría

Pregunto ¿No sería más lógico?

Y lo mismo se haría para el informe.

Vale perdona equivocación mía. Cuando le das a guardar el número te lo genera la columna de autonumérico de forma consecutiva por ejemplo si yo compro uno me marca el 0001 y si luego inmediatamente compro 3 más me dará el 0002,0003 y 0004. Y lo que quiero que cuando le de a guardar me aparezca la ventana con los datos del usuario y los números que ha adquirido.

Enrique, te pido perdón. Me he pegado dos cabezazos contra una esquina y he rezado tres Padrenuestros. Me acabo de dar cuenta, que lo había entendido mal. Mira, si en el formulario, la primera vez escribo tu nombre

Cuando pongo 5 y pulso Enter me pasa los números correlativos a partir de ese.

Vamos a suponer que otro día vuelves a comprar pero a partir de otro número

hace lo mismo de forma que en la tabla me queda

¿Qué un buen día quiero saber lo que ha comprado? Abro el formulario, elijo el nombre y pulso el botón

El código del evento Después de actualizar del cuadro de texto Veces es

Private Sub Veces_AfterUpdate()
Dim i As Integer
For i = 1 To Veces
DoCmd.RunSQL "insert into loteria(pardillo,numero)values(elegir,format(numero+" & i & "-1,""000000""))"
Next
End Sub

Con la tabla Loteria hago un formulario tabular, en el ejemplo se llama Loteria, y en el evento al hacer clic del botón le pongo

Private Sub Comando6_Click()
DoCmd.OpenForm "loteria", , , "pardillo='" & Me.Elegir & "'", acFormReadOnly, acDialog
End Sub

Si tengo construido un informe como

En cualquier evento del formulario(por ejemplo al hacer clic de un botón) poner

DoCmd.OpenReport "loteria", acPreview, , "pardillo='" & Me.Elegir & "'"

Con lo que

Buenas noches:

Primero mil gracias por todas las molestias que te estas tomando.

Me sabe fatal pedirte un poco más de ayuda pero dando una vuelta de tuerca he pensado una cosa y después de horas buscando por internet y haciendo mil pruebas no consigo lo que me gustaría.

Ya tengo como me habías indicado antes en la tabla se registre los datos como quiero con el formulario  pero me gustaría a la vez que le doy al botón "guardar datos" al mismo tiempo me saque una ventana emergente (supongo que será con un informe) pero sin seleccionar al cliente, si no que yo coja meta sus datos en ese momento y al darle a "guarda datos" me salga un informe (para imprimir) con sus datos y los números que acaba de comprar en ese momento para dárselo como resguardo.

Sería posible?

Otra vez mil gracias.

La verdad, no lo entiendo. Si ya tienes los datos de un cliente, sea en una tabla Clientes, sea en la misma tabla Loteria, ¿para que vas a abrir un formulario, que por cierto no sé cual sería, para volver a repetir los datos. La idea de la programación es para trabajar lo menos posible, que lo hagan las instrucciones.

Por otro lado, sigo insistiendo en que no es necesario el botón guardar, ya lo realiza Access. En todo caso, que no sería necesario pero..., se pondría un botón por si después de crear la serie de números te hubieras dado cuenta de que te has equivocado.

Te mando el mismo ejemplo modificado.

No me acuerdo de si te había enviado el ejemplo. Lo cierto es que si fue así, en gmail no encuentro la dirección. Así que si quieres mándame un mensaje y te la envío.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas