Access - añadir en tabla un campo alfanumerico

 
Vista:

añadir en tabla un campo alfanumerico

Publicado por Albert (1 intervención) el 13/11/2006 17:28:30
Buenas!!!

Tengo una base de datos hecha y necesito añadir un campo alfanumérico (un número de serie) para cada registro, teniendo en cuenta que es una base de datos muy larga quería que este número me lo asignara el programa y no se repitiese. simplemente sumandose uno a la referencia ya me va bien.

Por ejemplo

REF Nombre
QQ00001 Gabriel Garcia
QQ00002 Tomas Peña

Como veis me da = el orden, es para dioferenciar gente de tablas distintas. 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 Alejandro

Agregar número de serie alfanumérico automáticamente a una base de datos

Publicado por Alejandro (4142 intervenciones) el 28/07/2023 16:30:00
Hola, Albert.

Para agregar un campo alfanumérico con un número de serie que se incremente automáticamente y no se repita en una base de datos de Access, puedes seguir estos pasos:

1. Abre tu base de datos en Access.

2. Haz una copia de seguridad de tu base de datos antes de realizar cambios significativos.

3. Asegúrate de tener una columna de tipo Numérico (por ejemplo, Autonumérico) que se auto-incremente para mantener el orden. Esto te permitirá mantener un orden secuencial para los registros.

4. Crea un nuevo campo alfanumérico para almacenar el número de serie. Puedes usar el tipo de dato "Texto" y establecer una longitud adecuada para tus necesidades (por ejemplo, 8 caracteres para "QQ00001").

5. Ahora, crea un nuevo módulo VBA en Access para generar y asignar los números de serie automáticamente. Ve a "Herramientas" -> "Macros" -> "Editor de Visual Basic" y en el "Editor de Visual Basic", selecciona "Insertar" -> "Módulo".

6. En el nuevo módulo, escribe el siguiente código VBA para generar y asignar el número de serie:

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
Option Compare Database
Option Explicit
 
Public Function GenerarNumeroSerie() As String
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim NumeroSerie As Long
    Dim NuevoNumeroSerie As String
 
    ' Establecer la referencia al objeto de base de datos actual
    Set db = CurrentDb
 
    ' Obtener el último número de serie
    Set rs = db.OpenRecordset("SELECT MAX(Val(Mid([REF],3))) AS UltimoNumeroSerie FROM TuTabla")
 
    If Not IsNull(rs!UltimoNumeroSerie) Then
        NumeroSerie = rs!UltimoNumeroSerie + 1
    Else
        NumeroSerie = 1
    End If
 
    ' Formatear el número de serie con ceros a la izquierda para obtener el formato QQ00001
    NuevoNumeroSerie = "QQ" & Format(NumeroSerie, "00000")
 
    ' Cerrar el recordset y liberar memoria
    rs.Close
    Set rs = Nothing
 
    ' Devolver el nuevo número de serie generado
    GenerarNumeroSerie = NuevoNumeroSerie
End Function

7. Ahora, debes llamar a esta función para asignar el número de serie cada vez que se inserta un nuevo registro en la tabla. Puedes hacer esto en el evento "BeforeInsert" del formulario o en el evento "BeforeInsert" de la tabla (si insertas registros directamente en la tabla).

Por ejemplo, si estás utilizando un formulario para insertar nuevos registros, abre el formulario en modo diseño, selecciona el cuadro de texto del campo "REF" y en la pestaña "Datos" del cuadro de propiedades, en el evento "BeforeInsert", escribe el siguiente código:

1
2
3
Private Sub Form_BeforeInsert(Cancel As Integer)
    Me.REF = GenerarNumeroSerie()
End Sub

Con esto, cada vez que agregues un nuevo registro, se llamará automáticamente a la función "GenerarNumeroSerie" para asignar el número de serie.

Espero que esta solución te ayude a agregar el número de serie automáticamente en tu base de datos de Access. ¡Buena suerte con tu proyecto!
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