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

Macros et VBA Excel Discussion :

Limites Création table tempo Access par ADOX via Excel VBA.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 49
    Par défaut Limites Création table tempo Access par ADOX via Excel VBA.
    Bonsoir,

    J'ai voulu créer dynamiquement une table tempo Access 2003 via ADOX sous Excel VBA.

    Visiblement, la chaine pour la méthode Append de Tables est trop longue (ou la limite de la structure est atteinte ?!?)

    Auriez-vous une idée dans ce sens ?

    Grosso modo, ce serait une table d'une 30aine de colonnes, mix entre String, Date et Mémo. Je me suis fait jeter par le moteur Jet.

    Merci d'avance pour vos réponses.

    Bota.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pour la création de table ou autres dans une base Access, je te conseille plutôt d'utiliser DAO.

    Pour cela un super article : http://warin.developpez.com/access/dao/

    Si tu tiens à ADOX un autre article : ftp://ftp2.developpez.be/developps/vb/VB-ADOX.pdf

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut

    En ADO, tu peux également utiliser une chaine SQL pour créer ta table

    Exemple: Création d'une table tSuggestions avec un objet ADODB.Connection ConDonnees valide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    sql = "create table tSuggestions (" & _
            "SugID varchar(12) primary key," & _
            "SugCon varchar(12)," & _
            "SugTit varchar(255), " & _
            "SugDat datetime, " & _
            "SugMes text" & _
            ")"
        ConDonnees.Execute sql
    Tout ou presque sur le SQL est disponible sur www.developpez.com
    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    je viens de faire un essai avec 30 champs (via ADOX) et je n'ai pas rencontré de soucis:


    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Dim MaTableId As Object
    Dim MaTableIndex As Object
    Dim ADODOX As Object
    Dim ADODOXCatalog As Object
    Dim MaTableName As String, NomBase As String
     
    'Nom de la table à créer
    MaTableName = "MaTableTest"
    'Nom de la base
    NomBase = "C:\Documents and Settings\mimi\dossier\DataBase.mdb"
     
    Set ADODOX = CreateObject("ADOX.Catalog")
    Set ADODOXCatalog = ADODOX
     
    Set MaTableId = CreateObject("ADOX.Table")
    Set MaTableIndex = MaTableId
     
    With ADODOXCatalog
        .ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & NomBase & ";"
     
        On Error Resume Next
        'Supprime la table si elle exsite déjà
        .Tables.Delete MaTableName
        On Error GoTo 0
    End With
     
    '7= adDate
    '203 = adVarWChar (memo)
    '130 = adWChar (texte)
    '3 = adInteger
     
    With MaTableIndex
        .Name = MaTableName
        With .Columns
            .Append "DateCreation", 7, 10
            .Append "DateModif", 7, 10
            .Append "DateSupp", 7, 10
            .Append "NumberID", 3, 10
            .Append "Number2", 3, 10
            .Append "Document", 203, 500
            .Append "Name", 130, 80
            .Append "AKA", 130, 80
            .Append "City", 130, 50
            .Append "Country", 130, 50
     
            .Append "DateOuv", 7, 10
            .Append "DateCertif", 7, 10
            .Append "DateEtude", 7, 10
            .Append "CityID", 3, 10
            .Append "Number3", 3, 10
            .Append "RefID", 3, 50
            .Append "NomZone", 130, 80
            .Append "Notes", 203, 500
            .Append "Quartier", 130, 50
            .Append "Continent", 130, 50
     
            .Append "DateFermeture", 7, 10
            .Append "DateVerif", 7, 10
            .Append "Echeance", 7, 10
            .Append "xID", 3, 10
            .Append "Number100", 3, 10
            .Append "Regime", 130, 50
            .Append "NameAgence", 203, 500
            .Append "TypeAPPT", 130, 80
            .Append "Commune", 130, 50
            .Append "Region", 130, 50
        End With
    End With
     
    With ADODOXCatalog
        .Tables.Append MaTableId
    End With
     
    Set ADODOXCatalog = Nothing
    Set MaTableId = Nothing



    bonne journée
    michel

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 49
    Par défaut
    Bonjour,

    Merci pour toutes vos réponses.

    J'ai organisé mon code ce matin. Ca marche mieux et crée bien ma structure.

    Pour résumer , l'idée est que la structure est contenue dans une feuille Excel et le programme lit une colonne de noms et en fonction du type de chaque ligne de nom, ADOX ajoute la colonne avec ses caractéristiques.

    L'utilisateur devra pouvoir ajouter une ligne avec des caractéristiques et que cela s'impacte dans la création illico.

    Bonne journée à vous !

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

Discussions similaires

  1. Création de Signets avec Acrobat Pro via Excel
    Par kiki29 dans le forum Vos contributions
    Réponses: 0
    Dernier message: 02/09/2014, 16h41
  2. Insérer des Heures dans Access via Excel vba
    Par gdiamond dans le forum Excel
    Réponses: 1
    Dernier message: 21/08/2013, 06h38
  3. Destruction table dans Access par la trace dans VB
    Par angelevil dans le forum Windows Forms
    Réponses: 9
    Dernier message: 16/06/2009, 19h23
  4. Création tables liées Access mais pas vers Access
    Par Lockss dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 24/06/2008, 15h58
  5. Outlook via excel vba
    Par joss56 dans le forum Outlook
    Réponses: 3
    Dernier message: 09/01/2008, 22h03

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