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

VB 6 et antérieur Discussion :

Coiper requête SQL sur BD1 dans TableX de BD2


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 89
    Points : 73
    Points
    73
    Par défaut Coiper requête SQL sur BD1 dans TableX de BD2
    Bonjour,

    J'ai cherché pas mal sur le site (FAQ, Forum, Google, etc.) et j'ai trouvé des questions semblable mais jamais la réponse.

    Voici donc ma question :
    Je fais une requête SQL (3 tables jointes et sélection de quelques champs) sur la BD1 en Access. J'obtiens présentement le résultat dans une ADODB.Recordset. Voici ma connexion :
    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
     
    Dim sql as string
    Dim rsSMAF As ADODB.Recordset
    Dim cnSMAF As New ADODB.Connection
     
    Set cnSMAF = New ADODB.Connection
    Set rsSMAF = New ADODB.Recordset
     
    sql = "SELECT [T_Resume].Dossier, [T_Resume].Date, " & _
       "[T_Resume].Profil, [T_Resume].DistanceE, " & _
       "[Patients].[GroupUID], Groups.GroupName  FROM " & _
       "([T_Resume] LEFT JOIN Patients ON [T_Resume].[PatientUID] = [Patients].[PatientUID]) " & _
       "LEFT JOIN Groups ON [Patients].[GroupUID] = [Groups].[GroupUID] "
     
     
    cnSMAF.Provider = "Microsoft.Jet.OLEDB.4.0"
    cnSMAF.ConnectionString = Monchemin
    cnSMAF.Open
    rsSMAF.CursorLocation = adUseClient
    rsSMAF.Open sql, cnSMAF, adOpenDynamic, adLockOptimistic, adCmdText
     
    'Close où nécessaire pour les variables
    J'aimerais copier le résultat contenu dans le recordset dans une autre BD Access. La table est déjà existante mais vide (et pourrait être créé si c'est plus facile). Dans cette 2e BD j'ai le même genre de connexion.

    À part boucler à travers tous les enregistrements, il n'existe pas une autre méthode pour copier un recordset dans une table?

    Merci pour votre aide!

    Mymi

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Essaie de voir du coté des Insert Into ou Select Into du language sql

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 36
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Delbeke
    Essaie de voir du coté des Insert Into ou Select Into du language sql
    En effet, avec une requête de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO target [IN externaldatabase] [(field1[, field2[, ...]])]
    SELECT [source.]field1[, field2[, ...]
    FROM tableexpression

  4. #4
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 89
    Points : 73
    Points
    73
    Par défaut
    Merci pour votre aide!

    Alors voici où j'en suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim cnPrinc As New ADODB.Connection
    Set cnPrinc = New ADODB.Connection
    sql = "Insert into SMAF SELECT * FROM [SMAF1] in [c:\maBD.mdb]"
    cnPrinc.Execute sql
    Ma cnPrinc est branché sur ma BD (Access) qui contient la table SMAF et où je veux envoyer mes données. Elle est identique à la SMAF1 contenue dans la BD maBD.mdb.

    Peut-être que je n'ai pas la bonne façon de faire mais ça plante sur :
    Il me dit : Le moteur de base de donnée ne peut pas trouvé '[c:\maBD.mdb]'. Assurez-vous que le nom de paramètre ou d'alias est valide, qu'il ne comprend pas de caractère ou de ponctuation incorrect et qu'il n'est pas trop long.

    Des suggestions?

    Merci encore pour votre aide c'est apprécié!

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 89
    Points : 73
    Points
    73
    Par défaut
    Ça fonctionne!

    En changeant les "[" et "]" qui encadraient le nom de ma BD par des " ' ", ça fonctionne!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "Insert into SMAF SELECT * FROM [SMAF1] in 'c:\maBD.mdb'"
    Merci pour votre aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] SELECT dans une requète SQL sur une page PHP
    Par thewit dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/01/2015, 22h48
  2. requêtes sql sur plusieurs tables
    Par zahiton dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/11/2005, 10h59
  3. [SQL] requêtes SQL sur plusieurs tables
    Par zahiton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/11/2005, 16h32
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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