Modifier requete avec ado

m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012 - 3 févr. 2004 à 20:08
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 - 4 févr. 2004 à 14:00
Salut à tous,
j'ai une requete dans une base access 2000
je souhaite modifier la requete à l'aide d'ADO (je pense qu'il sagit de la commande Command)

L'equivalent avec DAO était l'Objet QueryDefs.

un exemple en DAO de se que je soutaite faire.

Dim db As Database
Dim QdfRequete As QueryDef
Set db = OpenDatabase(Chemin & "documents")
Set QdfRequete = db.OpenQueryDef(NomRequete) ' ancien
Set QdfRequete = db.QueryDefs(NomRequete) ' Nouveau
QdfRequete.sql = ChaineSQL

merci

9 réponses

cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
3 févr. 2004 à 21:03
labout

Ayant longtemps cherché partout je n'ai pas reussi à récupérer les requetes ACCESS avec l'ADO.
Pour une appli avec ADO j'ai du utiliser le DAO pour cela.

C'est psossble avec SQL Server mais avec Accessz on ne peut exécuter de requete sur les tables system.

Avec VB.NET c'est psssible quoiqu'il ne voit pas toutes les requètes. Mêmes 2 requetes identiques, il en verra une et pas l'autre. C'est très mystérieux.

Désolé de n'avoir pa pu t'aider davantage.

@+
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
3 févr. 2004 à 21:24
Merci labout,

Me suis je bien fait comprendre (comment est ce possible avec DAO et pas avec ADO ?)?

j'ai une requete stocké dans ma base MDB.
Cette requete est formulé de la maniere suivante :
soit une requete : reqTest =

"Select * from matable where toto like 'Machin*'"

Je souhaite modifier le contenu de ma requete.
comme ceci :

"Select * from matable where toto like 'bidule*'"

Vous me dites que ce n'est pas possible, Ce serait pour moi une CATASTROPHE, je viens de modifier mon programme de gestion vers access 2000.

Je crois savoir que les requetes contenues dans Access sont des Vues.
Il semblerait que c'est l'Objet Command qui devrait prendre le relai de l'Objet QueryDef.
Voilà à peu près mes connaissances sur le sujet.

J'espère qu'il y'a une solution, sinon c'est un cataclysme.
Je n'ose imaginer que microsoft est commit cette boulette.

@+
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
3 févr. 2004 à 21:37
labout
je ne comprends plus car tu as la réponse
Dim db As Database
Dim QdfRequete As QueryDef
Set db = OpenDatabase(Chemin & "documents")
Set QdfRequete = db.OpenQueryDef(NomRequete) ' ancien
Set QdfRequete = db.QueryDefs(NomRequete) ' Nouveau
QdfRequete.sql = ChaineSQL

Il suffit que dans ta requete Access
Select * from matable where toto like Condition

donc chaineSQL="Select * from matable where toto like Condition"
Dans ton code VB
scond=text1.text
ChaineSQL=replace(ChaineSQL("Condition",scond) & "*"

Moi j'avais des datededebut et datedefin
et je remplacais datedebut par la date saisie.

Une fois ta requete SQL crée tu n'a plus qu'afaire ton recordset ou passer le code dans Crystal s'il s'agit d'un état crystal
@+
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
3 févr. 2004 à 21:41
3 fois hélas, Access 2000 ne reconnait pas l'objet QueryDef.
(c'etait access 97).
Faut Obligatoirement remplacer le code DAO par un code ADO.

merci quand même.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
3 févr. 2004 à 23:14
labout
Si bien sur Acces2000 connait QueryDef en DAO
Je l'ai utilisé et je n'ai que Access2000.
Dim qdf As QueryDef

Set Db = OpenDatabase(base)
With Db
For Each qdf In .QueryDefs
etc
Next qdf
end wiith
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
3 févr. 2004 à 23:27
M2rTech,

Quelle référence Ado utilisez vous ?
car dans mon code il ne semble pas connaitre l'objet DB

j'ai essayer d'ajouter Microsoft Activex Data Objet 2.5 sans succes.
L'erreur est "Format de base de donnees inconnu"
il s'arrete sur l'erreur suivante :

Dim db As Database
Dim QdfRequete As QueryDef
Set db = OpenDatabase(Chemin & "documents") 'ICI
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
4 févr. 2004 à 10:30
labout
Dim db As Database
Set Db = OpenDatabase(base)
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
4 févr. 2004 à 13:53
Salut, et merci encore pour votre aide.

Regardez dans le menu Projet, Références, quelles sont les références à DAO qui sont utilisées. moi actuellement j'ai Microsoft DAO 2.5/3.51 et ça marche pas avec access 2000.

Si ça marche chez vous, une référence doit me manquer alors. laquelle ????
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
4 févr. 2004 à 14:00
labout
Microsoft DAO 3.6 fourni avec le pack 5 à télécharger chez microsoft 230 meg environ

A+
0
Rejoignez-nous