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 :

Définir le type de champs d'une base mdb


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 Définir le type de champs d'une base mdb
    Salut,

    J'arrive avec ADO à créer une base de données mdb pour Access... sauf que je n'arrive à définir que des champs de type texte.

    Comment faire pour spécifier le type de champs sous VB6 ?

    J'ai essayé ça mais j'ai le code erreur : type non valide.

    (aDatabase est un tableau contenant la structure de la table à créer)

    J'ai pas trouvé grand chose sous MSDN.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
     Set tblNew = New ADOX.Table
     
      'Create a new Table object.
      With tblNew
        .Name = strTableName
     
        'Ecriture de la structure de la table
        For intI = 0 To 9
     
          If aDatabase(intI).strNAME = "" Then
            Exit For
          End If
     
          'Définition de la table
          strFieldName = aDatabase(intI).strNAME
     
          'Convertit les types de données en données Access
          Select Case aDatabase(intI).strType
     
            Case "Texte"
              lngDefType = dbChar
     
              'Longueur du champ
              lngSize = CDbl(aDatabase(intI).strLen)
     
            Case "Numerique Entier"
              lngDefType = adInteger
     
            Case "Numerique Decimal"
              lngDefType = adDouble
     
            Case "Date", "Heure"
              lngDefType = adDBDate
     
            Case "Heure"
              lngDefType = adDBTime
     
            Case "Oui/Non"
              lngDefType = dbBoolean
          End Select
     
          ' Créé le champ
          .Columns.Append strFieldName, lngDefType, lngSize
        Next
      End With
     
      ' Add the new Table to the Tables collection of the database.
      catDB.Tables.Append tblNew
    Merci par avance.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    as tu mis en haut de ton projet :

    ce qui déjà te permettra s'il y as lieu de voir si tu as des erreurs sur les noms de tes variables...

  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
    Merci de ta réponse.

    Y'avait pas cette commande, que j'ai ajouté.

    Le programme s'exécute normalement mais j'ai toujours la même erreur : Type non valide !

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    tu as essayé de "compiler le programme"..., je t'ai demandé de rajouter cette options .. car les noms de tes constantes de types .. me semblent "bizarre.."



    essai de vérifier la valeur de lngDefType ... au moment de la création des champs, .Columns.Append .. ... ( par un message box ou en débug..).


    [edit]

    tiens à lire page 16 .. tu as la liste des types...:

    ftp://ftp2.developpez.be/developps/vb/VB-ADOX.pdf



Discussions similaires

  1. [AC-2013] Modifier le type d'un champ dans une base distante
    Par MissTi dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/09/2014, 16h11
  2. Définir le futur type de champ dans une requête création de table
    Par Fredo67 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/02/2007, 18h19
  3. Connaitre le type d'un champ d'une base
    Par Sytchev3 dans le forum Access
    Réponses: 3
    Dernier message: 08/06/2006, 00h04
  4. ASp - recherche d'un champs dans une base.
    Par kmayoyota dans le forum ASP
    Réponses: 5
    Dernier message: 03/12/2004, 15h03
  5. [MFC] Champs d'une base de donnée
    Par MadChris dans le forum MFC
    Réponses: 5
    Dernier message: 24/03/2004, 16h21

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