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

Access Discussion :

Création de table par code


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Par défaut Création de table par code
    Bonjour à tous,

    Je voudrais créer une table sans passer par CREATE TABLE en sql.
    J'ai trouvé un code mais il ne créé rien et je suis un peu juste sur ce type de langage :
    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
    Sub CreateRS()
     
        Dim rs As New ADODB.Recordset
     
        rs.Fields.Append "Field1", adChar, 10
        rs.Fields.Append "Field2", adInteger
     
        rs.Open
        rs.AddNew
        rs("Field1") = "any string"
        rs("Field2") = 9
     
        Do While Not rs.EOF
            Debug.Print rs("Field1") & " " & rs("Field2")
            rs.MoveNext
        Loop
     
        rs.Close
        Set rs = Nothing
     
    End Sub
    Pouvez-vous me dire ce qui manque pour créer la table ?

    Je ne veux pas passer par CREATE TABLE parce-que je dois créer un champ de type oui/non et de type text. En SQL, seul le type text est possible.

    Quel est le type à utiliser dans le code ci-dessus pour oui/non.

    Merci,

    LeRico

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour,

    Je ne veux pas passer par CREATE TABLE parce-que je dois créer un champ de type oui/non et de type text. En SQL, seul le type text est possible.
    Je suis très surpris par cette affirmation. A ma connaissance, on peut très bien définir le type de chaque champ dans une instruction CREATE TABLE.

    Si j'ai tort, promis je t'aide à faire autrement.

    pgz

  3. #3
    Membre confirmé Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Par défaut
    Effectivement, je suis allé un peu vite. Les types sont multiples.
    Par contre, je ne le connais pas. Je vais regarder les tutoriels en SQL.

    En faîte, je cherche le code le plus rapide pour créer une table.
    Je fais peut être une erreur mais je crois qu'en DAO, cela va plus vite.

    LeRico

  4. #4
    Membre expérimenté Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Par défaut
    Bonjour,

    Voici un exemple de code pour créer une table avec DAO (ne pas oublier d'ajouter la référence) :

    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 DAOCreateTable()
     
    Dim db As DAO.Database
    Dim tbl As DAO.TableDef
     
    ' Ouvre la base de données
    Set db = CurrentDb
     
    ' Crée une nouvelle table Contacts.
    Set tbl = db.CreateTableDef("Contacts")
     
    With tbl
    ' Crée les champs et les ajoute à la table.
    ' Cela doit être fait avant d'ajouter la table à la collection
    ' TableDefs de la base de données.
    .Fields.Append .CreateField("NomContact", dbText)
    .Fields.Append .CreateField("TitreContact", dbText)
    .Fields.Append .CreateField("Téléphone", dbText)
    .Fields.Append .CreateField("Commentaires", dbMemo)
    .Fields("Commentaires").Required = False
    End With
     
    ' Ajoute la nouvelle table à la base de données.
    db.TableDefs.Append tbl
     
    db.Close
     
    End Sub
    Pour un champ de type OUI/NON, mettre dbBoolean.

    Bon courage

  5. #5
    Membre confirmé Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Par défaut
    Merci pour ta réponse et ton code. Je vais m'en inspirer.

    Pour info, pour un type oui/non, concernant la fonction SQL CREATE TABLE, il faut mettre BIT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function tab1()
     
    DoCmd.RunSQL "CREATE TABLE RS (Coche BIT, Nom TEXT)"
     
    End Function
    La fonction marche mais ce qui est étonnant, c'est que le champ, malgrés le type oui/non, n'apparaît pas avec le petit carré à cocher mais seulement avec -1 et 0 ?

    LeRico

  6. #6
    Membre confirmé Avatar de lerico
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 115
    Par défaut
    Le code de ActionAccess fonctionne parfaitement.

    Le type dbBoolean réagit de la même manière que le type BIT pour le SQL.

    Cela me va.

    Merci à tous.

    LeRico

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

Discussions similaires

  1. [MySQL] Création de tables "orientées code" ou avec l'agèbre relationnelle ?
    Par Neal Morse dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/03/2008, 20h17
  2. [SQL 2005]création d'instance par code sql
    Par m-mas dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/10/2007, 22h55
  3. [Table] Création de table par VBA-DAO
    Par Invité dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/05/2007, 11h07
  4. renommage d'une table par code
    Par silatchom dans le forum Access
    Réponses: 3
    Dernier message: 30/06/2006, 18h04
  5. Réponses: 2
    Dernier message: 10/02/2006, 15h46

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