Condividi tramite

Numerazione automatica - forzare un valore più basso

Anonimo
2019-02-13T11:52:29+00:00

Ho una colonna di tipo Numerazione automatica che è arrivata supponiamo a 100, quindi il prossimo record avrà il valore 101. Vorrei invece creare un record che abbia un valore più basso, supponiamo 50, valore che è rimasto libero a causa di altri record cancellati in passato (magari per sbaglio). Poi la numerazione automatica potrà riprendere normalmente da 101.

Ci sono trucchi per fare questa cosa? Ho provato ad esempio a cambiare temporaneamente il tipo di colonna in Numerico, in tal modo si può inserire il 50, ma poi non è più possibile fare ridiventare il tipo Numerazione automatica.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

7 risposte

Ordina per: Più utili
  1. Anonimo
    2019-02-21T17:33:40+00:00

    In verità è l'utilizzo che fai del campo contatore che è sbagliato. Quel campo nasce per identificare univocamente i record della tabella e non per avere un numeratore progressivo tipo "numeratore fatture".

    Per un progressivo affidabile è consigliabile creare un apposito campo di tipo numerico da incrementare con un "+ 1" per ogni nuovo record che vai ad inserire. 

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-02-21T09:17:41+00:00

    Adesso non posso provare il tuo metodo, non ho dubbi che funziona, ma ricostruire ogni volta tutta la tabella da zero non è pratico. Comunque grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-02-15T10:51:56+00:00

    Ciao,

    hai risolto?

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2019-02-13T14:05:19+00:00

    Come esempio prova il seguente codice.

    Option Compare Database

    Option Explicit

    Function TrattaTabella()

    Dim myrst1 As Recordset

    Dim myRst2 As Recordset

    Dim Ind As Long

    Dim pos As Integer

    Set myrst1 = CurrentDb.OpenRecordset("Select * from tblCitta")

    Set myRst2 = CurrentDb.OpenRecordset("Select * from tblCitta_New")

    myrst1.MoveFirst

    Ind = 1

    Do While Not myrst1.EOF

       If myrst1(0) = Ind Then

          myRst2.AddNew

          For pos = 1 To myrst1.Fields.count - 1

              myRst2(pos) = myrst1(pos)

          Next

          myRst2.Update

          myrst1.MoveNext

       Else

          myRst2.AddNew

          If Ind = 8 Then   'Numero Id da inserire

             myRst2(1) = "Tuo record"

             myRst2.Update

          End If

       End If

       Ind = Ind + 1

    Loop

    myrst1.Close

    myRst2.Close

    Set myrst1 = Nothing

    Set myRst2 = Nothing

    End Function

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2019-02-13T13:42:33+00:00

    Ciao,

    non penso che esistano automatismi. Forse puoi provare a copiare la struttura della tabella in una nuova e tramite codice Vba trascrivere i records dell'origine avendo l'accortezza di generare anche i buchi esistenti nell'Id origine inserendo anche il record '50'.

    Facci sapere

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento