Newsgroup: it.comp.appl.access
Titolo: azzerare progressivo a inizio anno

Salve a tutti  avrei un quesito da porre e spero di trovare risposta,
la mia necessità sarebbe quella di azzerare un progressivo ad inizio
anno e farlo ripartire da zero, ho letto i suggerimenti postati
precedentemente in questo N.G. e ho anche visionato l'esempio
pubblicato sul sito comune alla voce General 6.17, ma benche'
funzionante alla grande non posso utilizzarla in quanto non funziona in
un db condiviso in rete e quindi in multiutenza, come posso fare a
crearmi l'azzeramento automatico ad inizio anno da codice vb
considerando che per incrementare il numerico uso la funzione DMax+1 ?
grazie per l'eventuale aiuto che mi verrà dato.
Saluti
Diego

diego ha scritto:

Perchè dici che non funziona in MultiUtenza....?
Se non erro si tratta di Generare l'Indice su Evento BeforeUpdate come
si deve
fare in Multiutenza con qualsiasi sistema di Numerazione da codice.
@Alex

Ciao Alex sempre disponibile ad aiutare e di questo ti ringrazio
enormemente, allora il codice postato qui sotto e' inserito nell'evento
click del pulsante,
Dim NewProt As Long, varANNO As String
Set miodb = CurrentDb
Set miorst = miodb.OpenRecordset("SELECT * FROM Protocollo WHERE
NPROT=(SELECT MAX(NPROT) FROM Protocollo)")
If miorst.EOF = False Then
NewProt = miorst!NPROT + 1
varANNO = Format(Date, "YY")
miorst.Close
Else
NewProt = 1
varANNO = Format(Date, "YY")
il mio problema sarebbe quello di far ripartire la tabella da zero ad
inizio anno lasciando naturalmente i dati precedenti e non azzerarla,
ho provato con la query pubblicata nel sito comune, inserendo
l'espressione: =Format(Date();"aa") & "/" &
Format(IIf(IsNull(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" &
Format(Date();"aa") &
"/????'"));1;Right(DMax("MioContatore";"MiaTabella";"MioContatore like
'?" & Format(Date();"aa") & "/????'");4)+1);"0000"), debitamente
modificata per l'occorrenza, nella proprietà ValorePredefinito del
controllo ma in multiutenza non funziona se io ed un mio collega lo
proviamo contemporaneamente non c'e' progressione entrambi immetiamo lo
stesso numero progressivo, ecco il mio cruccio, ho pensato di
appoggiarmi ad una tabella per poi svuoltarla manualmente ad inizio
anno ma non mi sembra una cosa elegante da fare se la soluzione puo'
essere diversa.
grazie  di nuovo
Diego

diego ha scritto:

Come ti dicevo non va inserita nel DefaultValue, ma su Evento
BeforeUpdate
o Prina di Aggiornare relativamente alla Form.
Per il resto non ci sono problemi.
@Alex

 @Alex
forse e' meglio che inizi dal principio, io uso questa funzioneper
determinarmi il progressivo NUMERICO:
Public Function progressivo(NomCampo As String, NomeTab As String)
    Dim db As Database
    Dim rst As Recordset
    Dim Qry1 As String
    Set db = CurrentDb
    Qry1 = "SELECT 1+Max(" & NomCampo & ") AS newid FROM " & NomeTab
    DBEngine.BeginTrans
    Set rst = db.OpenRecordset(Qry1, dbOpenDynaset)
   progressivo = rst!newid
   If IsNull(progressivo) Then progressivo = 1
    rst.Close
    DBEngine.CommitTrans
End Function
normalmente la uso per gli ID anzicche' usare il campo contatore, ed in
multiutenza funciona in modo eccellente, adesso il volevo usare questa
funzione per creare un protocollo progressivo del tipo 000001/06 e
pensavo di modificare questa funzione implementandola con quella
esptrapolata da sito comune di cui sopra, ebbene non riesco a farla
funzionare mi da sempre errore su AS newid dicendo che occorre la
parentesi o il separatore di campo, comunque caro alex ho provato a
seguire il tuo suggerimento inserendo la query pubblicata nel S.C. non
su valore predefinito ma sull'evento before ed anche after UpDate ma
nulla non funziona ...se io ed il mio collega clicchiamo
contemporaneamente assegna ad entrambi lo stesso numero, sinceramente
nn so come fare, le sto tentando se non tutte , quasi, ma non mi riesce
di trovare la soluzione adeguata sopratutto per azzerare ad inizio
anno, spero in un tuo suggerimento illuminante.
grazie sempre per la tua disponibilità e pazienza, e ringrazio
ovviamente tutti coloro che vorranno darmi suggerimenti in merito.
Saluti 
Diego

 ha scritto nel messaggio 
news:1153315199.9...@s13g2000cwa.googlegroups.com...






End Function


Saluti
Diego
Ciao Alex e Diego
mi pare che per funzionare il campo della tabella deve essere di tipo testo.
Daniele 

cidi ha scritto:

Esatto, ma spero non sia questo il moptivo del Malfunzionamento.....
@Alex

 @Alex
ma infatti è un campo testo....ma non va...e non capisco il
motivo...AIUTATEMI !!! (come disse il vigile De Sica)