Lancer une requête ACCESS (2003) à partir d'un fichier Word

Résolu
Colquico7duSoir Messages postés 12 Date d'inscription samedi 10 septembre 2011 Statut Membre Dernière intervention 29 septembre 2011 - 29 sept. 2011 à 21:04
Colquico7duSoir Messages postés 12 Date d'inscription samedi 10 septembre 2011 Statut Membre Dernière intervention 29 septembre 2011 - 29 sept. 2011 à 22:08
Bonsoir à tous,

Question probablement basique: comment fait-on pour lancer avec VBA 6.3, une requête déja existant dans une base de données Access 2003 à partir d'un fichier Word (2003)?

J'ai créé une macro qui sélectionne le mot courant d'un fichier texte (où se trouve le caret) et qui renvoie la variable "sel" (sel As String) et désire trouver les enregistrements d'une table Access dont un des champs le renferme (code1).
J'ai créé une requête sélection Rechparcodebible2, non basée sur un formulaire, en rentrant comme paramètre de recherche "*"&sel&"*" dans le champ (code1). Ce champ est de type texte.

J'ai écrit ces quelques lignes:
-------------
Dim MonAccess As New Access.Application
MonAccess.OpenCurrentDatabase "D:\DossierA\BIBLE\bible2002.mdb"
MonAccess.Run "bible2002.Rechparcodebible2"

End Sub

La procédure me renvoie une erreur: "requête bible2002.Rechparcodebible2" introuvable.

Où fais-je une erreur?
Peut-on appeler de la sorte une requête?

Question connexe: la variable sel de type string dans Word peut-elle être acceptée dans le champ (code1) qui est de type texte dans Access?

Merci ++ à vous et bonne soirée

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 sept. 2011 à 21:45
Salut

Je ne connais pas cette technique d'utilisation des objets Access tel que tu le fais, j'utilise toujours ADODB pour me connecter au fichier de base de données mais pas à l'application de gestion de la base (Access).
Un point qui lui risque de poser problème : En supposant que la syntaxe utilisée "bible2002.Rechparcodebible2" soit correcte, le Run ne convient pas.
Ta requète est sensée recevoir des infos en contre partie : Où va t-elle les mettre ?
A mon avis, il te faut un RecordSet pour les stocker.
De plus, le Run que tu utilises semble s'adresser à l'application, mais pas à la base de données.
A approfondir.

Dernières choses :
- "*"&sel&"*" risque de ne pas fonctionner : Respecte les espaces devant et derrière les symboles & : "*" & sel & "*"
- Le caractère servant de "All" en SQL est le symbole % et pas *

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
Colquico7duSoir Messages postés 12 Date d'inscription samedi 10 septembre 2011 Statut Membre Dernière intervention 29 septembre 2011
29 sept. 2011 à 22:08
Merci infiniment,

je vais donc passer par ADODB ... qui me fait un peu peur, mais il y a assez d'exemples dans les livres et sur internet.

Très bonne soirée.

Et peut être à un autre jour sur le forum.
0
Rejoignez-nous