DUVIDA EM LOOP AUTO NUMERACAO

ARES 28/12/2010 17:47:38
#360560
Amigos, boa tarde!

Estou usando uma rotina para buscar dados em .txt para abastecer uma tabela .mbd, entretanto, estou com dificuldades de criar a chave primária, tendo em vista que,
os é necessário um campo com auto-numeração.

segue o código:

Private Sub importa_vendas()
Dim F As Long, sLine As String, A(0 To 9) As String
Dim db As Database, rs As Recordset
Dim i As Integer
On Error GoTo trata_erro

i = 1
Set db = OpenDatabase(App.Path & [Ô]\BC001.mdb[Ô])

Me.text1 = [Ô]c:\ODIM\vendas.txt[Ô]
Me.text2 = [Ô]c:\ODIM\bc001.mdb[Ô]


F = FreeFile
Open text1.Text For Input As F
Set db = DBEngine(0).OpenDatabase(text2.Text)

On Error Resume Next

db.Execute [Ô]DROP TABLE vendas[Ô]

db.Execute [Ô]CREATE TABLE vendas ([linha] TEXT(255), [codigo_produto] TEXT(255), [descricao] TEXT(255), [Ô] _
& [Ô]embalangem LONG, quantidade LONG, valor_total CURRENCY, [Ô] _
& [Ô]cliente LONG,data datetime, vendedor LONG, codigo long)[Ô]

Set rs = db.OpenRecordset([Ô]vendas[Ô], dbOpenTable)

Do While Not EOF(F)
Line Input #F, sLine
ParseToArray sLine, A()
rs.AddNew
rs(0) = A(0)
rs(1) = A(1)
rs(2) = A(2)
rs(3) = Val(A(3))
rs(4) = Val(A(4))
rs(5) = Val(A(5))
rs(6) = A(6)
rs(7) = CDate(A(7))
rs(8) = Val(A(8))
For i = 0 To F
rs(9) = i + F
rs.Update
Next i
Loop

MsgBox [Ô]Arquivo texto importado com sucesso !! [Ô]

rs.Close
db.Close

Close #F
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu o erro ==> [Ô] & Err.Description

End Sub

Private Sub chave_vendas()

Dim dbDatabase As Database
Dim dbOpened As Database
Dim DatabasePath As String
Dim PrimaryKey As New Index

[ô] abre o banco de dados
DatabasePath = [Ô]c:\odim\bc001.mdb[Ô] [ô] aqui voce informa o caminho e o nome do seu banco de dados
Set dbOpened = OpenDatabase(DatabasePath, False, False)

Set dbDatabase = dbOpened
Set dbOpened = Nothing

[ô] Inclui a chave primária

BeginTrans

PrimaryKey.Name = [Ô]CodigoID[Ô]
PrimaryKey.Fields = [Ô]Codigo[Ô]

PrimaryKey.Unique = True
PrimaryKey.Primary = True
dbDatabase.TableDefs([Ô]vendas[Ô]).Indexes.Append PrimaryKey

DoEvents
CommitTrans

dbDatabase.Close
Set dbDatabase = Nothing

End Sub

no rs(9) que contera o campo com a auto-numeracao para a chave primária.

sabem me informar como coloco os dados da forma que preciso?

desde já agradeço,
ADRIANOM 28/12/2010 18:01:50
#360561
Resposta escolhida
Pq vc não cria uma tabela para códigos, a preencha com alguns 000000 e somente some 1 código ao término de cada cadastro?
ARES 29/12/2010 13:31:50
#360631
Obrigado pela resposta,

Bom, optei por não excluir mais a tabela, sendo assim vou somente adicionar novas informações e
depois via código excluir o .txt

Tópico encerrado , respostas não são mais permitidas