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

VB 6 et antérieur Discussion :

Spécifier des propriétés de champs avec ADO


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut Spécifier des propriétés de champs avec ADO
    Salut,

    Voilà, j'ai créé une table avec ADO en utilisant le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim catDB As ADOX.Catalog
    Dim tblNew As ADOX.Table
     
      Set catDB = New ADOX.Catalog
     
      'Open the catalog.
      catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strDBPath
    strDBPath étant l'emplacement d'une base au format Access.

    Puis, j'ajoute des colonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          .Columns.Append strFieldName, lngDefType, lngSize
    Où strFieldName est le nom du champ,
    lngDefType son type,
    lngSize sa taille.

    Jusque là, tout va bien.

    Puis, j'ajoute la nouvelle table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catDB.Tables.Append tblNew
    Là ou j'ai un problème, c'est pour définir les propriétés du champ "toto". Par exemple, je veux lui spécifier qu'il peut accepter des valeurs nulls (par défaut à non).

    J'ai essayé plusieurs trucs du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          .Columns(intNumField).Attributes("adFldIsNullable") = adColNullable
    où intnumfield est le nom du champ à modifier.

    Mais ça ne marche pas puisqu'à ce moment là, il n'y a aucun attributs (count = 0) !

    Je voudrais spécifier tout ça au moment de sa création.

    Comment fiare ?

    Merci par avance.

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    il te faut définir les Attributs avant d'ajouter la table au catalogue :

    un petit exemple :
    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
     
    'Creer une base par ADOX
    '-- Cocher la référence :Microsoft ADO Ext 2.x for dll
    Dim NewBase As ADOX.Catalog
    Dim NewTable As ADOX.Table
     
        Set NewBase = New ADOX.Catalog
        NewBase.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                       "Data Source=c:\base.mdb;" & _
                       "Jet OLEDB:Engine Type=5;"
     
        Set NewTable = New ADOX.Table
        With NewTable
            .Name = "Table1"
            .Columns.Append "Champ1", adInteger ' crée un champ Integer
            .Columns("Champ1").Attributes = adColNullable ' autorise null
            .Columns.Append "Champ2", adWChar, 50 ' crée un champ texte, longueur 50
        End With
        NewBase.Tables.Append NewTable
        Set NewTable = Nothing
        Set NewBase = Nothing
    End Sub

  3. #3
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Ok, j'ai compris. C'est résolu.

    Merci.

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

Discussions similaires

  1. [WD14] Changer des propriétés de champs par programmation
    Par jimmypage dans le forum WinDev
    Réponses: 2
    Dernier message: 14/10/2011, 10h57
  2. Réponses: 4
    Dernier message: 11/09/2008, 16h03
  3. Générer des noms de champs avec des tableaux
    Par MV1908 dans le forum Zend_Form
    Réponses: 2
    Dernier message: 26/05/2008, 16h16
  4. Pb export des noms de champ avec # ds EXCEL
    Par 31Steph dans le forum Access
    Réponses: 1
    Dernier message: 29/06/2006, 08h13
  5. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/09/2002, 11h08

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