DUVIDA EM LOOP AUTO NUMERACAO
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,
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,
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?
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
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