IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Fields.Attributes = dbAutoIncrField [AC-2013]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    EUC
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : EUC

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut Fields.Attributes = dbAutoIncrField
    Hi,
    I send yesterday this mail, but I don't think it passed.


    A VBA Access code was perfectly working in Office 2003, but, now I change to Office 2013…
    I search, but nothing I found on the net response exactly to my problem. Can you help me?
    Here us the code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Create_MyTable:
        Set dbs = appAccess.CurrentDb
        sTableName = "MyTable"
        Set tdf = dbs.CreateTableDef(sTableName)
         With tdf
            .Fields.Append .CreateField("Id", dbLong)
            .Fields.Append .CreateField("IdOther", dbLong)
            Set idx = .CreateIndex("Id")
            idx.Fields.Append idx.CreateField("Id")
            idx.Primary = True
            .Indexes.Append idx
        End With
        Set fld = tdf.Fields("id")
        fld.Attributes = dbAutoIncrField                               *Here is the problem
        dbs.TableDefs.Append tdf
    End Sub
    Thanks,
    Alain.

  2. #2
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut Citation INUTILE !
    You can see this code (in french) : http://warin.developpez.com/tutoriel...erieurs/#LIV-A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    Sub CreerTable()
    Dim oDb As DAO.Database
    Dim oNouvelleTable As DAO.TableDef
    Dim oChamp As DAO.Field
    Dim oIndex As DAO.Index
    'Instancie la base de données
        Set oDb = CurrentDb
    'Crée la nouvelle table
        Set oNouvelleTable = oDb.CreateTableDef("Clients")
    'Crée le champ IDClient
        Set oChamp = oNouvelleTable.CreateField("IDClient", dbLong)
    'Définit le champ en numero_auto
        oChamp.Attributes = dbAutoIncrField
    'Ajoute le champ à la table
        oNouvelleTable.Fields.Append oChamp
    'Crée le champ nomClient et l'ajoute
        oNouvelleTable.Fields.Append oNouvelleTable.CreateField("NomClient", _
            dbText, 15)
    'Crée le champ PrenomClient et l'ajoute
        oNouvelleTable.Fields.Append oNouvelleTable.CreateField("PrenomClient", _
            dbText, 25)
    'définit la clé primaire sur l'IDClient
        Set oIndex = oNouvelleTable.CreateIndex("PK_IDClient")
        oIndex.Primary = True
        oIndex.Fields.Append oIndex.CreateField("IdClient")
    'Ajoute l'index à la table
        oNouvelleTable.Indexes.Append oIndex
    'Ajoute la table à la base de données
        oDb.TableDefs.Append oNouvelleTable
     
    'Libère les variables
    oDb.Close
    Set oIndex = Nothing
    Set oChamp = Nothing
    Set oNouvelleTable = Nothing
    Set oDb = Nothing
    End Sub

  3. #3
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Baa01,

    The solution is above :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub Create_MyTable()
     
    Dim Matable As TableDef
    Dim tdfNew As TableDef
    Dim dft As TableDef
    Dim idx As Index
    Set dbs = Application.CurrentDb
    '
        Set tdf = dbs.CreateTableDef("MyTable")
        '
        With tdf
            .Fields.Append .CreateField("Id", dbLong)
            .Fields![Id].Attributes = dbAutoIncrField
            dbs.TableDefs.Append tdf
        End With
        '
        Set dft = dbs.TableDefs!("MyTable")
        '
        Set idx = dft.CreateIndex("PrimaryKey")
        Set Lien = idx.CreateField("Id", dbLong)
        idx.Primary = True
        idx.Unique = True
        '
        idx.Fields.Append Lien
        '
        dft.Indexes.Append idx
        dft.Indexes.Refresh
    End Sub

    however , you're on a French website ! Please use french

    Best regards

    Jimbolion

  4. #4
    Membre à l'essai
    Homme Profil pro
    EUC
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : EUC

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut Un grand merci
    Cela fonctionne maintenant, j'ai encore un "petit" problème avec un lien que je veux créer à la place de la table, mais je cherche d'abord. Désolé du retard de la réaction mais plusieurs évènement de ma vie privée ne m'ont pas permis de tester et de réagir rapidement. Pour la langue, désolé, mais c'est une (mauvaise?) habitude. Merci encore.

  5. #5
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Baa01 bonsoir,

    Cela fonctionne maintenant, j'ai encore un "petit" problème avec un lien que je veux créer à la place de la table, mais je cherche d'abord.


    si malgré tes recherches tu n'y arrives pas, nous serons toujours là pour le coup de pouce

    Cldt

    jimbolion

  6. #6
    Membre à l'essai
    Homme Profil pro
    EUC
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : EUC

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut Lien avec une table à la place d'une table incluse dans la DB
    Bonsoir,
    Donc depuis mon passage en 2013, j'ai quelques problèmes. Celui de AutoNumber est résolu. Merci !!!
    Mais cette table créée avec DAO ne réagit pas comme les autres.
    Une fois créées, je veux transférer la structure de ces tables dans une autre DB, pour ensuite détruire cette DB temporaire une fois les requêtes effectuées.
    J'utilise pour cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sTableCollection= la liste des tables à transférer
    sTmpFile= La DB temporaire
     
        For Each v In Split(sTableCollection)
            DoCmd.TransferDatabase acLink, "Microsoft Access", sTmpFile, acTable, v, v
        Next
    Seule la table créée via DAO bloque ...

    Merci ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] custom form field bind avec attribut de l'entity
    Par Echyzen dans le forum Symfony
    Réponses: 7
    Dernier message: 07/08/2014, 22h34
  2. Réponses: 1
    Dernier message: 24/12/2012, 16h39
  3. Accès aux attributs d'un nested field
    Par chuuby dans le forum jQuery
    Réponses: 22
    Dernier message: 07/05/2012, 12h28
  4. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22
  5. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo