Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access

VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.

Réponse
 
Outils de la discussion
Vieux 01/09/2008, 19h22   #1 (permalink)
Membre régulier
 
Date d'inscription: octobre 2006
Messages: 129
Par défaut ouvrir une requete en mode sql via vba

Bonjour,


Je souhaiterais ouvrir une requête via vba pour en modifier le sql (j'ai des trentaines de requête à modifier).Est-il possible de le faire?
par ailleurs, existe-il une fonction "replace" pour remplacer des mots dans le code sql ?

merci
moimemessssssssss est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/09/2008, 19h44   #2 (permalink)
Rédacteur
 
Avatar de LedZeppII
 
Date d'inscription: décembre 2005
Localisation: IdF
Messages: 2 159
Par défaut

Bonjour,

regarde du côté de l'objet QueryDef de la bibliothèque DAO.
Tu as un exemple ici : 4.7.4.2. Modifier le code d'une requête
La propriété SQL de l'objet QueryDef permet de lire ou de définir le code SQL de la requête.

La fonction Replace depuis d'Access 2000 et permet d'effectuer le remplacement d'une sous-chaîne de caractère par une autre.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/09/2008, 20h17   #3 (permalink)
Membre régulier
 
Date d'inscription: octobre 2006
Messages: 129
Par défaut

bonjour,
merci de votre aide

j'ai repris le debut du code dans le lien que j'ai modifié


Code :
 
 
Public Function ModifierSQL(oBaseDeDonnees As DAO.Database, _
  strNomRequete As String, strCodeSQL As String) As Boolean
Dim oQdf As DAO.QueryDef
 
Set oQdf = oBaseDeDonnees.QueryDefs("rnom")
 
oQdf.SQL = replace(sql,"name",namenew")
 
ou name est le nom de l'ancienne table et namenew le nom de la nouvelle table

une erreur survient sur le "replace"


savez vous pourquoi?
merci
moimemessssssssss est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/09/2008, 11h43   #4 (permalink)
Membre Confirmé
 
Avatar de tribaleur
 
Date d'inscription: mai 2006
Localisation: Annecy
Âge: 23
Messages: 297
Par défaut

Bonjour.

A la ligne :
Code :
oQdf.SQL = replace(sql,"name",namenew")
namenew est mal entouré de double cote. Ecris plutôt ça :
Code :
oQdf.SQL = replace(sql,"name","namenew")
__________________
L'informatique :
-Dans la théorie ça fonctionne pas et on sait pourquoi!!!
-Dans la pratique ça fonctionne pas et on sait pas pourquoi!!!
-En réalité ça fonctionne et on sait pas pourquoi!!!...
...

Un petit lien utile pour les utilisateurs d'ASP et VBscript :
http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 00h21.