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 :

Ajouter des données Excel à une table SANS références?


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Par défaut Ajouter des données Excel à une table SANS références?
    Bonjour à tous,
    Mon problème de références n'étant toujours pas résolu (besoin de faire des sauvegardes avant de réinstaller WinDaube car rien n'a marché jusqu'ici...), il faut que je biaise au plus vite (les utilisateurs de la base ayant besoin de l'appli assez rapidement). Une fois que je les aurai récupérées, je modifierai le code pour l'optimiser avec ce qu'il faut.

    Je ne veut importer que les colonnes 3 à 8 d'un fichier excel avec test sur la colonne 8 (==> valNb_T) et ajouter une autre valeur pour un dernier champ (ValIdObs). Ce qui me donne la commande SQL suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    cmdSQL = "Insert into [Variable_ESP] (H, L, LdT, Ho, Lo, Nb_T, IdOBS) values ( " & _
                oWSht.Cells(i, 3) & ", " & _
                oWSht.Cells(i, 4) & ", " & _
                oWSht.Cells(i, 5) & ", " & _
                oWSht.Cells(i, 6) & ", " & _
                oWSht.Cells(i, 7) & ", " & _
                valNb_T & ", " & _
                valIdObs & ")"
    Revenons à la question:
    Comment importer des données Excel sans utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oApp As Excel.Application
    Dim oWkb As Excel.Workbook
    Dim oWSht As Excel.Worksheet
    qui génère l'erreur suivante:
    Type défini par l'utilisateur non défini
    ???

    [je suis sous Access 2003]

  2. #2
    Membre Expert Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Par défaut
    Hello !

    Je ne sais pas si j'ai vraiment bien tout compris...

    Mais as-tu pensé à la bête commande : "docmd.TransferSpreadsheet acImport" qui te permettrait d'importer dans une table temporaire les données que tu souhaites puis, grâce à une requête ajout, incorporer ces données dans ta table ?

  3. #3
    Membre éclairé

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Par défaut
    Le "docmd.TransferSpreadsheet acImport" me permet d'enregistrer toutes les données dans une table temporaire. Ca, OK.
    Mais pour faire un INSERT, je dois parcourir ligne par ligne ma table.
    Donc Recordset, donc besoin des références.
    Je dois vraiment contourner le problème... (raz le bol de Windaube!!)

  4. #4
    Membre Expert Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Par défaut
    Alors, je ne comprends pas ton problème !
    Veux-tu nous en dire plus, surtout pourquoi tu as toutes ces contraintes, et dans quel environnement tu travailles...
    Mais pour faire un INSERT, je dois parcourir ligne par ligne ma table.... POURQUOI, que veux-tu dire par là ?
    Donc Recordset, donc besoin des références..... POURQUOI donc des références ?...s'il s'agit d'une requête de table à table ?

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

    Va jeter un coup d'oeil dans les contributions Excel, notamment sur celle-ci de Caféine

    http://www.developpez.net/forums/sho...d.php?t=417799, cela devrait t'aider.

    Starec

  6. #6
    Membre éclairé

    Inscrit en
    Juin 2006
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 320
    Par défaut
    Désolée les gars pour ce remue méninges.
    J'ai fini par trouver la solution à mon problème: j'importe mes données dans une table temporaire puis je reprend ces données avec une requête INSERT... SELECT...
    C'était bête, oui, je sais.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        DoCmd.TransferSpreadsheet acImport, 8, "tmp", strLink, True, ""
        cmdSQL = "UPDATE Tmp SET IdObs = " & valIdObs
        DoCmd.RunSQL cmdSQL
        cmdSQL = "INSERT INTO Variable_ESP ( H, L, LdT, Ho, Lo, Nb_T, Id_OBS ) " & _
                    "SELECT H, L, LdT, Ho, Lo, Nb_T, IdOBS FROM Tmp;"
        DoCmd.RunSQL cmdSQL
    (J'ai tendance à me focaliser sur mon problème de références...)
    Y'a-t-il un moyen d'alléger le code?


    Pour voir d'où vient ce problème de références: http://www.developpez.net/forums/sho...d.php?t=417068

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/09/2012, 13h41
  2. [AC-2007] Ajouter des données dans une table vide
    Par othke dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 08/04/2010, 19h16
  3. Access/VBA Ajouter des données dans une table !
    Par vto59 dans le forum VBA Access
    Réponses: 10
    Dernier message: 04/06/2009, 15h18
  4. Réponses: 1
    Dernier message: 12/11/2008, 10h34
  5. [MySQL] Ajouter des données dans une table avec la cmd update
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/09/2007, 19h54

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