COME FARE CAMBIERE DI NUMERO I RECORD IN AUTOMATICO

Anonimo
2023-02-28T19:30:36+00:00

ragazzi buonasera scusate per il disturbo, ma mi serve il vostro aiuto.

Io ho creato una tabella chiamata clienti i campi sono:

numero cliente numerico

cognome e nome testo

su questa tabella ho creato una maschera, dove nel valore predefinito della casella numero cliente ho inserito questa funzione =Nz(DMax("[NUMERO - CLIENTE - PARTE - 1 ]";"[CLIENTI - CHE - RICEVONO - PARTE - 1]");0)+1 voi gia' sapete a cosa serve mi da a ogni cliente inserito il numero progressivo.

Il mio problema e' che se vado a cancellare il cliente 1 vorrei che il cliente 2 diventerebbe 1 si puo' fare ?

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
Risposta accettata dall'autore della domanda
Anonimo
2023-03-01T13:09:31+00:00

Se non si ha familiarità con VBA, è comunque possibile ottenere il risultato desiderato modificando la formula esistente utilizzata per generare i numeri di clienti progressivi. Anziché utilizzare la funzione DMax, è possibile utilizzare una combinazione delle funzioni Min e Max per ottenere i numeri cliente minimo e massimo dalla tabella e quindi aggiungere 1 al numero massimo per generare il nuovo numero cliente. Ecco un esempio di come è possibile modificare la formula esistente:

=Nz(Max([CustomerNumber])+1; 1)

Questa formula tenterà innanzitutto di ottenere il numero massimo di clienti dal campo "CustomerNumber" nella tabella "Customers1". Se nella tabella non sono presenti record, la funzione Nz restituirà 1 come valore predefinito. Quindi, 1 verrà aggiunto al numero massimo (o 1 se non ci sono record), che ti darà il nuovo numero cliente. È possibile impostare questa formula come valore predefinito per il campo "CustomerNumber" nel modulo e verrà generato automaticamente il successivo numero cliente disponibile quando viene aggiunto un nuovo record.

Per aggiornare i numeri cliente dopo l'eliminazione di un record, è possibile utilizzare una query di aggiornamento per rinumerare tutti i record nella tabella in base alla loro posizione nella tabella. Ecco un esempio di come è possibile creare una query di aggiornamento per eseguire questa operazione:

  1. Aprire la tabella "Clienti1" nella visualizzazione Foglio dati.
  2. Fare clic sulla scheda "Tabella" nella barra multifunzione, quindi fare clic sul menu a discesa "Tipo di query".
  3. Scegli "Aggiorna query" dall'elenco.
  4. Nella riga "Aggiorna a" del campo "CustomerNumber", inserire la seguente espressione:

DCount("*","Clienti1","CustomerNumber<" & [CustomerNumber])+1

This expression will count the number of records in the table that have a lower customer number than the current record, and then add 1 to that count to generate the new customer number. This will ensure that the customer numbers are renumbered based on their position in the table. 5. Run the query by clicking on the "Run" button in the ribbon.

After running the query, all the records in the table will be renumbered based on their position in the table, and the customer numbers will be consecutive and progressive.

If you have any other questions or need assistance with anything, please don't hesitate to let me know. It will be my pleasure to Assist you.

Best Regards, Sneha

Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2023-03-01T22:49:03+00:00

    GRAZIIIIEEEEE funziona

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-03-01T09:04:22+00:00

    Buongiorno gupta grazie per avermi risposto e anche a carletto. Io non so usare il VBA non sono capace a creare il codice, e il campo non e' di numerazione automatica ma solo numerico infatti per far si ogni cliente ha un numero suo e anche progressivo ho usato questa formula =Nz(DMax("[NUMERO - CLIENTE - PARTE - 1 ]";"[CLIENTI - CHE - RICEVONO - PARTE - 1]");0)+1 ora questa tabella che si chiama clienti1 a relazione uno a uno con la tabella2 e con la tabella3 i campi interessati sono numero1, numero2,numero3 mentre con la tabella4 ha una relazione uno a molti i campi sono numero1 con numerazione tutti campi numerici ecco qua

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-02-28T21:17:17+00:00

    Ciao

    Sono Sneha e sarei felice di aiutarti con la tua domanda. Ci scusiamo per l'inconveniente causato.

    Sì, puoi ottenere questo risultato creando un codice VBA che verrà eseguito dopo l'eliminazione di un record nel modulo. Ecco un esempio di come puoi farlo:

    1. Aprire il modulo nella vista progettazione.
    2. Seleziona il modulo e vai alla finestra delle proprietà (premi F4 se non è aperto).
    3. Vai alla scheda Eventi e clicca sui tre puntini (...) accanto alla proprietà "After Del Confirm".
    4. Scegli "Code Builder" e fai clic su "OK".
    5. Questo aprirà l'editor VBA. Nell'editor, vedrai una nuova funzione simile a questa:

    Private Sub Form_AfterDelConfirm(Status As Integer) 'Il tuo codice va qui Fine sub

    1. In questa funzione, è necessario scrivere un codice VBA che aggiornerà i numeri dei clienti dopo l'eliminazione di un record. Ecco un codice di esempio:

    Private Sub Form_AfterDelConfirm(Status As Integer) Dim db come DAO. Banca dati Dim rs Come DAO. Set di record Dim i As Long

    Set db = CurrentDb() Imposta rs = db. OpenRecordset("SELECT * FROM Customers ORDER BY CustomerNumber")

    i = 1

    Fai fino a rs. EOF rs. Redigere RS! CustomerNumber = i rs. Aggiornare i = i + 1 rs. SpostaAvanti Ciclo

    rs. Chiudere Set rs = Niente Imposta db = Niente Fine sub

    1. Salvare il codice VBA e chiudere l'editor.

    Ora, quando si elimina un record nel modulo, il codice VBA verrà eseguito e aggiornerà i numeri cliente per tutti i record nella tabella. Si noti che questo codice presuppone che il campo "CustomerNumber" sia un campo di numerazione automatica, pertanto non è consigliabile provare a modificarlo direttamente. Se sono presenti altri campi che dipendono dal numero cliente, sarà necessario aggiornare anche tali campi.

    È possibile aprire il database di Access, aprire il modulo in visualizzazione Struttura e seguire i passaggi forniti per aggiungere il codice VBA che aggiornerà i numeri cliente dopo l'eliminazione di un record. Assicurati solo di salvare il modulo e il codice VBA prima di testarlo.

    Se hai altre domande o hai bisogno di assistenza con qualsiasi cosa, non esitare a farmelo sapere. Sarà mio piacere assistervi.

    Migliori saluti Sneha

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-02-28T19:46:03+00:00

    Da quello che dici sarebbe opportuno che allegassi un immagine della finestra delle relazioni del tuo programma, in quanto credo che tu abbia molti problemi su come gestire una struttura corretta in un database.

    La risposta è stata utile?

    0 commenti Nessun commento