|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2005
Città: Ancona
Messaggi: 177
|
[SQL & ACCESS]Pulizia Contatore
Salve a tutti,
sto sviluppando una piccola utility ad uso personale per la gestione del mio lavoro e mi servirebbe una manina, se possibile, su un problema di sovradimensionamento del db; il problema è che per la natura del programma ci sono molti record che vengono cancellati mentre ovviamente sempre di nuovi vengono aggiunti, ora, è possibile fare in modo di ripulire tutti quegli id ( campo contatore ) che non sono più utilizzati per risparmiare sulle dimensioni del file ? Il programma è sviluppato in VB6, il database ( come da oggetto ) è in Access e il collegamento tra i due avviene tramite SQL. Grazie a tutti, ( e speriamo si possa fare ). |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Esempio: questa mia semplice Function, da richiamare ad ogni nuova Insert fornisce il più basso tra gli id disponibili : Codice:
Public Function NUOVO_ID() As Long
Dim CN As ADODB.Connection
Set CN = CurrentProject.AccessConnection
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset
With RS
Set .ActiveConnection = CN
.Source = "SELECT id FROM Tabella1"
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.Open
End With
MsgBox RS.RecordCount
Dim valPre As Long
Dim val As Long
RS.MoveFirst
Do While Not RS.EOF
valPre = RS(0).Value
RS.MoveNext
On Error GoTo EX
val = RS(0).Value
If (val - valPre) > 1 Then
NUOVO_ID = valPre + 1
Exit Do
End If
Loop
EX:
RS.Close
CN.Close
Set RS = Nothing
Set CN = Nothing
End Function
Prova... |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2005
Città: Ancona
Messaggi: 177
|
Soluzione ottimale grazie per la dritta!
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:30.




















