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

Requêtes et SQL. Discussion :

Requête ADO vers deux bdd distinctes (requête ado cross db)


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Requête ADO vers deux bdd distinctes (requête ado cross db)
    Bonjour,

    J'utilise l'objet ADODB pour effectuer mes requêtes ADO vers des bases de données externes à mon application. Cela fonctionne correctement quand mes requêtes ne concernent qu'une seule base de données.

    Mais je veux maintenant faire une requête qui sélectionne des résultats d'une base A à partir des résultats trouvé dans la base B.

    La base A est la base ACCESS dans laquelle je développe.
    La base B est une base SQL Server

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT p.num_badge 
    FROM baseaccess.Personnel AS p
    WHERE p.idPersonnel = ? 
    AND NOT EXISTS (
             SELECT e.matri 
             FROM basesql.presence e 
             WHERE e.matri = ? AND convert(varchar, e.DAT, 112) = ? AND e.matri = p.num_badge);
    Est-ce que c'est techniquement possible ? Ou dois-je me débrouiller autrement ?

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Oui, c'est techniquement possible.

    Fais-toi une requête dans ta base A, basées sur... rien, pour le moment
    Va dans les propriétés de la requête, change les paramètres de la base source en pointant sur la base B
    Maintenant, demande à ajouter une table. tu ne trouveras que les tables de la base B

    Fais ta requête normalement.
    Et sers-toi de cette requête comme source pour ton code ADO

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Merci pour la solution, j'ai (malheureusement) un problème : J'ai l'erreur suivante : Pilote ISAM Introuvable.

    J'ai regardé un peu sur le net et souvent ils disent que ça peut venir d'un problème dans la chaîne de connexion.

    Pourtant j'ai bien vérifié et je trouve pas de problème particulier dans ma chaîne de connexion.

    Provider=Microsoft.Access.OLEDB.10.0;Data Provider=SQLOLEDB;Data Source=10.**.**.**;User ID=***readonly;Password=***readonly;



    (Par contre dans base source j'ai rien... ça vient peut être de là)

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Ben... la chaîne de connexion, tu la mets à la benne.
    Et, dans Base Source, tu mets le path de la base B
    \\MonServer\MonDossier\MaBase.extension

    C'est tout !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Comment je peux accéder à ma base sans mes paramètres ?

    J'ai pas de path vers ma base SQL server, j'ai juste l'ip.

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Ah !
    Une base SQL Server !!!!
    Encore plus simple alors !!!

    Fais une table liée, ou une requête SQLDirect
    Mais moi, j'aurais tendance à créer une vue côté SQLServer et requêter sur cette vue.
    Pour se faire, tu crées un DSN qui pointe sur ta BDD, et tu accèderas aux vues de ta base de données.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Le problème ici c'est que je peux pas intervenir sur la base SQL Server, ni lier des tables dans la base SQL Server, ni faire une vue...

  8. #8
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bah si !
    Tu peux...
    1- lier des tables
    2- faire des requêtes en SQL direct

    forcément !

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    J'ai pas de client SQL Server, et je n'ai pas la possibilité d'en installer un. De plus je n'ai que les droits en lecture sur la base, je ne sais pas si c'est suffisant pour lier des tables.

    C'est pour ça que je demandais si c'était possible à travers Access...

    Bref je vais procéder autrement si ce n'est pas possible avec Access.

  10. #10
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    mais...
    je n'arrête pas de te dire que
    1- tu peux lier des tables
    2- tu peux faire du SQL Direct

    si tu as les droits en lecture, tu peux tout ça !

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2010
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    Je retombe à nouveau sur le problème donc je me permet de répondre à ta proposition (J'avais auparavant contourné le problème en faisant deux requêtes distinctes).

    Je ne peux tout d'abord pas utiliser de DSN dans ce cas, car l'utilisation du DSN oblige à installer un DSN sur toutes les machines qui utilisent l'application : Je ne veux pas. J'utilise d'ailleurs les requêtes ADODB pour contourner l'utilisation du DSN.

    Je ne peux donc pas lier les tables dans Access.

    Je ne peux donc pas faire de SQL Direct.

    Ce que je cherche concrètement c'est faire des requêtes ADODB cross-db en VBA entre Access et SQL Server. Mais c'est surement impossible.

Discussions similaires

  1. [Débutant] Requête Insert ou Update exécutée par l’objet ADO
    Par lazerdev dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/05/2007, 10h52
  2. [ADO.Net][OleDb] Pourquoi ma requête access ne fonctionne pas?
    Par Bapt.ice dans le forum Accès aux données
    Réponses: 6
    Dernier message: 05/05/2006, 17h19
  3. pb requête delete/update avec opérateur like, connexion ADO
    Par jerome666 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/02/2006, 16h47
  4. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 11h01

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