|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Administrateur de base de données Inscription : mai 2011 Messages : 99 ![]() |
Bonjour forum,
J'ai une liste des livraison a effectuer dans un server SQL. Ensuite J'ai le détail des livraisons (Emplacement, Heure de livre, etc..) dans une BD Access. Lorsque j'effectue une requête afin de savoir l'ensemble de mes livraisons à effectuer dans une journée (Vers un tableau excel), j'aimerais que les informations contenues dans ma BD access en lien avec ses lignes de livraison se transporte. Les critères afin de voir si même ligne de livraison: date,Contrat, Produit, Amount, cleints, address, ville et ensuite les données qui ont la même date de livraison mais qui n'on pas trouver de correspondance, soit supprimer de ma base de donnée. Je procède ainsi, car je ne peux pas modifier les données dans mon server SQL, afin de contourner ce problème j'ai donc créé une 2e BD dans laquelle j'entre les informations en liens avec mes livraisons, ces informations doivent donc se transporter lorsque j'effectue ma requête dans mon server SQL. PS: Si vous pensez à une autre façon n'hésitez pas je suis ouvert a toute suggestion. Merci! |
|
|
00
|
|
|
#2 | ||
|
Nouveau Membre du Club
![]() Administrateur de base de données Inscription : mai 2011 Messages : 99 ![]() |
Rebonjour forum,
Je vais reformulé, afin de vous donner le maximum d'information possible J'ai une première requête: Code :
J'aimerais lors de ma requête, qu'une seconde requête compare les données des champs ( deliverydate, sonbralt, amount ) dans mon autre base de donnée, qui est une BD Access. Ensuite lorsqu'il a trouver les données correspondante, qu'il ajoute les nouvelles données (Notrailer, Ordre, Periode, Camionneur, Commentaire) Pour finir tous les enregistrements dans ma BD qui n'ont pas trouver de correspondance et qui ont cette même date de livraison soient supprimer, ou peu-être supprimer toutes les données avec cette date de livraison et lorsque je ferai le prochain enregistrement les données désiré seront sauvegardé. PS: cette requête ne présente pas énormément de données, 100 ligne maximum Merci de votre aide |
||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2005 Messages : 18 ![]() |
J'étais parti sur un truc compliqué, mais j'ai vu qu'il y avait ça :
http://office.microsoft.com/fr-fr/ac...001034599.aspx qui devrait suffire. Sinon la solution compliqué partait du principe qu'on ne pourrait pas requêter les deux bases depuis sql server, et je conseillais de faire un export des données d'access vers une nouvelle table dans sql server qui permettrais ce traitement. Mais pour une centaine de lignes seulement c'est peut-être un peu excessif. |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Administrateur de base de données Inscription : mai 2011 Messages : 99 ![]() |
Ok merci je regarde ça et je te tiens au courant !!
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Administrateur de base de données Inscription : mai 2011 Messages : 99 ![]() |
salut samael314,
J'ai regardé ça un peu et je ne sais pas si c'est cela que je recherche, car je crois que si j'utilise Access pour faire le lien avec ma base SQL, il va faloir que j'ouvre access afin d'actualiser mes tables et ensuite faire mes opérations dans Excel. Je doit faire l'ensemble de mes opération via Excel. Ce que j'avais pensé, était de créer une table (ou un vue) avec une requête dans ma base de donnée SQL selon la date de livraison, et le même chose pour ma base de donnée Access. Par le suite je pourrais comparer ces deux table selon quelques critère, et ensuite afficher les résultat dans excel. Je pourrais créer un clé primiare en combinant ces critères?? je pourrais donc finir par avoir une requête qui ressemble à celle la: Code :
SELECT .... FROM SQLView SV INNER JOIN ACCESView AV ON SV.Clef = AV.Clef Est-ce possible, sans que ça soit trop compliquer? |
|
|
00
|
|
|
#6 | ||||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2005 Messages : 18 ![]() |
Es-tu sûr de pouvoir interroger simultanément les deux bases avec la même requête ? Perso j'en doute.
Tu peux faire une requête sur plusieurs bases différentes mais au sein d'un même SGBD (système de gestion de base de données : oracle, sql server...). Par contre entre deux SGBD différents, je ne pense pas, et requêter une base access depuis sql server ça m'étonnerait aussi. Donc si j'ai bien compris, tu veux tout faire depuis Excel. C'est à dire interroger la base access et la base sql server. Je te le déconseille : - déjà tu ne pourras pas faire une seule requête pour comparer directement les deux tables depuis Excel, ça serait trop facile. Tu pourras seulement ramener les données dans les feuille excel et tu devra comparer avec les fonctions excel. - ensuite je ne sais pas si microsoft a fait un effort la dessus (c'est possible) mais les requêtes sql sont extrêmement lentes depuis excel, ensuite tu dois donner des identifiants de connection sql (user, password), et il y a qq années le mot de passe était stocké dans la feuille excel en texte : il suffisait d'ouvrir le document excel avec un éditeur de texte (bloc note par ex) pour voir le mot de passe en clair... Quelle que soit la solution que tu choisis tu devras de toute façon synchroniser régulièrement tes données : soit de access vers sql server soit l'inverse. C'est à dire que tu fait passer les données de access dans une table dédiée côté sql server. Sinon tu as toujours le bon vieux copier/coller, puisque tu n'as qu'un centaines de lignes, tu copie colle les données access et sql server dans une feuille excel et utilise le fonction EXACT de excel pour comparer tes valeurs. Je te donne la solution à laquelle j'avais pensé au départ : Je pense que le plus simple serait d'exporter les données de la table de la bd access vers une nouvelle table (CustFromAccess dans les exemples en dessous) dans la base sql server. Je ne connais pas d'outil qui pourrait faire de l'import/export entre access et sql server, mais il est facile de sortir un script de type "insert into", surtout si le volume est limité à une centaines de lignes. L'idéal serait un petit bouton dans access qui recréérait un script sql des données à importer dans sql server à la demande (le bouton lance une macros en vb qui crée un fichier texte contenant le script), sur ce modèle : Code :
Cette partie c'est pour l'extraction des données access vers sql server. Donc il faudra le refaire régulièrement pour avoir les données à jour. Ensuite, d'après ce que j'ai compris, il y a de la mise à jour de données (update) et de la suppression de lignes (delete). Donc comme on a les données access dans la base sql server, il suffit de requêter sur la nouvelle table. Par exemple (attention j'ai tapé de tête, vérife la syntaxe) : Code :
Code :
|
||||||
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2005 Messages : 18 ![]() |
N'hésites pas à détailler plus ton besoin car je ne suis pas sur de bien saisir ce que tu veux.
|
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Serge LESPAGNARDConsultant informatique Inscription : janvier 2004 Messages : 588 ![]() |
|
|
|
10
|
|
|
#9 | |
|
Nouveau Membre du Club
![]() Inscription : octobre 2005 Messages : 18 ![]() |
Citation:
Donc Beaudelicius ça se passe là : http://msdn.microsoft.com/fr-fr/libr...v=sql.90).aspx et là : http://msdn.microsoft.com/fr-fr/library/ms190312.aspx |
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Access dispose de mécanismes similaires en utilisant l'assistant de données externes, et en "important en tant que tables liées" les tables de la base SQL Server.
La base Access pouvant être déplacée, copiée, etc. je pense qu'il est plus pratique de faire dans ce sens, plutôt que de lire les données d'Access depuis SQL Server. D'autant qu'Access dispose de tous les outils permettant à un utilisateur lambda de faire des requêtes et états, sans vous demander d'intervenir sur le serveur SQL Server à chaque fois. Attention cependant, lors de l'import des tables liées, il faudra peut-être faire une liaison en lecture seule, histoire d'éviter qu'un utilisateur maladroit n'efface les données du serveur par erreur, c'est très vite arrivé avec Access |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com