VALIDO SE

di il
9 risposte

VALIDO SE

BUONA sera a tutti sono nuova del forum...
Ho una domanda....
Devo creare un campo PROTOCOLLO (per la registrazione delle fatture fornitori), come faccio in inserimento a far uscire un numero che sia sempre successivo al precedente creato ? (non posso usare il contatore perchè nel caso eliminassi un record non me lo farebbe rinserire giusto?)
Grazie ciao a tutti amanti di Access....Simo

9 Risposte

  • Re: VALIDO SE

    Ciao,
    prova ad adattare questo :

    
    me.tuoControlloProgressivo=Nz(DMax("val(CampoProgressivo)", "Dominio"), 0) + 1
    
    adatta i nomi al tuo scenario, ovviamente.
    valuta anche la clausula where della Dmax.
    il progressivo può essere ovviamente ulteriormente personalizzabile, ma non ci hai raccontato molto...sei stata un po preziosa....

    facci sapere!
    un saluto
  • Re: VALIDO SE

    simo27 ha scritto:


    BUONA sera a tutti sono nuova del forum...
    Ho una domanda....
    Devo creare un campo PROTOCOLLO (per la registrazione delle fatture fornitori), come faccio in inserimento a far uscire un numero che sia sempre successivo al precedente creato ? (non posso usare il contatore perchè nel caso eliminassi un record non me lo farebbe rinserire giusto?)
    Grazie ciao a tutti amanti di Access....Simo
    Sbagliato... il CONTATORE fa già proprio quello che dici, non ripropone il Valore eliminato... ,quindi se vuoi un PROFGRESSIVO PURO, non serve nulla...!
  • Re: VALIDO SE

    Ovviamente non sono una brava come voi...sono una autodidatta per quel che mi serve!:)
    Cmq per spiegarmi meglio...per registrare le fatture fornitori devo dare un numero protocollo che deve essere ovviamente uno susseguente all'altro senza doppioni ....
    Scusa la mia domanda che troverai idiota:) ma la formula dv metterla in una casella di testo di una maschera?
    Il mio database deve registrare le fatture dei fornitori...quindi avrò una tabella: DATA/N.FATT./IMPORTO/FORNITORE/ E appunto PROTOCOLLO.
    Grazie!!
  • Re: VALIDO SE

    Ciao,
    per quanto al seguente suggerimento
    
    me.tuoControlloProgressivo=Nz(DMax("val(CampoProgressivo)", "Dominio"), 0) + 1
    
    ("val(CampoProgressivo)"<---- qui scrivi tra virgolette il nome del campo progressivo della tabella;
    "Dominio"<----- qui scrivi il nome della tabella,
    se apri la guida vedi cosa prevede la funzione di aggregazione sui domini Dmax.

    simo27 ha scritto:


    Scusa la mia domanda che troverai idiota:) ma la formula dv metterla in una casella di testo di una maschera?
    Studia bene anche quando il progressivo deve essere incrementato...
    Sicuramente solo su newrecord della tua form.

    un saluto.
  • Re: VALIDO SE

    Mmmmm si solito è bene usare la prorpietà DEFAULTVALUE altrimenti solo su NEWRECORD viene generato il Record appena si genera il protocollo, e non è un bene... solo al SALVATAGGIO è bene venga assegnato.

    Ovviamente sono considerazioni di MONOUTENZA.
  • Re: VALIDO SE

    Scusa Goku..ho scritto questo nella casella della machera
    me.[tuoProtocollo=Nz(DMax("val(Protocollo)", "Iva Acquisti"), 0) + 1]
    Però la risposta è #NOME
    DOVE SBAGLIO?
  • Re: VALIDO SE

    simo27 ha scritto:


    Scusa Goku..ho scritto questo nella casella della machera
    me.[tuoProtocollo=Nz(DMax("val(Protocollo)", "Iva Acquisti"), 0) + 1]
    Però la risposta è #NOME
    DOVE SBAGLIO?
    Stai lavorando nella struttura della maschera? Quella che hai scritto è sintassi da codice vba, anche se quella parentesi quadra aperta dopo me. e chiusa alla fine è un pugno al debug.
    Prova la strada suggerita da @Alex

    @Alex ha scritto:


    Mmmmm si solito è bene usare la prorpietà DEFAULTVALUE altrimenti solo su NEWRECORD viene generato il Record appena si genera il protocollo, e non è un bene... solo al SALVATAGGIO è bene venga assegnato.

    Ovviamente sono considerazioni di MONOUTENZA.
    Cambia il nome del controllo dove va inserito il protocollo in ctlProtocollo, per evitare problemi di riferimenti circolari.
    Nella proprietà DefaultValue (valore predefinito) di quel controllo scrivi
    =Nz(DMax("val(Protocollo)", "[Iva Acquisti]"), 0) + 1
    Se il campo Protocollo in [Iva Acquisti] è numerico (e credo proprio che lo sia) credo che sia sufficiente
    =Nz(DMax("[Protocollo]", "[Iva Acquisti]"), 0) + 1
    Prova e vedi se ti soddisfa.
  • Re: VALIDO SE

    Inserendo quanto detto mi esce
    Errore di sintassi....operando o operatore mancante....carattere o virgola non valida....eccc.
  • Re: VALIDO SE

    simo27 ha scritto:


    Inserendo quanto detto mi esce
    Errore di sintassi....operando o operatore mancante....carattere o virgola non valida....eccc.
    Praticamente non ce n'è una di giusta.
    Sostituisci le virgole con i puntievirgola, almeno quell'errore dovrebbe sparire (quando imparerò sarà sempre troppo tardi)
Devi accedere o registrarti per scrivere nel forum
9 risposte