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 :

Importer table sql server


Sujet :

VBA Access

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Points : 218
    Points
    218
    Par défaut Importer table sql server
    Bonjour,
    J'aurais besoin d'importer (en VBA) une table d'une base sql server dans Access.
    J'arrive bien à me connecter à ma base sqlserver et à récuperer un recordset de ma table.
    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
    Dim cnx As ADODB.Connection
        Dim rst As ADODB.Recordset
     
        Set cnx = New ADODB.Connection
        Set rst = New ADODB.Recordset
        'parametre de connection
        cnx.ConnectionString = "Driver={SQL Server};server=KALAN\SQLEXPRESS;UID=ADS;PWD=net;database=test"
        cnx.Open
        'test de connection
        If cnx.State = adStateOpen Then
            'connexion ok
            'Initialisation du RecordSet
            If rst.State <> adStateClosed Then
                rst.Close
            Else
                'Ouvre une transaction pour ne pas à avoir à réaliser de commit en fin de traitement
                cnx.BeginTrans
                'Positionne le curseur côté client
                rst.CursorLocation = adUseClient
                'Exécute la requête
                rst.Open "Select * FROM User", cnx
                'Valide la transaction
                cnx.CommitTrans
           End If
        End If
    Mais je ne sais pas comment à partir de mon recordset pour copier les enregistrements dans une table access existante ou créer une nouvelle table access.

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Points : 218
    Points
    218
    Par défaut
    Je prècise que je ne veux pas utiliser la liaison de table.
    Je veux vraiment importer les données de sql server dans access

  3. #3
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Tu as 2 possibilités... Passer par ADO (à coup de requêtes SQL) ou DAO (spécifique à Access)

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Points : 218
    Points
    218
    Par défaut
    Mais je suis déjà connecté en ADO!!!!!
    Et en DAO, je ne sais pas me connecter à un base sql server....

  5. #5
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Non,il faut se connecter en ADO ou DAO sous la Base Access (CurrentDb...) Pour,plus d'infos,l'ami

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Points : 218
    Points
    218
    Par défaut
    Je ne comprends rien à ce que tu me dis.
    En quoi me connecter me permettra de copier mon recordset?

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Points : 218
    Points
    218
    Par défaut
    Alors j'ai bien la solution suivante mais qui m'oblige à parcourir toutes les lignes et tous les champs.
    Cela risque d'être très long car j'ai plusieurs tables à importer mensuellement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                rst.Open "Select * FROM User", cnx
                'Connexion sur la table local pour copie
                Set enregCopie = CurrentDb.OpenRecordset("select * from User")
                While Not rst.EOF
                         enregCopie.AddNew
                         For Each vFld In rst.Fields
                            enregCopie.Fields(vFld.Name) = vFld.Value
                         Next
                         enregCopie.Update
                     rst.MoveNext
                 Wend
    Mais est-qu'il y aurait pas un moyen plus rapide avec la copie complète du Recordset?
    Merci

Discussions similaires

  1. Importation fichier txt dans table SQL server
    Par vito30620 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/09/2013, 07h41
  2. Importer fichier excel 2003 dans une table SQL Server
    Par fainch dans le forum Développement
    Réponses: 6
    Dernier message: 08/12/2011, 22h59
  3. Réponses: 0
    Dernier message: 17/11/2011, 08h44
  4. Réponses: 3
    Dernier message: 20/08/2010, 21h48
  5. Réponses: 2
    Dernier message: 01/10/2009, 20h07

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