RESETAR NUMERA?ÃO AUTOM?TICA [ô]DAO[ô]
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
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
Porque [Ô]é preciso[Ô]?
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...
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...
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...
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