Access - Autonumérico para código inventario con letras

 
Vista:
Imágen de perfil de Juan
Val: 411
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Autonumérico para código inventario con letras

Publicado por Juan (141 intervenciones) el 20/04/2019 20:57:30
Hola a todos,

Estoy realizando una tabla de inventarios donde al crear un nuevo producto le asigno un código automatico que consta de letras y números.

En una tabla diferente creo el tipo de producto y le asigno automáticamente las tres primeras letras, por ejemplo.

INFORMATICA - INF
ELECTRICO - ELE
MECANICA -MEC

En otra tabla, introduzco el nuevo producto con sus características, al poner en un cuadro combinado el Tipo, me asigna el código, por ejemplo: INF0001.

Ahora lo que me pasa, es que al crear productos me crea:

INF0001
ELE0002
MEC0003
INF0004

Lo que quiero es que me cree el mismo número diferenciando las tres letras:

INF0001
ELE0001
MEC0001
INF0002
ELE0002
...

El código que he encontrado en ejemplo y he adaptado es:

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
49
50
Private Sub Form_Current()
 
On Error Resume Next
 
   If Me.NewRecord Then
   Me.txtauto = Nz(DMax("txtauto", "TCrearproducto"), 0) + 1
   End If
 
End Sub
 
 
Private Sub Tipo_AfterUpdate()
 
Me.CodigoFin = Me.Tipo.Column(2)
 
'Declaramos las variables
Dim cabecera As String
Dim vNum As Long
Dim vCod As String
Dim vLargo As String
 
'Cogemos el valor del autonumérico
vNum = Nz(Me.txtauto.Value)
cabecera = Nz(Me.CodigoFin.Value)
'Sacamos la longitud del autonumérico
vLargo = Len(vNum)
 
'Determinamos cuántos ceros debemos añadir
Select Case vLargo
Case 1
vCod = cabecera & "00000" & vNum
Case 2
vCod = cabecera & "0000" & vNum
Case 3
vCod = cabecera & "000" & vNum
Case 4
vCod = cabecera & "00" & vNum
Case 5
vCod = cabecera & "0" & vNum
Case 6
vCod = cabecera & vNum
Case Else
MsgBox "No puede crearse el código porque la longitud sería incorrecta", vbExclamation, "NO POSIBLE"
Exit Sub
End Select
 
'Escribimos el código obtenido
Me.Codigo.Value = vCod
 
End Sub

Claro, al crear el autonumérico al cargar el registro me lo toma consecutivo. Hay otra manera de hacerlo?

Gracias por vuestra ayuda.
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

Autonumérico para código inventario con letras

Publicado por Anonimo (2076 intervenciones) el 21/04/2019 03:18:17
Si, esta por ejemplo, solo se necesitaría cambiar el nombre de la tabla (en el ejemplo: TABLA1) y el del campo (en el ejemplo: X_CODIGO)

1
If Me.NewRecord And Me.Tipo.Column(2) <> "" Then Me.Codigo = Me.Tipo.Column(2) & Format(Nz(DMax("Val(Mid(x_codigo, 4))", "Tabla1", "Left(x_codigo,3) = '" & Me.Tipo.Column(2) & "'"), 0) + 1, "0000")

Se verifica que sea un nuevo registro y que en el combo (el objeto Tipo ) se tenga un valor seleccionado
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
Imágen de perfil de Juan
Val: 411
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Autonumérico para código inventario con letras

Publicado por Juan (141 intervenciones) el 21/04/2019 13:27:03
Gracias amigo me ha servido de mucho.

Saludos
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Autonumérico para código inventario con letras

Publicado por Ad (21 intervenciones) el 14/05/2020 23:39:54
Buenas tardes, yo estoy buscando hacer una autonumerico asi, puedes compartir el código completo. gracias
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 Joan
Val: 411
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Autonumérico para código inventario con letras

Publicado por Joan (141 intervenciones) el 15/05/2020 11:21:07
Hola,

No entiendo,

El código completo es el del ejemplo. Solo has de cambiar el nombre de la tabla y el del campo donde quieres ingresar el autonumérico.
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
sin imagen de perfil
Val: 37
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Autonumérico para código inventario con letras

Publicado por Ad (21 intervenciones) el 15/05/2020 14:59:58
Buenos días,

Ok gracias, entendi que no funcionaba bien el ejemplo y como te complementaron con un código. como veras no soy muy bueno en esto de la programacion a probar tu código par ver si me funciona . nuevamente gracias


Saludos...
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 Joan
Val: 411
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Autonumérico para código inventario con letras

Publicado por Joan (141 intervenciones) el 15/05/2020 15:10:25
El código es el del post de Anonimo.

1
If Me.NewRecord And Me.Tipo.Column(2) <> "" Then Me.Codigo = Me.Tipo.Column(2) & Format(Nz(DMax("Val(Mid(x_codigo, 4))", "Tabla1", "Left(x_codigo,3) = '" & Me.Tipo.Column(2) & "'"), 0) + 1, "0000")

Saludos.
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