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 :

Insérer des données depuis un resulset ODBC


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 181
    Par défaut Insérer des données depuis un resulset ODBC
    Bonjour,
    Je souhaite insérer des données provenant d'un recordset ODBC dans une table de mon programme ACCESS. Le problème étant que les données sont importantes : Je ne souhaite donc pas utiliser de boucle et je ne peux intégrer directement la commande " INTO TEMP " puisque la requête est executée sur un serveur SQL SERVER distant.
    Ci-dessous mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set Wksp = DBEngine.CreateWorkspace("MonWkspODBC", "Admin", "", dbUseODBC)
            strODBCconn = "ODBC;DRIVER=SQL Server;SERVER=XXXX;DSN=XXXX;DATABASE=XXXX;UID=XXXX;PWD=XXXX"
        ' Ouverture connexion ODBC
        Set Conn = Wksp.OpenConnection("sqlserver", dbDriverNoPrompt, False, strODBCconn)
    strSQL = "SELECT * FROM USER"
    Set rs = Conn.database.OpenRecordset(strSQL, dbOpenDynaset)
    Comment puis-je faire?

    Merci par avance

    Cordialement,
    Daniel

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    Personnellement, dans ce genre de contexte, je boucle sur le recordset source et je fait des ajouts dans le recordset destination.
    Je ne vois pas comment on peut faire autrement pour copier les données d'un recordset dans une table.

    Il m'arrive d'utiliser la méthode GetRows pour lire d'un coup, plusieurs enregistrements (quelques centaines).
    Sur un très grand nombre d'enregistrements ça peut s'avérer moins coûteux en temps.

    Il y a aussi une méthode sans code.
    Tu crée une requête type SQL-Direct.
    Dans la propriété 'Chaîne de connexion' tu mets la même chaîne que dans ton code (ODBC;DSN=.....)
    Dans cette requête tu mets le code de ton instruction Transact-SQL.
    Tu la sauves.
    Tu peux ensuite utiliser cette requête dans une requête Access en lieu et place d'une table.

    Le petit inconvénient c'est que la chaîne de connexion est facilement visible.
    On peut donc voir le nom d'utilisateur et le mot de passe en clair.

    A+

Discussions similaires

  1. Insérer des données depuis C#
    Par aznaud dans le forum Débuter
    Réponses: 0
    Dernier message: 04/06/2014, 16h17
  2. Réponses: 9
    Dernier message: 26/03/2011, 09h46
  3. Réponses: 2
    Dernier message: 22/10/2010, 16h14
  4. Réponses: 2
    Dernier message: 11/10/2010, 14h47
  5. Insérer des données dans une BD depuis un fichier .bat
    Par kurkaine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/11/2006, 08h31

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