/ / Access 2013 Incrementa un campo ID di testo in un modulo: vba, ms-access, runtime-error, ms-access-2013, autonumber

Access 2013 Incrementa un campo ID di testo in un modulo: vba, ms-access, runtime-error, ms-access-2013, autonumber

Ho creato un database da un file excel, una delle colonne (PK) è il numero di licenza, tuttavia questo è in formato testo XX / XX / XXXX

Quando viene creato un nuovo record, mi piacerebbemodulo per compilare automaticamente il campo del numero di licenza con un ID simile contenente sia testo che numeri. Questo deve essere incrementato con ogni nuovo record (solo la parte numero)

Questo è esattamente ciò che voglio ottenere comunque sto ottenendo l'errore mostrato di seguito; https://www.youtube.com/watch?v=kPz-n5w5YtE

inserisci la descrizione dell'immagine qui inserisci la descrizione dell'immagine qui

Qualsiasi aiuto sarebbe apprezzato, ho esperienza con VB, ma ho familiarità con altri linguaggi di programmazione.

risposte:

2 per risposta № 1

Se la tua idea è di prendere un numero (8) e convertirlo in "0008", come nel commento sopra l'errore, prova in questo modo:

strNextNumber = Format(lngNextNumber, "0000")

o vedi l'intero codice:

Public Sub TestMe()
Dim strNextNumber As String
Dim lngNextNumber As Long
lngNextNumber = 8
strNextNumber = Format(lngNextNumber, "0000")
Debug.Print strNextNumber
End Sub

1 per risposta № 2

Se lngNextNumber è maggiore di 9999, il primo argomento del String-funzione sarà -1 o più piccoli e quindi non validi.

Quindi puoi controllare il valore di lngNextNumber primo.

If lngNextNumber < 10000 Then
strNextNumber = String(4 - Len(CStr(lngNextNumber)), "0") & CStr(lngNextNumber)
Else
strNextNumber = CStr(lngNextNumber)
End If

O ancora più semplice, usa il Format-funzione, come già accennato nella risposta di Vityata.

strNextNumber = Format(lngNextNumber, "0000")

1 per risposta № 3

È necessaria una sola linea:

" Old license like "WT/7634/2002".
" New license like "ABC2003"
Me![License Number].Value = Format(Val(Right(DMax("[License Number]", [Licenses]), 4)) + 1, "ABC0000")