Ho una tabella Titoli e un campo NTesto dove i valori sono così elencati: 001, 002, 003... sono di tipo Testo e vengono digitati manualmente (non si prevede di raggiungere le "migliaia"). Ciò e dovuto al fatto che in base a tutti gli altri campi, risulta impossibile stabilire un ordinamento anche composito, quindi in taluni casi devo imporre io tale ordinamento. Accade quindi che, siccome attingo ogni tanto nuovi dati (ma prima o poi termineranno), può accadere che per esempio 3 record li devo inserire logicamente tra 080 e 081. Sul momento digito 080.1, 080.2, 080.3, poi riordino la tabella. Tuttavia non mi piace che appaiano quei punti e vorrei rinumerare integralmente il tutto.
Ho creato questi due codici, ma entrambi non funzionano.
Qui ho creato una query NTestoOrdinato modificabile
Private Sub AggiornaNTesto_Click()
Dim PT As DAO.Database
Dim NTO As DAO.Recordset, T As DAO.Recordset
Dim I As Integer
Set PT = CurrentDb
Set NTO = PT.OpenRecordset("NTestoOrdinato", dbOpenDynaset)
NTO.MoveFirst
Do Until NTO.EOF
I = I + 1
NTO!NTesto.Edit 'qui si ferma il codice
NTO!NTesto = Format(I, "000")
NTO!NTesto.Update
NTO.MoveNext
Loop
I = 0
NTO.Close
PT.Close
End Sub
dove indicato mi dà Errore run-time 438: Proprietà o Metodo non supportati dall'oggetto.
In questo caso vorrei agire direttamente sulla tabella Titoli, ma non sono mai sicuro che sia ordinata su NTesto
Private Sub Comando1_Click()
Dim PT As DAO.Database
Dim T As DAO.Recordset
Dim I As Integer
Set PT = CurrentDb
Set T = PT.OpenRecordset("Titoli", dbOpenDynaset, "NTesto ASC") 'qui vorrei ordinare la tabella su NTesto...me lo sono inventato...non ci ho capito nulla
T.MoveFirst
Do Until T.EOF
I = I + 1
T!NTesto.Edit
T!NTesto = Format(I, "000")
T!NTesto.Update
T.MoveNext
Loop
I = 0
T.Close
PT.Close
End Sub
quel terzo argomento su OpenRecordset me lo sono totalmente inventato: boh!
Dove sbaglio? Come devo ottimizzare?