VBA ACCESS - Campo Auto Numérico - Creating an AutoNumber field from code - VBA, DAO, DDL e SQL







Criar campos de autonumeração em tabelas usando VBA, DAO, DDL e SQL



Creating an AutoNumber field from code

Append a record using vba where there is an auto number field
Auto Increment
Auto-number text field
AutoNumber and INSERT INTO VBA Issue
Autonumber field
Autonumber value of last inserted row
Autonumber vba
Autonumeração complexa
Create an Autonumber Field with VBA For a MS Access
Creating an AutoNumber field from code
Creation of an autonumber with VBA access
Microsoft Access Autonumber Increments
Setting the value of an Autonumber field
VBA - How to create user-defined auto-increment data type


Existem 2 caminhos para acrescentarmos um campo cujo o conteúdo seja autonumerado:

Um dos modos é fazê-lo através do comando SQL DDL Create Table, e o outro é o modo como abordaremos neste artigo usando VBA e DAO para adicionar um campo em uma tabela pré-existente.

Antes de continuar, um pequeno parênteses, deixe seus comentários para este post. 

A função abaixo, desenvolvida por Dev Ashish, serve para efetuar tal ação em qualquer tabela na qual tenhamos a necessidade de inserirmos um campo numerado.

Function fCreateAutoNumberField (ByVal strTableName As String, ByVal strFieldName As String) As Boolean
    Dim db As DAO.Database
    Dim fld As DAO.Field
    Dim tdf As DAO.TableDef

    On Error GoTo ErrHandler

    Set db = Application.CurrentDb
    Set tdf = db.TableDefs(strTableName)
    
    '   Primeiro criamos um campo com o tipo = Long Integer
    Set fld = tdf.CreateField(strFieldName, dbLong)
    
    With fld
        '   Adicionamos o dbAutoIncrField para efetuar chamadas ao Jet que sozinho efetuará a autonumeração do campo
        Let .Attributes = .Attributes Or dbAutoIncrField
    End With
    
    With tdf.Fields
        .Append fld
        .Refresh
    End With
    
    Let fCreateAutoNumberField = True
    
ExitHere:
    Set fld = Nothing
    Set tdf = Nothing
    Set db = Nothing
    Exit Function
ErrHandler:
    Let fCreateAutoNumberField = False
    
    With Err
        MsgBox "Erro: " & .Number & vbCrLf & .Description, _
            vbOKOnly Or vbCritical, "CreateAutonumberField"
    End With

    Resume ExitHere
End Function


Ei, Ok! tudo bom, tudo legal, mas e quanto a primeira opção? Não chorem, coloquei-a mais abaixo:

Para criar uma tabela com um campo com AutoNumeração e PrimaryKey, além de um campo chamado MyText com o tipo TEXTO e comprimento de 10, insira a instrução a seguir na janela de consulta de definição de dados e, em seguida, executar a consulta.

CREATE TABLE Table1 _
(Id COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, _
MyText TEXT (10))



Tags: VMS, Microsoft, VBA, Office, autonumber, increment, Dev Ashish, counter

Inspiration: 

Nenhum comentário:

Postar um comentário

diHITT - Notícias