Access - campo autonumérico

 
Vista:

campo autonumérico

Publicado por Jose (5 intervenciones) el 14/10/2005 09:49:51
Necesito numerar automáticamente un campo desde 1 una serie de registros en un subformulario y que cada vez que inicio el subformulario empiece desde 1. Este número luego tiene que aparecer en un archivo txt, por lo que necesito que se genere y se guarde en el campo. Lo fácil sería copiar el número de registro del selector de registros, pero no sé como.
Os agradecería la ayuda. Un saludo
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 Alejandro

Numerar automáticamente registros en un subformulario y guardar en un archivo TXT

Publicado por Alejandro (4142 intervenciones) el 12/06/2023 18:50:45
Para numerar automáticamente un campo en un subformulario y guardar el número generado en un archivo de texto, puedes seguir los siguientes pasos:

1. Abre el formulario principal que contiene el subformulario en modo de diseño.

2. Asegúrate de tener un campo en el subformulario donde deseas mostrar el número. Si no tienes uno, puedes agregar un control de texto o un campo calculado en la fuente de control.

3. En el evento "Al abrir" del subformulario, agrega el siguiente código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub Form_Load()
    Dim rst As Recordset
    Dim contador As Integer
 
    ' Obtén el conjunto de registros del subformulario
    Set rst = Me.RecordsetClone
 
    ' Verifica si hay registros en el subformulario
    If Not rst.EOF Then
        rst.MoveLast
        rst.MoveFirst
 
        ' Inicializa el contador
        contador = 1
 
        ' Recorre los registros y asigna el número a cada uno
        Do Until rst.EOF
            rst.Edit
            rst![NumeroRegistro] = contador
            rst.Update
            contador = contador + 1
            rst.MoveNext
        Loop
 
        ' Regresa al primer registro del subformulario
        rst.MoveFirst
    End If
 
    ' Crea y guarda el archivo de texto con los números asignados
    Dim filePath As String
    Dim fileNumber As Integer
 
    filePath = "Ruta\Archivo.txt" ' Reemplaza "Ruta\Archivo.txt" con la ruta y nombre del archivo deseado
 
    fileNumber = FreeFile
    Open filePath For Output As fileNumber
 
    Do Until rst.EOF
        Print #fileNumber, rst![NumeroRegistro]
        rst.MoveNext
    Loop
 
    Close fileNumber
 
    ' Cierra el conjunto de registros
    rst.Close
    Set rst = Nothing
End Sub

Asegúrate de reemplazar "NumeroRegistro" con el nombre del campo donde deseas almacenar el número en tu subformulario y "Ruta\Archivo.txt" con la ruta y el nombre de archivo que deseas utilizar para guardar los números generados.

4. Guarda y cierra el formulario principal.

Cada vez que abras el subformulario, el código VBA asignará automáticamente números secuenciales a los registros y los guardará en un archivo de texto. Los números también se mostrarán en el campo correspondiente del subformulario.

Recuerda ajustar los nombres de los campos y los formularios según tus necesidades.

Espero que esta solución te sea útil para numerar automáticamente los registros y guardar los números en un archivo de texto.
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