Access - Generar registros autonumericos en una tabla dependiendo de la cantidad que se especifique

 
Vista:
sin imagen de perfil

Generar registros autonumericos en una tabla dependiendo de la cantidad que se especifique

Publicado por Luis (5 intervenciones) el 02/09/2016 18:42:45
Estimados, necesito de sus conocimientos para crear mediante un formulario con un cuadro de texto y un botón, una serie de registros en una tabla. Explico:
Tengo un tabla llamada ES con un campo IdAsiento que es Autonumérico éste va generando un número (número de Asiento) a medida que los usuarios cargan datos.
Necesito crear un formulario que me permita ingresar en un cuadro de texto la cantidad de registros que deseo insertar, Por ejemplo 50, y que me los agregue a la tabla a partir del último registro, utilizando el campo IdAsiento, que es autonumérico. Luego debo poder imprimir los nuevos Números de Asiento que generó el formulario.
Espero haberme explicado, quedo a la espera de su ayuda, mil gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Generar registros autonumericos en una tabla dependiendo de la cantidad que se especifique

Publicado por Neckkito (1157 intervenciones) el 07/09/2016 12:46:51
Hola!

Lo que pides es bastante extraño. Te puedo dar una solución, pero ya te digo yo que es una solución un poco "chapuzas". Pero bueno, si te sirve...

El autonumérico se genera siempre que hay una inserción efectiva de, al menos, un dato en el registro. Por lo tanto, tenemos que hacer que se inserte "algo" en cada registro para que Access genere el autonumérico.

Supongamos que tienes un campo en tu tabla que no sea de vital importancia, llamémosle [CampoAux], y que el textbox donde escribes el dato se llama txtRepeticiones.

En un botón de comando en el formulario, en su evento "Al hacer clic", le generas el siguiente código:

...
Private Sub
Dim i as integer

For i=1 to me.txtRepeticiones
currentdb.execute("INSERT INTO NombreTabla(CampoAux) VALUES (''))
next i

msgbox "Autonuméricos generados correctamente",vbinformation,"OK"
End sub
...

Y para sacar los autonuméricos generados te creas una consulta sobre esa tabla con los campos que quieras ver y, añadiendo el [CampoAux] (puedes desmarcar el check "Mostrar" si no lo quieres ver), le estableces como filtro dos comillas dobles seguidas: ""

Evidentemente, sobre esa consulta, puedes crearte un informe para imprimirlo.

Saludos,

Neckkito
http://bit.ly/neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Generar registros autonumericos en una tabla dependiendo de la cantidad que se especifique

Publicado por Luis (5 intervenciones) el 07/09/2016 16:41:12
Gracias Neckkito me sirvió tu ayuda, les dejo el código funcionando a continuación:
Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub cmd_generaAsiento_Click()
Dim vNasiento As String
Dim base As Database
Set base = CurrentDb
Dim i As Integer
Dim vInforme As String
 
vNasiento = "insert into [ES] (numfolios) values (0);"
    For i = 1 To Me.txt_generaAsiento.Value
    base.Execute (vNasiento)
    Next i
 
vInforme = "IDASIENTO > (SELECT Max(IDASIENTO) AS MáxDeIDASIENTO FROM [ES] ORDER BY Max(IDASIENTO) DESC) - " & Me.txt_generaAsiento.Value
 
    DoCmd.OpenReport "inf_generaAsientoManual", acViewNormal, , vInforme
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Generar registros autonumericos en una tabla dependiendo de la cantidad que se especifique

Publicado por Neckkito (1157 intervenciones) el 07/09/2016 18:29:58
Hola:

Me alegra que la idea te haya servido, pues veo que lo has adaptado.

Si me permites una recomendación, cuando crees un objeto, al finalizar su función, ciérralo (si el objeto lo admite) y destruye su instancia.

Tú has creado el objeto database, así que al final del código escribe:

base.close
set base=nothing

Así liberas recursos y queda mucho mas elegante.

Un saludo.

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar