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
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|