CRIAR TABELA COM CAMPO AUTONUMERACAO
e ae galera, tudo blz..
tow querendo criar uma tabela com campo autonumeracao,
já vi uns exmeplos aqui do site para criar banco de dados e umas tabelas, mas não vi nenhum que mostrasse como criar com o campo autonumeração...
meu banco de dados é access...
alguem tem um exemplo ae??
valew...
tow querendo criar uma tabela com campo autonumeracao,
já vi uns exmeplos aqui do site para criar banco de dados e umas tabelas, mas não vi nenhum que mostrasse como criar com o campo autonumeração...
meu banco de dados é access...
alguem tem um exemplo ae??
valew...
Seria assim, com o ADOX:
Eu uso esta function para gerar o BD com autonumeração:
Para usar esta função, declarar as variáveis:
Para mais informações Click no link: Criando Banco Access com o Adox
.Append [Ô]Codigo[Ô], adInteger
[ô]Tornar o campo Codigo Autonumeração
.Item([Ô]Codigo[Ô]).Properties([Ô]Autoincrement[Ô]) = True
Eu uso esta function para gerar o BD com autonumeração:
Private Function CriarBD() As Boolean
[ô]Criar uma nova instância das Classes adodob e adodx
Set Con = New ADODB.Connection
Set Cat = New ADOX.Catalog
Set Tbl = New ADOX.Table
[ô]Criar uma instância do FSO
Set FSO = New FileSystemObject
[ô]Definir o caminho e o nome do MDB
Caminho = App.Path & [Ô]\Dados.mdb[Ô]
If FSO.FileExists(Caminho) Then
CriarBD = False
[ô]Se o arquivo existir, vc pode renomeá-lo com o Fso, se quiser
[ô]FSO.CopyFile Caminho, App.Path & [Ô]\ArquivoMdb2.mdb[Ô]
[ô]FSO.DeleteFile (Caminho)
[ô]Neste Caso, removemos a mensagem e o exit sub
Exit Function
Else
[ô]Criar o Bd
CriarBD = True
Cat.Create [Ô]Provider=Microsoft.Jet.OleDB.4.0;Data Source=[Ô] & Caminho [ô]C:\Teste.mdb[Ô]
End If
[ô]Abrir o Bd
Con.Open [Ô]Provider=Microsoft.Jet.OleDB.4.0;Data Source=[Ô] & Caminho
[ô]Definir a Conexão ativa
Cat.ActiveConnection = Con
[ô]Criar a Tabela
Tbl.Name = [Ô]MyTabela[Ô]
Set Tbl.ParentCatalog = Cat
[ô]Criar os Campos
With Tbl.Columns
.Append [Ô]Codigo[Ô], adInteger
[ô]Tornar o campo Codigo Autonumeração
.Item([Ô]Codigo[Ô]).Properties([Ô]Autoincrement[Ô]) = True
.Append [Ô]Id[Ô], adInteger, 2 [ô]Campo Tipo Integer, Tamanho 2
.Append [Ô]Ano[Ô], adVarWChar, 4 [ô]Tipo Text Tamanho 4
.Append [Ô]DataI[Ô], adDate, 10 [ô] Tipo Data tamanho 10
.Append [Ô]DataF[Ô], adDate, 10
[ô]Observe que existe tipos de campo que não funciona com tabelas .mdb
End With
[ô]Para Finalizar
Cat.Tables.Append Tbl
[ô]Também é importante [Ô]destruir[Ô] as variáveis dos objetos
Con.Close
Set Con = Nothing
Set Cat = Nothing
Set Tbl = Nothing
[ô]Aqui vamos informar que a operação foi concluÃda
MsgBox [Ô]Arquivo .mdb criado no diretório [Ô] & Chr(13) & Caminho
End Function
Para usar esta função, declarar as variáveis:
Option Explicit
Dim FSO As FileSystemObject
Dim Con As ADODB.Connection
Dim Rs As Recordset
Dim Cat As ADOX.Catalog
Dim Tbl As ADOX.Table
Dim Col As ADOX.Column
Para mais informações Click no link: Criando Banco Access com o Adox
Se for bd Access, ao criar suas tabelas, você pode colocar o primeiro campo como AutoNumeração, a cada registro que é adcionado ele criar um código automático. Caso queira fazer via código ao gravar um registro pode ser dessa maneira.
Private Sub Gerar_Codigo()
Dim NovoId As String
With rs
If rs.BOF = True And rs.EOF = True Then
NovoId = 1
Else
rs.MoveLast
Novod = rs!Codigo + 1
End If
txtCódigo.Text = Format(NovoId, [Ô]0000[Ô])
End With
End Sub
Abraços.
Private Sub Gerar_Codigo()
Dim NovoId As String
With rs
If rs.BOF = True And rs.EOF = True Then
NovoId = 1
Else
rs.MoveLast
Novod = rs!Codigo + 1
End If
txtCódigo.Text = Format(NovoId, [Ô]0000[Ô])
End With
End Sub
Abraços.
Conn.Execute [Ô]CREATE TABLE nfe_registradas( Cdgi autoincrement,[Ô] _
& [Ô]pathN varchar(255),[Ô] _
& [Ô]num_nota varchar(30),[Ô] _
& [Ô]cnpjD varchar (50),[Ô] _
& [Ô]destinatario varchar(100), [Ô] _
& [Ô]Data date)[Ô]
Conn.Execute [Ô]ALTER TABLE nfe_registradas ADD PRIMARY KEY (Cdgi)[Ô]
& [Ô]pathN varchar(255),[Ô] _
& [Ô]num_nota varchar(30),[Ô] _
& [Ô]cnpjD varchar (50),[Ô] _
& [Ô]destinatario varchar(100), [Ô] _
& [Ô]Data date)[Ô]
Conn.Execute [Ô]ALTER TABLE nfe_registradas ADD PRIMARY KEY (Cdgi)[Ô]
ROBIU,
cara, eu ja tinha visto esse artigo ae do maccorati, tentei fazer do jeito que vc falow, mas ta dando esse erro:
[Ô]O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado[Ô]
o meu código:
mas continua dando o mesmo erro....
alterei algumas coisas pra do jeito que vc falou, ficou assim:
cara, eu ja tinha visto esse artigo ae do maccorati, tentei fazer do jeito que vc falow, mas ta dando esse erro:
[Ô]O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado[Ô]
o meu código:
With tbl
.Name = [Ô]LoginUsuarios[Ô]
[ô]cria campos e os anexa a coleção columns
With .Columns
.Append [Ô]Cod[Ô], adInteger
.Item([Ô]Cod[Ô]).Properties([Ô]Autoincrement[Ô]).Value = True
.Append [Ô]CodUsuario[Ô], adInteger
.Append [Ô]Usuario[Ô], adVarWChar
.Append [Ô]Data[Ô], adDate
.Append [Ô]HoraEntrada[Ô], adDate
.Append [Ô]HoraSaida[Ô], adDate
End With
End With
mas continua dando o mesmo erro....
alterei algumas coisas pra do jeito que vc falou, ficou assim:
tbl.Name = [Ô]LoginUsuarios[Ô]
Set tbl.ParentCatalog = cat
[ô]Criar os Campos
With tbl.Columns
.Append [Ô]Cod[Ô], adInteger
.Item([Ô]Cod[Ô]).Properties([Ô]Autoincrement[Ô]).Value = True
.Append [Ô]CodUsuario[Ô], adInteger
.Append [Ô]Usuario[Ô], adVarWChar, 55
.Append [Ô]Data[Ô], adDate
.Append [Ô]HoraEntrada[Ô], adDate
.Append [Ô]HoraSaida[Ô], adDate
End With
[ô]Para Finalizar
cat.Tables.Append tbl
[ô]Também é importante [Ô]destruir[Ô] as variáveis dos objetos
Set cat = Nothing
Set tbl = Nothing
Manda seu projeto ou posta o código completo, pois o erro não ocorre nesta parte que você informou. robiu@hotmail.com
e ae galera, valew pelas respostas.
consegui resolver o problema. era so na hora de abrir o banco.
eu estava abrindo assim:
Provider=Microsoft.Jet.OleDB.4.0;Data Source=[Ô] & Caminho
eu mudei e não sei porque deu certo, ficou assim agora:
Provider=Microsoft.Jet.OleDB.4.0;DataSource=[Ô] & Caminho & [Ô];[Ô]
isso mesmo, só um ponto e vÃrgula no final.....
são coisas de VB.....
consegui resolver o problema. era so na hora de abrir o banco.
eu estava abrindo assim:
Provider=Microsoft.Jet.OleDB.4.0;Data Source=[Ô] & Caminho
eu mudei e não sei porque deu certo, ficou assim agora:
Provider=Microsoft.Jet.OleDB.4.0;DataSource=[Ô] & Caminho & [Ô];[Ô]
isso mesmo, só um ponto e vÃrgula no final.....
são coisas de VB.....
Tópico encerrado , respostas não são mais permitidas