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 :

Copier de SQL-Coller dans ACCESS


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Points : 9
    Points
    9
    Par défaut Copier de SQL-Coller dans ACCESS
    Bonjour,

    Etant donné une connexion "rs" avec sql, une connexion rsAcc avec access; pour compléter ma table ACCES je voudrais éviter la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 0 To rs.Fields.Count - 1
           rsAcc.Fields(i) = rs.Fields(i)
    Next i
    qui prend un temps considérable puisqu'il y a beaucoup de lignes.

    Existe t-il un moyen dans VBA ACCESS pour copier une table dans SQL et la coller dans une table existane dans ACCESS ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    salut,
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * INTO TableFinale FROM TableInitiale;
    par exemple
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Points : 9
    Points
    9
    Par défaut
    DEJA essayé; MAIS
    Ca ne peut pas marcher puisqu'il faut passer par une connexion pour selectionner from une base SQL.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Citation Envoyé par lesguignols Voir le message
    DEJA essayé; MAIS
    Ca ne peut pas marcher puisqu'il faut passer par une connexion pour selectionner from une base SQL.
    Bonjour,

    Mais si ça peux marcher si tu utilises les liaisons.
    Avec une table liée tu peux faire fonctionner ce que t'as indiqué jpcheck :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         Select * INTO TableAccess From TableLiéeSQL;

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    en utilisant
    avec l'option dbSQLPassThrough
    ca devrait faire l'affaire.

    En tous les cas, de mon côté, les tables en lien ODBC sont avec mdp enregistré et fonctionnent comme des tables en local
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Points : 9
    Points
    9
    Par défaut
    Merci jpcheck;

    Peux tu tout de même me fournir un exemple tout simple qui fera utilser la currentdb.execute et le dbSQLPassThrough ?

    Merci

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    l'exemple (certes quelque peu différent de mon idée) de la devrait faire l'affaire
    http://access.developpez.com/faq/?page=SQL#qryActions
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Points : 9
    Points
    9
    Par défaut
    Désolé de te revenir mais je ne trouve pas dans l'exemple du FAQ l'utilisation du "dbSQLPassThrough" qui me semble assez correcte
    Si j'appelle la base SQL "Sbase" et la table ACCESS "Abase".
    Ma requête sera

    Mysql = "Select * INTO Abase From Sbase"
    set rs = CurrentDb.Execute(Mysql)

    Quelles lignes rajouter pour que la requete "Mysql" s'exécute sans problème ?

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 335
    Points : 19 574
    Points
    19 574
    Billets dans le blog
    65
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Mysql = "Select * INTO Abase From Sbase"
    CurrentDb.Execute(Mysql)

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Points : 9
    Points
    9
    Par défaut
    Même si je n'étais pas convaincu, j'ai écouté vos conseils en mettant

    DoCmd.RunSQL "SELECT * into Abase from Sbase"

    le message d'erreur est : "Le moteur de base de données Microsoft Jet ne peut pas trouver la table ou la requête "Sbase", Assurez-vous qu'elle existe...."

    Donc c'est là où je suis persuadé que je dois rajouter des lignes pour assurer la connexion mais je ne sais pas lesquelles....??? Can you help plz ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Bonjour,

    Pour que ça fontionne, il faut tout d'abord avoir pris soin de lier la table SQL...

    Sous access 2007, c'est dans données externes/Plus/ODBC/Créer un lien vers une table attachée.

    Sinon si je me souviens des versions antérieures c'est dans Fichier/Données externes/Lier les tables...et là tu choisis ODBC dans la zone type de fichiers.

    Ensuite tu renseignes les infos de connexion.

    Une fois cette liaison faite, ton objet (en l'occurrence SBase dans ton exemple) sera disponible...

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Points : 9
    Points
    9
    Par défaut
    J'ai établi la connexion comme tu m'as expliqué mais toujours le message d'erreur. Y a t-il un moyen pour l'établir dans le code au lieu de la faire manuellement. On sait jamais, peut être que ça marchera...

Discussions similaires

  1. utiliser les curseurs issus de SQL-server dans Access
    Par batou22003 dans le forum Développement
    Réponses: 0
    Dernier message: 12/01/2010, 12h42
  2. Utiliser une UDF SQL Server dans Access (ADP)
    Par isa911 dans le forum Access
    Réponses: 5
    Dernier message: 25/09/2007, 18h34
  3. Lier une table sql server dans access
    Par PICANTO dans le forum Access
    Réponses: 1
    Dernier message: 11/04/2007, 11h42
  4. Importer du SQL directement dans ACCESS ?
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/02/2006, 11h46
  5. Réponses: 9
    Dernier message: 25/01/2005, 14h46

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