Newsgroup: it.comp.appl.access
Titolo: creare un contatore

ho una tabella con i campi pratica, faldone, cliente.
i campi pratica e faldone sono numerici, la mia intenzione č che per ogni 10
pratiche io abbia un faldone. Cerco di spiegarmi meglio,
inserisco i dati del cliente ed ho una pratica del faldone 1, quando arrivo
a 10 pratiche il campo pratica ricomincia da 1 e quello faldone si
incrementa di uno.
Cerco una routine o una funzione che mi consenta di fare questo lavoro per
ogni record che incremento.
grazie


se Crei un query e dividi per 10 il campo contatore avrai l'intero che è il
n del faldone e il decimale che è il numero di pratica.
Potrai poi gestirli con le funzioni int e per trovare la parte decimale
Frazione: [a]-[int]
Ciao


Prova con questa
Ammesso che hai una tabella chiamata Tab1, un campo pratica, un campo
faldone e poi tutti i campi che vuoi
crei una maschera e sull'evento prima di inserire crei una routine copiando
questo codice
Private Sub Form_BeforeInsert(Cancel As Integer)
Dim Conteggio
Dim ConteggioF
Conteggio = DLast("[pratica]", "tab1") + 1
    If DLast("pratica", "tab1") = 10 Then
        Conteggio = 1
            End If
                If (IsNull(Conteggio)) Then
                    Conteggio = 1
                        End If
                            If DLast("pratica", "tab1") = 10 Then
                            ConteggioF = DMax("faldone", "tab1") + 1
                           Else
                        ConteggioF = DMax("faldone", "tab1")
                    If (IsNull(ConteggioF)) Then
             ConteggioF = 1
         End If
    End If
 Me.Faldone = ConteggioF
    Me.Contatore = Conteggio
        End Sub
Ciao e buone feste

 Buone feste anke a te
ti ringrazio per l'aiuto ed ho provato purtroppo mi chiama questo errore:
errore di compilazione impossibile trovare il metodo o membro dei dati e mi
evidenzia in blu la stringa "Me.contatore" ed in giallo " Private Sub
Form_BeforeInsert(Cancel As Integer)" dove sbaglio?

Conteggio = DLast("[pratica]", "tab1") + 1
[cut]
Dalla guida in linea:
È possibile utilizzare le funzioni DFirst e DLast per restituire un
record casuale da un determinato campo in una tabella o in una query
quando è solo necessario un valore qualsiasi di tale campo.
---
Ciò significa che usando DLast non hai la certezza di recuperare
l'ultimo record inserito.
Per quanto riguarda il problema di Stef, a mio avviso, la soluzione
più lineare è quella di attribuire ad ogni pratica un numero
progressivo (quindi anche superiore a 10) e associare detto valore ad
un controllo nascosto nella maschera. Nella maschera ci saranno poi
due controlli non associati (txtFaldone e txtPratica) le cui origini
controllo saranno rispettivamente:
= Int(txtNascosto/10)
= txtNascosto - (txtFaldone*10)
Ovviamente dovrà incrementare il numero progressivo, per esempio a
fronte dell'evento 'su corrente' della maschera:
---
Me.txtNascosto.DefaultValue = 1 + Nz(DMax("Progressivo","Tab1"),0)
Ciao
--
Alberto
No alle guerre

 Me.txtNascosto.DefaultValue = 1 + Nz(DMax("Progressivo","Tab1"),0)
Ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Scusami la fretta fa brutti scherzi.
sostituisci Me.contatore   con    Me.Pratica
Ciao

 Ti ringrazio, ho fatto delle prove e mi sembra che funzioni proprio come
mi serviva
ciao

 ha scritto nel messaggio
news:bsopaf$f7t$1...@news.newsland.it...

Spero che il sempre OTTIMO Alberto non si offenda se propongo un piccolo
miglioramento al suo esempio.
Ho aggiunto un campo "Progressivo" alla tabella e su corrente della
maschera:
Me.pratica = Me.txtPratica
Me.faldone = Me.txtFaldone
Sul record si ha già il numero di pratica e faldone basta inserire il solo
cliente. Magari si faceva anche prima ed io non ne sono stato capace...
Ciao Daniele

Ciao Daniele
Ciao Daniele,
;-)
-------
Scusami, saranno i bagordi di queste feste, ma mi sfugge qualcosa ... 
La mia idea (ma forse non mi sono spiegato bene per i motivi di cui al
punto precedente) era di eliminare dalla tabella il campo 'faldone' e
lasciare solo il campo 'pratica', che diventava quindi il progressivo.
La visualizzazione di 'faldone/pratica' con i criteri voluti da Stef
doveva essere realizzata solo a livello di maschera con le due caselle
di testo non associate.
A fronte dell'evento 'corrente' io incrementavo il defaultValue della
casella di testo (nascosta) associata al campo 'progressivo' per
l'eventuale immissione di un nuovo record.
Tu invece volevi lasciare in tabella 'faldone' e 'pratica' e
aggiungere 'progressivo'? ... l'emicrania avanza ... aiuto ... ;-)
Intanto tantissimi auguri di cuore a te a tutti i frequentatori del
ng.


 No alle guerre
Ciao Daniele

 ha scritto nel messaggio
news:T%nIb.23892$VW.11...@news3.tin.it...




aspettavo di vedere i controlli pratica e faldone nella maschera
Vedo se oggi riesco meglio a sintetizzare :-)
La mia idea:
tabella 'tblPratiche'
--------------------
- lngProgrPratica (intero lungo, chiave primaria)
- altri campi (data, descrizione pratica, responsabile, ecc)
maschera 'frmPratiche'
---------------------
- casella di testo 'txtProgrPratica' associata al campo
'lngProgrPratica', visibile = No, valore predefinito
=1+Nz(DMax("lngProgrPratica";"tblPratiche");0)
- casella di testo 'txtFaldone', non associata, visibile = Sì, origine
controllo =1+Nz(DMax("lngProgrPratica";"tblPratiche");0)
- casella di testo 'txtPratica', non associata, visibile = Sì, origine
controllo =[txtProgrPratica]-(([txtFaldone]-1)*10)
- altri controlli per rimanenti campi
A me sembra abbastanza semplice e lineare, ma se vuoi mandarmi il tuo
esempio mi farà molto piacere vederlo. Già che ci siamo ... non eri tu
che avevi realizzato una gestione ferie ... ehm ehm, non si potrebbe,
ehm ehm (
sartor...@tin.it
). Graaazie!
Per Stef:
La mia proposta di soluzione, come avrai visto nelle righe precedenti,
prevede di eliminare dalla tabella i campi 'faldone' e 'pratica' e
sostituirli con un unico campo progressivo (quindi se tu hai cento
pratiche, saranno numerate dall'uno al cento). La visualizzazione
'faldone/pratica', come tu volevi, si otterrà, nella maschera, con due
semplici formule.
Se ti va bene impostare la tabella in questo modo dimmelo che ti mando
un db di esempio (che ho già preparato). Event confermami l'e-mail.


 No alle guerre
Ciao Alberto
Nel rinnovarti gli auguri di Buon Capodanno spero che tu abbia passato bene
le feste come me.
Allora ok per lo scambio. Ti mando i due esempi. L'esempio che HAI
MODIFICATO per Stef  ho cercato di realizzarlo ..e devo aver sbagliato
qualcosa....sai ...ehm  i postumi delle serate :-)
Ciao Daniele

 ha scritto nel messaggio
news:t8l8vv8k6gnls079v...@4ax.com...

ti ringrazio per l'aiuto ti confermo l'e-mail  è 
dav...@isolaweb.it

Ciao Daniele


ti ringrazio per l'aiuto ti confermo l'e-mail  è 
dav...@isolaweb.it
Ok, lo spedisco in serata, fammi sapere. (come avrai visto avevo
sbagliato il copia-incolla per txtFaldone, comunque nell'esempio le
formule sono giuste).


 No alle guerre
Ciao Daniele

... User unknown


benissimo.
Volevo dire ...
Ho realizzato un db di prova, che mi funzionava. Poi, nel copincollare
le formule per riportarle nel mio post dell'1/1/2004 ho fatto qualche
pasticcio: infatti l'origine controllo di txtFaldone risulterebbe
identica al volore predefinito di txtProgrPratica. Con questo errore
il mio esempio non funzionava e dava risultati addirittura negativi.
Quindi non eri tu ad aver 'sbagliato qualcosa per i postumi delle
serate' ... in realtà il 'merito' del non funzionamento era mio.
Per i tuoi file devo trovare un po' di tempo per guardarli con calma e
poi ti faccio sapere.
Ciao :-))


 ha scritto nel messaggio
news:c6mdvvojk7tprns4j...@4ax.com...

mi sono accorto di avere problemi con quell'indirizzo scusami quest'altro
funziona 
stef...@libero.it

funziona 
stef...@libero.it
Ok, vedi se ora arriva
