Acquista i nostri libri consigliati su Amazon.it
Discussione chiusa
Pagina 2 di 3 primaprima 123 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23

Numero progressivo che si azzera a ogni anno

  1. #11
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Devi dare poche indicazioni ma GIUSTE per evitare di perdere tempo con suggerimenti tecnicamente giusti in astratto dal momento che vengono proposti su dati errati.
    Prova ad essere concretamente più chiaro, e non è questione di competenze... respira e dai quelle 2 informazioni utili in modo corretto.

    Che tipi di campi hai e che tipo di dato vuoi ottenere con esempi chiari.
    ℹ️ Leggi di più su @Alex ...

  2. #12
    Maximik non è in linea Novello
    Ciao Alex,
    vediamo se riesco a spiegarmi meglio:
    Ho una tabella nominata "Servizio" con i seguenti campi:
    IDServizio - Numerazione automatica
    DATA - Data/ora
    CLIENTE - Testo breve
    e altri campi della stessa tipologia di CLIENTE, cioè testo breve più due tabelle in relazione (mezzi e autisti)
    Ho creato una Maschera nominata "Inserimento Servizio" con tutti i campi di cui sopra e alcuni pulsanti come INSERISCI SERVIZIO SUCCESSIVO - PRECEDENTE - SUCCESSIVO - ELIMINA SERVIZIO
    Ora vorrei creare nella maschera un campo che mi dia come risultato un numero progressivo ad ogni servizio che andrò ad inserire che possa ripartire da 1 ad inizio nuovo anno
    Spero di essere stato più chiaro
    Grazie per l'attenzione e la pazienza

  3. #13
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    ti basta un semplice dcount()
    in cui metti come condizione l'anno per cui conteggi e che immagino tu prenda dal campo DATA (che non è mai una buona idea chiamarlo così ! )
    poi se proprio vuoi memorizzarlo come testo concatenato con l'anno lo puoi anche fare ma io personalmente terrei i 2 campi (anno e num) separati e li mostrerei concatenati solo in presentazione, ti faciliterebbe ricerche ed altro.

    EDIT: anche ciò che ti ha detto Alex al post #3 dovrebbe andare bene, cosa non ti soddisfa?

  4. #14
    Maximik non è in linea Novello
    Ciao Muttley
    grazie per avermi risposto
    Non è che non mi soddisfa, è che non riesco a comprendere il procedimento
    Nella tabella ho il campo DATA e un campo NUMERO SERVZIO di tipo dati numerico e quindi vorrei capire se ciò che avete suggerito devo metterlo nel campo NUMERO SERVIZIO della maschera oppure no, se devo inserirlo come origine di controllo o valore predefinito
    Scusatemi ma sono alle prime armi

  5. #15
    L'avatar di muttley005
    muttley005 non è in linea Topo di biblioteca
    io lo gestirei da codice col metodo che ti ho scritto o come ha scritto alex.
    quando salvi se è nuovo assegni il numero

  6. #16
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da Maximik Visualizza il messaggio
    Ciao Muttley
    grazie per avermi risposto
    Non è che non mi soddisfa, è che non riesco a comprendere il procedimento
    Nella tabella ho il campo DATA e un campo NUMERO SERVZIO di tipo dati numerico e quindi vorrei capire se ciò che avete suggerito devo metterlo nel campo NUMERO SERVIZIO della maschera oppure no, se devo inserirlo come origine di controllo o valore predefinito
    A me pare che nel suggerimento che ti ho dato sia scritto MOLTO MOLTO chiaramente dove devi usarlo, sul fatto che tu non riesca a comprenderlo, purtroppo dipende solo dalla tua base di preparazione... alla quale noi non possiamo porre rimedio... peraltro ti ho indicato il codice sostanzialmente pronto, cosa non pienamente gradita...!
    Quote Originariamente inviato da Maximik Visualizza il messaggio
    Scusatemi ma sono alle prime armi
    Mi pare tu lo abbia già detto, forse 3 volte di troppo, ed a scanso di equivoci non è un problema per il forum nè per chi ti risponde, magari lo è per te ma a questo sarai tu a darti da fare per superarlo.
    ℹ️ Leggi di più su @Alex ...

  7. #17
    Maximik non è in linea Novello
    Ciao Alex,
    ti ringrazio anche per le tue lezioni di vita, come quella suggerita di prendere un bel respiro
    Vorrei farti presente che sono 57 anni che respiro, e su quando serva respirare più o meno profondamente credo di aver imparato qualcosina anch'io
    Mi sono posto in modo umile, perché consapevole dei miei limiti e comprendo che questo non sia un problema del forum
    Non stavo cercando un piatto pronto, ma non stavo cercando neanche persone con la tua supponenza
    Grazie ugualmente

  8. #18
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Io in genere adotto un approccio più semplice: mi creo una tabella dedicata che contenga il valore di uno o più "contatori", magari chiamandola proprio così.

    Al netto di un campo ID univoco che è presente per ogni evenienza, la tabella contiene pochi altri campi, ossia
    • Nome del contatore
    • Anno di riferimento
    • Ultimo valore

    Da questa tabella vado a eseguire una operazione molto semplice, che è l'acquisizione del valore successivo di uno dei contatori presenti in base a un anno di riferimento.

    In poche parole, creando una funzioncina apposita o usando SQL, vado a filtrare per nome del contatore e anno recuperando il valore del contatore; una volta recuperato il valore, lo incremento e lo salvo di nuovo nella tabella per farlo avanzare.

    L'unico caso particolare riguarda la mancanza di un valore per un nome di contatore o per un anno specifico: in quella condizione, restituisco il valore 1 e vado a inserire un nuovo record indicando nome e anno di riferimento del contatore, con il valore appunto inizializzato a 1.

    Questa soluzione mi torna particolarmente comoda per tanti motivi:
    • usando un nome di contatore, ne posso creare quanti ne voglio
    • non sono costretto ogni volta a calcolare il MAX() del campo di una tabella per trovare il progressivo seguente
    • se occorre, posso resettare l'ultimo contatore utilizzato nella tabella
    • se manca un contatore o l'anno, oppure si fa riferimento a un anno nuovo per un contatore esistente, la procedura parte direttamente da 1, gestendo quindi il reset automatico per l'anno nuovo ma continuando la numerazione se si inserisce qualcosa per gli anni precedenti
    • con una banale istruzione SQL, passato qualche anno, si può fare facilmente un "purge" per rimuovere i record vecchi e inutilizzati (ma in genere non serve a meno di non avere tanti contatori per tanti anni)
    • a ciascun contatore è possibile associare anche altri dati (es. una descrizione, la data/ora di ultimo aggiornamento, ecc.)
    • sviluppando una procedura che lavora genericamente per tutti i contatori, la tabella diventa riusabile per tutti gli scenari simili (es. contatori per fatture, DDT, generazione codici e protocolli, ecc.)

    Ovviamente ho esposto tutto in modo teorico, ma con un pochino di VBA o imbastendo le query che svolgono le singole operazioni, non dovrebbe essere difficile implementare le necessarie "scatoline funzionali" che ti semplificano l'acquisizione del valore successivo di un contatore per un determinato anno, indicando appunto questi dati come parametri, e implementando all'interno della routine il recupero del valore, l'incremento da restituire e da aggiornare e/o inserire sulla tabella.

    Creando un indice univoco sui campi "nome contatore" e "anno di riferimento", questo velocizza ancora di più le operazioni (oltre a garantire che non ci finiscano dentro duplicati, ossia più record per uguale contatore e anno).

    Prova a muovere i primi passi magari creando la tabella, mettendo giù le query indicate (sempre se la soluzione ti aggrada) e aggiornandoci sui progressi, e vediamo come procede il tutto.

    Ciao!
    ℹ️ Leggi di più su _alka_ ...

  9. #19
    Maximik non è in linea Novello
    Ciao Alka,
    grazie infinite per la tua spiegazione
    Non mancherò di tenerti aggiornato

  10. #20
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Quote Originariamente inviato da Maximik Visualizza il messaggio
    Ciao Alex,
    ti ringrazio anche per le tue lezioni di vita, come quella suggerita di prendere un bel respiro
    Vorrei farti presente che sono 57 anni che respiro, e su quando serva respirare più o meno profondamente credo di aver imparato qualcosina anch'io
    Nessuna lezione di vita, solo una attenta osservazione al REGOLAMENTO che hai sicuramente letto e che indica la necessità di avere un minimo di basi...
    La sottovalutazione di queste indicazioni non la puoi scaricare a chi poi te lo fa notare...!
    Quote Originariamente inviato da Maximik Visualizza il messaggio
    Mi sono posto in modo umile, perché consapevole dei miei limiti e comprendo che questo non sia un problema del forum
    La questione di umiltà o ripetere continuamente di non essere preparato... non è e non deve essere un'alibi a ricevere un corso Online.
    Quote Originariamente inviato da Maximik Visualizza il messaggio
    Non stavo cercando un piatto pronto,
    Quindi dopo aver ricevuto le soluzioni e non essere riuscito ad implementarle cosa ti aspetti..?
    Quote Originariamente inviato da Maximik Visualizza il messaggio
    ma non stavo cercando neanche persone con la tua supponenza
    Grazie ugualmente
    Grazie a te.
    ℹ️ Leggi di più su @Alex ...

Discussione chiusa
Pagina 2 di 3 primaprima 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Numero progressivo di ogni mese
    Da dolcissimo nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 07-01-2020, 12:04
  2. Settimane per ogni anno
    Da red_apple nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 18-06-2016, 07:48
  3. azzerare il contatore ogni anno
    Da grandemuzzo nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 14-10-2012, 23:18
  4. Risposte: 7
    Ultimo Post: 14-04-2011, 10:34
  5. Numero progressivo
    Da cippalippa nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 05-05-2007, 15:28