RESETAR NUMERA?ÃO AUTOM?TICA [ô]DAO[ô]

JAKSONLZ 15/05/2017 19:41:15
#473963
Pessoal estou tendo dificuldades em alterar um código que usa conexão [ô]ADO[ô], gostaria de converter para [ô]DAO[ô], alguém sabe me dizer se é possível?
Este código Limpa uma Tabela e Reseta a AutoNumeração Automática, eu sei que não é muito recomendado fazer isso, mais pra mim é preciso...se alguém puder ajudar...

Segue código [ô]ADO[ô]:

Referência: http://allenbrowne.com/func-adox.html#DeleteAllAndResetAutoNum

 Public Function DeleteAllAndResetAutoNum(cnn As Object, name_Bank As String, strTable As String) As Boolean
[ô]Purpose: Delete all records from the table, and reset the AutoNumber using ADOX.
[ô] Also illustrates how to find the AutoNumber field.
[ô]Argument: Name of the table to reset.
[ô]Return: True if sucessful.

[ô]Refer: http://allenbrowne.com/func-adox.html#DeleteAllAndResetAutoNum

Dim cat As New ADOX.Catalog
Dim tbl As ADOX.Table
Dim col As ADOX.Column
Dim strSQL As String

[ô]Delete all records.
strSQL = [Ô]DELETE FROM [[Ô] & strTable & [Ô]];[Ô]
cnn.Execute strSQL

[ô]Find and reset the AutoNum field.
cat.ActiveConnection = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;[Ô] & [Ô]Data Source=[Ô] & App.Path & [Ô]\[Ô] & name_Bank & [Ô].mdb;[Ô] & [Ô]Jet OLEDB:Database Password=[Ô] & MyDbPassword & [Ô];[Ô]
Set tbl = cat.Tables(strTable)

For Each col In tbl.Columns

If col.Properties([Ô]Autoincrement[Ô]) Then
col.Properties([Ô]Seed[Ô]) = 1
DeleteAllAndResetAutoNum = True
End If

Next

End Function
KERPLUNK 15/05/2017 20:36:23
#473964
Porque [Ô]é preciso[Ô]?
JAKSONLZ 15/05/2017 20:46:58
#473967
Citação:

:
Porque [Ô]é preciso[Ô]?



porque tipo assim minhas Tabelas serão atualizadas com varios registros diariamente, mais [ô]talvez[ô], nem todas, vai chegar num determinado tempo que terei que zera-lá, então eu estava pensando se era possível zerar, só por questão do Indice mesmo, pra não ficar muito grande...
DS2T 15/05/2017 21:22:11
#473969
Resposta escolhida
Após apagar os registros da tabela, dá um Drop no campo de auto-incremento e recria ele.
Mas isso realmente é necessário?
Um campo de autonumeração no Access possui 32 bits para armazenamento. Isso chega na casa dos Bilhões.

Vamos supor que você armazene 10 mil registros por dia: Você precisaria de aproximadamente 214748 dias para estourar o limite, isso dá em média, 7158 meses... que representa mais de 596 anos. Olha que doido...
JAKSONLZ 15/05/2017 21:52:46
#473970
Citação:

:
Após apagar os registros da tabela, dá um Drop no campo de auto-incremento e recria ele.



Encontrei algo aqui:

https://access-programmers.co.uk/forums/showthread.php?t=67389

Citação:

:
Um campo de autonumeração no Access possui 32 bits para armazenamento. Isso chega na casa dos Bilhões.

Vamos supor que você armazene 10 mil registros por dia: Você precisaria de aproximadamente 214748 dias para estourar o limite, isso dá em média, 7158 meses... que representa mais de 596 anos. Olha que doido...



Gostei desta parte, acho que vou deixar quieto...pelo menos por enquanto....kkkkk
Tópico encerrado , respostas não são mais permitidas