Accueil > Forum > > > > requete qui marche sur access mais pas sur vb ???
requete qui marche sur access mais pas sur vb ???
lundi 20 mars 2006 à 12:03:44 |
requete qui marche sur access mais pas sur vb ???

rachidos001
|
requete sous access :
SELECT [Dept] AS Département, [Operation] AS Opération, [commande].[N°com] AS N°Commande, [Date_recp] AS [Date Récp], [Date_trans] AS [Date Trans], [Date_aff] AS [Date Aff], [Centre], [Client], [Fournisseur], [Design_mat] AS Désignation, [Confir] AS Confirmation, [Date_confir] AS [Date Confirm], [Obser] AS Observation1, [N°Fact] AS N°Facture, [Date_Fact] AS [Date Fact], [Montant], [Devise], [Nbr_Colis] AS [Nbr Colis], [Poids], [Trans] AS Transporteur, [Moy] AS Moyen, [Date_arriv] AS [Date Arrivée], [N°Avis], [Doc] AS [Document Joint], [N°Doc], [facture].[N°OT] AS N°OT, [Date_OT] AS [Date OT], [Sit] AS Transitaire, [N°Inst] AS N°Instance, [Date_inst] AS [Date Instance], [N°Ordre] AS N°Assurance, [Obser2] AS Observation2
FROM (commandeLEFT JOINfacture ON ([commande].[N°com]=[facture].[N°Com]) AND ([commande].[operation]=[facture].[operat])) LEFT JOINInstance ON [facture].[N°OT]=[Instance].[N°OT];
Les Tables:
- Commande ( Dept, Operation, N°com, Date_recp, Date_trans, Date_aff, Centre, Client, Fournisseur, Design_mat, Confir, Date_confir, Obser )
- Facture ( N°Fact, Date_Fact, Montant, Devise, Nbr_Colis, Poids, Trans,Moy, Date_arriv, N°Avis, Doc,N°Doc,N°OT,Date_OT, Sit )
- Instance ( N°Inst, Date_inst, N°Ordre, Obser2 )
dans le code ca marche pas:
dim rsttous As New ADODB.recordset dim cnx As New ADODB.Connection dim sSQL as string
sSQL= "SELECT * from requete(larequete en haut) where Département<>''"
rsttous.Open sSQL, cnx, adOpenDynamic, adLockOptimistic
ca se plante et me donne une erreur (comme si il ne connais pas la requete)
merci de votre aide
|
|
lundi 20 mars 2006 à 13:42:31 |
Re : requete qui marche sur access mais pas sur vb ???

rvblog
|
Salut Rachidos001,
je crois que le contenu du message d'erreur peut être utile si tu veux que quelqu'un cherche, sinon, il y trop de réponses possibles. En plus, quand tu dis requete(larequete en haut) , j'imagine que c'est juste une façon rapide de nous l'écrire, hein? (confirmes, stp, sinon je me pends à mon fil de souris)
rvblogn
|
|
lundi 20 mars 2006 à 14:43:47 |
Re : requete qui marche sur access mais pas sur vb ???

rachidos001
|
t'as raison mon ami 1- l'erreur c'est "cette operation n'est pas autorisé si l'objet est fermer" comme s'il connait pas la requete
2-voila la ligne a couriger sSQL= "SELECT [Dept] AS Département, [Operation] AS Opération, [commande].[N°com] AS N°Commande, [Date_recp] AS [Date Récp], [Date_trans] AS [Date Trans], [Date_aff] AS [Date Aff], [Centre], [Client], [Fournisseur], [Design_mat] AS Désignation, [Confir] AS Confirmation, [Date_confir] AS [Date Confirm], [Obser] AS Observation1, [N°Fact] AS N°Facture, [Date_Fact] AS [Date Fact], [Montant], [Devise], [Nbr_Colis] AS [Nbr Colis], [Poids], [Trans] AS Transporteur, [Moy] AS Moyen, [Date_arriv] AS [Date Arrivée], [N°Avis], [Doc] AS [Document Joint], [N°Doc], [facture].[N°OT] AS N°OT, [Date_OT] AS [Date OT], [Sit] AS Transitaire, [N°Inst] AS N°Instance, [Date_inst] AS [Date Instance], [N°Ordre] AS N°Assurance, [Obser2] AS Observation2 FROM (commandeLEFT JOINfacture ON ([commande].[N°com]=[facture].[N°Com]) AND ([commande].[operation]=[facture].[operat])) LEFT JOINInstance ON [facture].[N°OT]=[Instance].[N°OT] where Département<>''""
merci encore pour votre aide
|
|
lundi 20 mars 2006 à 14:59:19 |
Re : requete qui marche sur access mais pas sur vb ???

rvblog
|
Réponse acceptée !
Bon,
je vais être bref (c'est parfois plus efficace). Mais à mon avis, dans l'ordre :
- tu utilises la variable cnx , assures-toi que la connection à laquelle elle fait référence est ouverte (cnx.Open (blabla, blabla), ou cnx.provider = blalbla, ou cnx.stringconnection =...). Il y a plein de méthodes, il en existe pas mal d'exemples sur ce site. - idem pour la variable rsttous , il faut que tu lui dises à quelle connection elle est rattachée (pareil, tu trouveras facilement des exemples ici). - enfin, pour la ligne que tu as corrigée, au début, tu avais écris Département <> '' (double apostrophe), c'était bon, mais attention, dans la correction, il me semble que tu as mis Département <> "" (double guillemets), et ça, c'est pas bon!
Mais les 2 premières doivent être les bonnes (ce qui ne veut pas dire qu'il n'y aura pas d'autres erreurs)
PS: au fait, maintenant qu'on se connait, on peux se tutoyer! :)
rvblogn
|
|
lundi 20 mars 2006 à 14:59:24 |
Re : requete qui marche sur access mais pas sur vb ???

PhilocheMan
|
Euhhhhh... Ta ligne : rsttous.Open sSQL, cnx, adOpenDynamic, adLockOptimistic ouvre ton recordset... mais ta connection cnx, tu l'ouvres quand ??? Ca ne métonnerait pas qu'un oubli de ce genre te génère le message d'erreur que tu nous donnes...

|
|
lundi 20 mars 2006 à 18:52:59 |
Re : requete qui marche sur access mais pas sur vb ???

rachidos001
|
Réponse acceptée !
pour la connection je l'ouvre au debut de louverture de l'application et je la ferme que lorsque je veux la quitter
|
|
mardi 21 mars 2006 à 08:57:16 |
Re : requete qui marche sur access mais pas sur vb ???

rvblog
|
Salut Rachidos01,
désolé, j'écris trop vite, le recordset est bien rattaché à ta connexion. En revanche, tu écris "dim cnx As New ADODB.Connection", et cela crée une nouvelle instance de connection, non ouverte. Dans les conditions de ce que tu viens de dire, enlèves la redéclaration de cnx si elle est globale, ou, si elle n'est pas globale, garde la déclaration, mais enlève l'opérateur New et écrit : Set cnx = MaConnetionGlobale Qu'en penses-tu? rvblogn
|
|
mardi 21 mars 2006 à 09:55:58 |
Re : requete qui marche sur access mais pas sur vb ???

rachidos001
|
bonjour, je m'excuse pour cette question mais pour ma connection je la declare comme suite dans un module: Global cnx as new adodb.connection je vois pas quel est la relation entre la declaration de la connection et ma requete,car requete marche bien si je l'appelle depuis mon code mais si je l'ecris dans code ca marche pas je pense que les requete de jointure de type "left join et right join "ne marche pas dans le code mais je vais essayer comme meme ton truc merci
|
|
mardi 21 mars 2006 à 10:55:52 |
Re : requete qui marche sur access mais pas sur vb ???

rvblog
|
Réponse acceptée !
Eh Rachidos01,
je suis un peu lourd, je sais, mais je suis méthodique (je le pense très fortement) quand je vais pas trop vite. Ta requête, sans porter de jugement trop abrupte, elle fait peur, je ne l'ai même pas déchiffrée (j'essaie d'être honnête avec toi), j'aime pas les requêtes au format Access (sauf éventuellement, dans Access). C'est particulièrement illisible une requête Access (à part peut-être une requete SELECT * FROM MACHIN), surtout quand c'est une requête dense, comme la tienne. Mais je la déchiffreras volontiers, quand je serais sûr (et je pèse mes mots) que le code qui encapsule l'exécution de cette requête est correct. Et ce n'est pas le cas. Ton message d'erreur ne dit pas un truc du genre "je ne comprends la requête" ou "le signe [ est interdit" ou "l'objet n'implémente pas la méthode LEFT JOIN"! Il dit "cette operation n'est pas autorisée si l'objet est fermé". Je crois intimement qu'il te signale qu'il existe un problème au niveau des objets (VB) que tu utilises pour exécuter ta requête. Si tu regardes précisément où survient ton message d'erreur, tu es en droit de te dire "il me signale peut-être qu'il ne pourra pas à exécuter la méthode .Open de l'objet rsttous parceque, peut-être, la connection n'est pas valide!"
Et franchement, si nous lisons le code que tu nous présentes, avec tes explications, nous pouvons penser la même chose (que la communauté me bannisse si je me trompe).
Tu as le droit de déclarer une variable globale cnx as New ADODB.Connection dans un module, d'appeler sa méthode .Open à un autre endroit pour l'ouvrir (puisqu'elle est globale). Mais VB est souple, et il te laisse aussi le droit de déclarer une autre variable cnx (du même nom donc), mais locale à une procédure. ATTENTION, ce n'est pas la même que la globale, elle ne point pas du tout vers la même instance.
On se comprend peut-être pas, car il nous manque des précisions (corriges nous si on se trompe). La déclaration Global cnx as new adodb.connection est dans un module. Ailleurs, une procédure s'occupe d'appeler la méthode .Open (avec les bons arguments) de cette cnx. Encore plus loin, une autre procédure (le bout de code que tu nous a fourni en 1er) s'occupe de créer un recordset rattaché à cette cnx.
Si c'est le cas, dans cette dernière procédure, tu as re-déclaré une variable cnx, de type ADODB.Connection, tu l'as instanciée (nouvelle instance complètement différente de la première, dont la visibilité est limitée à la procédure) en utilisant l'opérateur New (c'est une référence d'instanciation implicite à la déclaration, cad, en une ligne, tu déclares, tu instancies et tu affectes la référence de l'instance à ta variable). Tout de suite après, tu crées ton recordset. Mais la connection locale cnx n'est pas ouverte!
allez, assures déjà le code, et je serais curieux de savoir si cette requête (digne des requêtes de l'ONU) fonctionne ou pas :) à+
rvblogn
|
|
mercredi 22 mars 2006 à 10:13:54 |
Re : requete qui marche sur access mais pas sur vb ???

rachidos001
|
merci a vous tous mes amis j'ai fait une tit verification grace a vous suggestion je suis arrivée a resoudre le probleme dans la form_load et la procedure qui contient la requete merci de votre aide et vive l'amitie a+
|
|
Cette discussion est classée dans : date, commande, requete, facture, ot
Répondre à ce message
Sujets en rapport avec ce message
pb requete avec group by [ par teuteu_ ]
bonjour, j'ai un probleme avec une requete: j'ai deux tables T_commande et T_ligne_commande: T_commande(num_cde,date_cde,frais_port) T_ligne_command
probleme de requete (avec la date) [ par oxram ]
Bonjourmon probleme est que cette ne requete ne fonctionne pas sous access 97 avec visual basic 6 :TxtDateDebMob.Text = 01/02/2005SELECT SEMAINE.DATED
probleme de requete (avec la date) [ par oxram ]
Bonjourmon probleme est que cette ne requete ne fonctionne pas sous access 97 avec visual basic 6 :TxtDateDebMob.Text = 01/02/2005SELECT SEMAINE.DATED
probleme de variable date dans une requete dans une base de type sql serveur [ par samourai_alex ]
G un problème avec des requete SQL effectuée grace à un recordset sous vb6.0 et sous une base de type sql serveur (pervasive sql pour ceux qui connais
Parametres Access [ par ghans ]
Bonjour,Voici le probleme :j'ai une base access, dans laquel j'ai une requete dont un champ prend un parametre du style : Date=[Formulaires]![Cho
date mysql [ par ostelen__ ]
Hello, Je travail actuellement sur un logiciel en C# avec une BdD Mysql (easyphp) Le probleme concerne la requete suivante: "Select DATE_FORMAT(dat
probleme de requete avec ma date [ par oxram ]
Bonjourmon probleme est que cette ne requete ne fonctionne pas sous access 97 avec visual basic 6 :TxtDateDebMob.Text = 01/02/2005SELECT SEMAINE.DATED
comment creer une requete paramettrée [ par h_adil ]
bonjour, j'ai creé une requette sur access, dans cette requete il ya les informations suivantes un numero automatique, non de la tache, date debut, et
problème de requete [ par h_adil ]
j'ai une requete tache : N° tache, date debut, date finje veut afficher dans cette requete toutes les enregistrements des taches qui sont compris entr
Requete selection, ... [ par lrost ]
Je souhaite faire une selection avec comme filtre le contenue d'une combobox, voila la ligne que je saisie, mais ca marche pas !!!!rs_base.Open ("SELE
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|