Access - problema en auto numerico secuencial

   
Vista:

problema en auto numerico secuencial

Publicado por Didac (18 intervenciones) el 18/04/2017 15:07:43
Buenas a todos tengo creado este codigo para hacer un campo autonumerico y de momento funciona correctamente.

1
2
3
4
5
Public Function NumId() As Long
    Dim Numero As Long
    Numero = Nz(DMax("COUNT","dbo_usuarioregistrador"),0) + 1
    NumId = Numero
End Function

1
2
3
4
5
Private Sub Form_Current()
   If Me.NewRecord Then
      Me.CampoClave = Nz(DMax("COUNT","dbo_usuarioregistrador"),0) + 1
   End If
End Sub

Pero cuando llega al registro 10, deja de guardar datos en la tabla, no continua por el 11, 12 ,13...... Y por otro lado el valor 10 me lo pone detras del 1, el campo en el SQL lo tengo determinado como nchar(10)

Que es lo que no hago bien?

Muchas 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

problema en auto numerico secuencial

Publicado por Anonimo (814 intervenciones) el 18/04/2017 18:07:27
El elemento a incrementar es un texto y se le trata como numero lo cual da lugar a ese tipo de error.
Además ( y se apreciara cuando se utilicen dos o mas dígitos) lo ordenara alfabéticamente.

El valor mas alto de un texto que representa a un numero se obtiene así:

DMax("COUNT"," ...... ===> ERROR

DMax("VAL(COUNT)"," ..... ===> Resultado correcto


El orden correcto lo tomara si se le da formato (y como es un texto de longitud 10, los espacios = ceros)

Me.CampoClave =FORMAT( Nz(DMax("VAL(COUNT)",.... ,"0000000000")
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
Revisar política de publicidad