begin process at 2012 02 15 04:06:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

requete qui marche sur access mais pas sur vb ???


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Membre Club
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

Membre Club
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

Membre Club
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

Membre Club
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+

1 2

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,794 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales