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 :

export excel dao champs multivalués


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 192
    Par défaut export excel dao champs multivalués
    Bonjour a tous,

    Je coince sur un code que j'ai récupéré dans un bouquin pour unn transfert vers excel.
    Le code fonctionne bien pour une requete "simple", mais la requete a exporter contien un champ mulitivalué.
    Je recoit donc un beau message d'erreur: erreur d'execution 1004, argument non valide.
    La ligne surlignée est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(intLigne, intColonne) = fld.Value
    Je ne trouve pas de solution pour m'en sortir
    Voici le code complet:

    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
    Sub ExportationVersExcel()
    Dim xl As Excel.Application
    Dim wbk As Excel.Workbook
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim fld As DAO.Field
    Dim intColonne As Integer
    Dim intLigne As Integer
     
    ' Ouvrir la requête Clients+Villes
    Set db = CurrentDb()
    Set rst = db.OpenRecordset("export excel")
     
    ' Démarrer Excel
    Set xl = New Excel.Application
    xl.Visible = True
     
    With xl
        ' Créer un nouveau classeur
        Set wbk = .Workbooks.Add
     
        ' Renommer la 1ère feuille du classeur
        wbk.Sheets("Feuil1").Name = "Test"
     
        With wbk.Sheets("Test")
            ' Transférer les noms de champs
            intColonne = 1
            For Each fld In rst.Fields
                .Cells(1, intColonne) = fld.Name
                intColonne = intColonne + 1
            Next
     
            ' Transférer les enregistrements
            intLigne = 2
            While Not rst.EOF
                intColonne = 1
                For Each fld In rst.Fields
                Debug.Print intLigne
                Debug.Print intColonne
     
                    .Cells(intLigne, intColonne) = fld.Value
                    intColonne = intColonne + 1
                Next
     
                ' Enregistrement suivant
                rst.MoveNext
                intLigne = intLigne + 1
            Wend
        End With
     
        ' Fermer le classeur en l'enregistrant
        wbk.SaveAs "C:\Access Référence\test.xlsx"
        wbk.Close
    End With
    Si qq pouvait me donner quelques infos, ce serait sympa.

    Merci a tous.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Comme il s'agit de champs multivalués, je suppose que tu utilises Access 2007.
    Peu de personnes utilisent les champs multivalués, il est de préférable d'utiliser des tables avec relations que ce type de champs.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 192
    Par défaut
    Je suis d'accord mais le probleme est que la base est complete et qu'elle fonctionne bien.Je n'ai pas envie de tout recommencer!!

    Est-ce que qq sait de quelle maniere access s'y prend pour transferer les données vers excel?
    Parce que qu'avec le transfert automatique ca marche tres bien, il n'y a aucun probleme avec les champs multivalués!
    Le seul hic c'est qu'il ouvre un nouveau classeur alors que mes données doivent etre copiées sur la 2eme page d'un classeur existant.

    Merci de votre aide.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Alors, pourquoi ne copie tu pas la nouvelle feuille au bon endroit ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 192
    Par défaut
    Pour plusieurs raisons.....
    En particulier celle-ci: ca m'enerve profondement de ne pas comprendre, si access y arrive je peux y arriver aussi.
    A chaque fois que je resoud un probleme, j'avance dans mon apprentissage.
    Le but du jeu n'est pas de "bricoler", mais de maitriser ce logiciel et son language.
    De plus ce formulaire excel ne m'est pas déstiné. Une fois les données importées, il faut encore les "aranger" et les ranger dans les bonnes cases.Si les utilisateurs font des mauvaises manip.........

Discussions similaires

  1. [AC-2010] Export de certains champs vers Excel
    Par Eva06 dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/08/2013, 15h09
  2. [CR XI] export excel : mettre une formule dans un champ ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 27/09/2012, 11h21
  3. [AC-2007] Exporter seulement certains champs d'une requête vers Excel
    Par MelaAllIn dans le forum VBA Access
    Réponses: 8
    Dernier message: 26/08/2011, 09h26
  4. Réponses: 5
    Dernier message: 13/11/2009, 09h29
  5. [Export Excel] champs OleObject
    Par userd dans le forum Access
    Réponses: 2
    Dernier message: 30/11/2005, 16h10

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