Newsgroup: it.comp.appl.access
Titolo: Numerazione Lavorazione

Buonasera ho creato un programma per tenere sotto controllo le fasi di
lavorazione dei vari pezzi e il numero progressivo viene inserito
manualmente ma ora si presenta un inghippo in quanto si presenta la
necessità di variare il numero progressivo ed non risco a trovare una
soluzione. Ho un elenco che ipotesi, va da 1 a N. Se per esempio un
particolare ha il progressivo 6 e lo voglio spostare al numero 3
l'elenco risulta sfalsato e quindi dovrei ricalcolare il tutto e quindi
il 3 dovrebbe diventare il 4 e quindi scalare il tutto, si riesce a fare?
Ringrazio per la cortesia
-- 
      maurizio56
 
 
browser: FireFox 17.01
mailreader: ThunderBird 17


Ciao Maurizio....
Non sei stato molto esplicativo.... quindi basiamoci su alcune
supposizioni:
supponiamo che i dati siano contenuti nella tabella "Lavorazioni", che
il campo da variare si chiami "Progressivo" e sopratutto che da un
record al successivo aumenti ogni volta di uno.
Quindi se ho capito bene ogni volta che inserisci un nuovo record
inserisci manualmente il numero progressivo (aumentato di uno rispetto
all'ultimo inserito) e quando vai a modificare un dato record inserito
precedentemente dovresti rinumerare il campo progressivo da quello
modificato all'ultimo, con una numerazione progressiva.
Supponiamo ancora che i dati vengono modificati su una form (la
denominazione conta poco)
Se le mie supposizioni sono esatte crea un pulsante sulla maschera e
incolla sull'evento "Clic" del pulsante il seguente codice, dovrebbe
andare bene:
 
Dim rsProg As New ADODB.Recordset
Dim Progressivo As Integer
 
Dim SQL As String
 
DoCmd.RunCommand acCmdSaveRecord
 
Progressivo = 0
 
SQL = "SELECT * FROM Lavorazioni ORDER BY [Lavorazioni].[Progressivo]"
Call rsProg.Open(SQL, CurrentProject.Connection, adOpenKeyset,
adLockOptimistic)
With rsProg
    If .EOF Then
        Exit Sub
    Else
        rsProg.MoveFirst
        Do While Not rsProg.EOF
        rsProg("Progressivo") = Progressivo + 1
        Progressivo = rsProg("Progressivo")
        rsProg.Update
        rsProg.MoveNext
        Loop
    End If
End With
 
Me.Requery
 
rsProg.Close
Set rsProg = Nothing
 
Saluti
M7a1x


Vedi l'esempio che ti ho messo su:
http://accessgroup.it/vba/rinumera-record.html
 
 
--
sv

 
Vi ringrazio entrambi per gli esempi postati ed ha ragione M7a1x della
mia confusione anche per mia disabitudine a fornire spiegazioni
esaustive in poco spazio senza cadere nella banalità.
Ho una Tabella "tbl_Produzione"(collegata)in cui memorizzo i dati che mi
servono ed ho un campo "NumeroOrdine" in cui inserisco manualmente(
forse è un errore) un numero progressivo per la lavorazione e quindi
supponiamo di avere una tabella all'incirca:
Pippo	  1
Pluto	  2
Paperino  3
Topolino  4
Paperina  5
Paperone  6
Gastone	  7
quindi se Paperone gli cambio il NumeroOrdine in 3 allora i dati
dovrebbero essere
Pippo	  1
Pluto	  2
Paperone  3
Paperino  4
Topolino  5
Paperina  6
Gastone	  7
Spero che la mia spiegazione possa dare più delicidazioni sulla mia
richiesta e quindi se Gastone dovesse essere al 2 sarebbe
Pippo	  1
Gastone	  2
Pluto	  3
Paperone  4
Paperino  5
Topolino  6
Paperina  7
 
 
A proposito, stavo cercando di capire il codice di M7a1x creando un db
di prova e mi da errore su "Dim rsProg As New ADODB.Recordset" e scusate
l'ignoranza



Ti mancano i riferimenti alle librerie....
nel particolare seleziona dall'elenco (Menu Strumenti>Riferimenti,
nell'editor Vba): Microsoft ActiveX Data Objects 2.1 o successiva.
Saluti
M7a1x


Buonasera.
Stavo provando questo esempio ma mi esce il messaggio di errore su 
Me.barraProgressione.Value = 100 * (intCount / iCnt)
mi dice "nessun oggetto in questo controllo"?
L'errore esce direttamente nel file di esempio.
Come posso sistemare?
Grazie.