OVH Cloud OVH Cloud

[acc 2003] openrecordset

15 réponses
Avatar
Patrick
Bonjour à tous et toutes

sur un formulaire, j'ai un champ texte nommé REQUETE qui contient le nom
d'une requete existante dans la base, un autre champ DOCUMENT qui contient
le nom d'un document Word à ouvrir (avec son chemin absolu)

sur un bouton je lance un traitement et je souhaite ouvrir le recordset avec
:
Set Rs = Db.OpenRecordset(Me.REQUETE.)
celà ne fonctionne pas, en débug j'ai Rs =<<nothing>>
si je met :
Set Rs = Db.OpenRecordset(Me.REQUETE.Value)................. pas mieux
par contre
Set Rs = Db.OpenRecordset("LE_NOM_DE_MA_REQUETTE_EN_DUR") ca fonctionne
!

En fait je souhaiterais lancer un document word qui selon le choix sur 3
listes déroulantes est différent avec une requete source différente qui me
permet de passer les paramètres à word avec un truc du style :
Rs.MoveFirst
With W_App
.Visible = True
Do While Not Rs.EOF
.Documents.Open (DOCUMENT)
.ActiveDocument.Bookmarks("nom").Select
.Selection.InsertAfter Rs.Fields("nom")
.ActiveDocument.Bookmarks("adresse_1").Select
.Selection.InsertAfter Rs.Fields("adresse 1")
.ActiveDocument.Bookmarks("adresse_2").Select
.Selection.InsertAfter Rs.Fields("adresse 2")
.ActiveDocument.Bookmarks("code_postal").Select
.Selection.InsertAfter Rs.Fields("code postal")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Rs.Fields("ville")
'.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rs.MoveNext
Loop
Rs.Close

Je pourrais gérer celà avec un MONSQL = "select etc...", mais trop lour,
j'ai 15 puissance 2 possibilité de combinaisons entre
les courrier différents et les destinataires différents LOURD!!!!

et je ne peux pas traiter celà à partir de Word, l'appli tourne en réseau
avec des plateformes différentes et des Word différents

Je cherche une astuce autour de OpenRecordset

merci par avance de vos lumières ou de vos pistes

Cordialement
Patrick

10 réponses

1 2
Avatar
Jessy Sempere [MVP]
Bonjour

Je pense que le problème vient du fait que tu as nommés ton champ Requete...

Je ne serais pas catégorique mais essais en le nommant autrement ?

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Patrick" a écrit dans le message news:

Bonjour à tous et toutes

sur un formulaire, j'ai un champ texte nommé REQUETE qui contient le nom
d'une requete existante dans la base, un autre champ DOCUMENT qui contient
le nom d'un document Word à ouvrir (avec son chemin absolu)

sur un bouton je lance un traitement et je souhaite ouvrir le recordset
avec

:
Set Rs = Db.OpenRecordset(Me.REQUETE.)
celà ne fonctionne pas, en débug j'ai Rs =<<nothing>>
si je met :
Set Rs = Db.OpenRecordset(Me.REQUETE.Value)................. pas mieux
par contre
Set Rs = Db.OpenRecordset("LE_NOM_DE_MA_REQUETTE_EN_DUR") ca
fonctionne

!

En fait je souhaiterais lancer un document word qui selon le choix sur 3
listes déroulantes est différent avec une requete source différente qui me
permet de passer les paramètres à word avec un truc du style :
Rs.MoveFirst
With W_App
.Visible = True
Do While Not Rs.EOF
.Documents.Open (DOCUMENT)
.ActiveDocument.Bookmarks("nom").Select
.Selection.InsertAfter Rs.Fields("nom")
.ActiveDocument.Bookmarks("adresse_1").Select
.Selection.InsertAfter Rs.Fields("adresse 1")
.ActiveDocument.Bookmarks("adresse_2").Select
.Selection.InsertAfter Rs.Fields("adresse 2")
.ActiveDocument.Bookmarks("code_postal").Select
.Selection.InsertAfter Rs.Fields("code postal")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Rs.Fields("ville")
'.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rs.MoveNext
Loop
Rs.Close

Je pourrais gérer celà avec un MONSQL = "select etc...", mais trop lour,
j'ai 15 puissance 2 possibilité de combinaisons entre
les courrier différents et les destinataires différents LOURD!!!!

et je ne peux pas traiter celà à partir de Word, l'appli tourne en réseau
avec des plateformes différentes et des Word différents

Je cherche une astuce autour de OpenRecordset

merci par avance de vos lumières ou de vos pistes

Cordialement
Patrick




Avatar
Patrick
Merci Jessy,

J'ai renommé, mais pas plus de succès !!!

dans l'aide d'access, il est dit que

Set recordset = object.OpenRecordset (source, type, options, lockedits)

source Donnée de type String indiquant la source des enregistrements
du nouvel objet Recordset. Il peut s'agir du nom d'une table, d'une requête
ou d'une instruction SQL qui renvoie des enregistrements. Dans le cas
d'objets Recordset de type Table figurant dans les bases de données
Microsoft Jet, la source ne peut être qu'un nom de table.


"Jessy Sempere [MVP]" a écrit dans le message de
news: ckgnae$7kd$
Bonjour

Je pense que le problème vient du fait que tu as nommés ton champ
Requete...

Je ne serais pas catégorique mais essais en le nommant autrement ?

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Patrick" a écrit dans le message news:

Bonjour à tous et toutes

sur un formulaire, j'ai un champ texte nommé REQUETE qui contient le nom
d'une requete existante dans la base, un autre champ DOCUMENT qui
contient
le nom d'un document Word à ouvrir (avec son chemin absolu)

sur un bouton je lance un traitement et je souhaite ouvrir le recordset
avec

:
Set Rs = Db.OpenRecordset(Me.REQUETE.)
celà ne fonctionne pas, en débug j'ai Rs =<<nothing>>
si je met :
Set Rs = Db.OpenRecordset(Me.REQUETE.Value)................. pas
mieux
par contre
Set Rs = Db.OpenRecordset("LE_NOM_DE_MA_REQUETTE_EN_DUR") ca
fonctionne

!

En fait je souhaiterais lancer un document word qui selon le choix sur 3
listes déroulantes est différent avec une requete source différente qui
me
permet de passer les paramètres à word avec un truc du style :
Rs.MoveFirst
With W_App
.Visible = True
Do While Not Rs.EOF
.Documents.Open (DOCUMENT)
.ActiveDocument.Bookmarks("nom").Select
.Selection.InsertAfter Rs.Fields("nom")
.ActiveDocument.Bookmarks("adresse_1").Select
.Selection.InsertAfter Rs.Fields("adresse 1")
.ActiveDocument.Bookmarks("adresse_2").Select
.Selection.InsertAfter Rs.Fields("adresse 2")
.ActiveDocument.Bookmarks("code_postal").Select
.Selection.InsertAfter Rs.Fields("code postal")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Rs.Fields("ville")
'.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rs.MoveNext
Loop
Rs.Close

Je pourrais gérer celà avec un MONSQL = "select etc...", mais trop lour,
j'ai 15 puissance 2 possibilité de combinaisons entre
les courrier différents et les destinataires différents LOURD!!!!

et je ne peux pas traiter celà à partir de Word, l'appli tourne en réseau
avec des plateformes différentes et des Word différents

Je cherche une astuce autour de OpenRecordset

merci par avance de vos lumières ou de vos pistes

Cordialement
Patrick








Avatar
Jessy Sempere [MVP]
Re,

Ce qui est le plus étonnant c'est qu'en dure ça ne pose pas de problème...

Tu déclares bien ton rs :

dim rs as dao.recordset

sinon essais peut-être :

set rs = db.openrecordset (me.requete, dbopendynaset)

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Patrick" a écrit dans le message news:

Merci Jessy,

J'ai renommé, mais pas plus de succès !!!

dans l'aide d'access, il est dit que

Set recordset = object.OpenRecordset (source, type, options, lockedits)

source Donnée de type String indiquant la source des enregistrements
du nouvel objet Recordset. Il peut s'agir du nom d'une table, d'une
requête

ou d'une instruction SQL qui renvoie des enregistrements. Dans le cas
d'objets Recordset de type Table figurant dans les bases de données
Microsoft Jet, la source ne peut être qu'un nom de table.


"Jessy Sempere [MVP]" a écrit dans le message
de

news: ckgnae$7kd$
Bonjour

Je pense que le problème vient du fait que tu as nommés ton champ
Requete...

Je ne serais pas catégorique mais essais en le nommant autrement ?

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Patrick" a écrit dans le message news:

Bonjour à tous et toutes

sur un formulaire, j'ai un champ texte nommé REQUETE qui contient le
nom



d'une requete existante dans la base, un autre champ DOCUMENT qui
contient
le nom d'un document Word à ouvrir (avec son chemin absolu)

sur un bouton je lance un traitement et je souhaite ouvrir le recordset
avec

:
Set Rs = Db.OpenRecordset(Me.REQUETE.)
celà ne fonctionne pas, en débug j'ai Rs =<<nothing>>
si je met :
Set Rs = Db.OpenRecordset(Me.REQUETE.Value)................. pas
mieux
par contre
Set Rs = Db.OpenRecordset("LE_NOM_DE_MA_REQUETTE_EN_DUR") ca
fonctionne

!

En fait je souhaiterais lancer un document word qui selon le choix sur
3



listes déroulantes est différent avec une requete source différente qui
me
permet de passer les paramètres à word avec un truc du style :
Rs.MoveFirst
With W_App
.Visible = True
Do While Not Rs.EOF
.Documents.Open (DOCUMENT)
.ActiveDocument.Bookmarks("nom").Select
.Selection.InsertAfter Rs.Fields("nom")
.ActiveDocument.Bookmarks("adresse_1").Select
.Selection.InsertAfter Rs.Fields("adresse 1")
.ActiveDocument.Bookmarks("adresse_2").Select
.Selection.InsertAfter Rs.Fields("adresse 2")
.ActiveDocument.Bookmarks("code_postal").Select
.Selection.InsertAfter Rs.Fields("code postal")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Rs.Fields("ville")
'.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rs.MoveNext
Loop
Rs.Close

Je pourrais gérer celà avec un MONSQL = "select etc...", mais trop
lour,



j'ai 15 puissance 2 possibilité de combinaisons entre
les courrier différents et les destinataires différents LOURD!!!!

et je ne peux pas traiter celà à partir de Word, l'appli tourne en
réseau



avec des plateformes différentes et des Word différents

Je cherche une astuce autour de OpenRecordset

merci par avance de vos lumières ou de vos pistes

Cordialement
Patrick












Avatar
Jessy Sempere [MVP]
Non...

Tu peux tout à fait passer par une variable pour renseigner la source
de ton recordset

Essais peut-être de passer par une variable string :

dim strRst as string
strrst = me.requete
set rs = db.openrecordset (strRst)
--

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Patrick" a écrit dans le message news:

J'ai envoyer trop vite OUPS!!!
je disais...
Merci Jessy,

J'ai renommé, mais pas plus de succès !!!

dans l'aide d'access, il est dit que

Set recordset = object.OpenRecordset (source, type, options, lockedits)

source : Donnée de type String indiquant la source des enregistrements
du nouvel objet Recordset. Il peut s'agir du nom d'une table, d'une
requête

ou d'une instruction SQL qui renvoie des enregistrements.

Je crains qu'au niveau syntaxe il n'est possible que de taper le nom en
dur

de la source ???

Qu'en penses-tu ?

Patrick




Avatar
Patrick
J'ai envoyer trop vite OUPS!!!
je disais...
Merci Jessy,

J'ai renommé, mais pas plus de succès !!!

dans l'aide d'access, il est dit que

Set recordset = object.OpenRecordset (source, type, options, lockedits)

source : Donnée de type String indiquant la source des enregistrements
du nouvel objet Recordset. Il peut s'agir du nom d'une table, d'une requête
ou d'une instruction SQL qui renvoie des enregistrements.

Je crains qu'au niveau syntaxe il n'est possible que de taper le nom en dur
de la source ???

Qu'en penses-tu ?

Patrick
Avatar
Raymond [mvp]
Bonjour Jessy.

Le point après requêtte c'est une faute de frappe ?

Set Rs = Db.OpenRecordset(Me.REQUETE.)


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message de
news: ckgonj$8bb$
Non...

Tu peux tout à fait passer par une variable pour renseigner la source
de ton recordset

Essais peut-être de passer par une variable string :

dim strRst as string
strrst = me.requete
set rs = db.openrecordset (strRst)
--

@+
Jessy Sempere - Access MVP


Avatar
Jessy Sempere [MVP]
Salut Raymond

Je pense effectivement que c'est une faute de frappe vu qu'il a aussi
essayer :

me.requete.value

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]" a écrit dans le message news:
#
Bonjour Jessy.

Le point après requêtte c'est une faute de frappe ?

Set Rs = Db.OpenRecordset(Me.REQUETE.)


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message
de

news: ckgonj$8bb$
Non...

Tu peux tout à fait passer par une variable pour renseigner la source
de ton recordset

Essais peut-être de passer par une variable string :

dim strRst as string
strrst = me.requete
set rs = db.openrecordset (strRst)
--

@+
Jessy Sempere - Access MVP






Avatar
Patrick
re, jessy

non ca coince, j'ai bien déclaré mon rs et en ajoutant dbopendynaset
pas plus de succès.....

la syntaxe de OpenRecordset doit exiger un string et non pas la valeur d'un
champ
je ne vois que ça !

Je vais peut être m'orienter vers une table temporaire ??

merci encore
@+
Patrick

"Jessy Sempere [MVP]" a écrit dans le message de
news: ckgok1$8ai$
Re,

Ce qui est le plus étonnant c'est qu'en dure ça ne pose pas de problème...

Tu déclares bien ton rs :

dim rs as dao.recordset

sinon essais peut-être :

set rs = db.openrecordset (me.requete, dbopendynaset)

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Patrick" a écrit dans le message news:

Merci Jessy,

J'ai renommé, mais pas plus de succès !!!

dans l'aide d'access, il est dit que

Set recordset = object.OpenRecordset (source, type, options, lockedits)

source Donnée de type String indiquant la source des
enregistrements
du nouvel objet Recordset. Il peut s'agir du nom d'une table, d'une
requête

ou d'une instruction SQL qui renvoie des enregistrements. Dans le cas
d'objets Recordset de type Table figurant dans les bases de données
Microsoft Jet, la source ne peut être qu'un nom de table.


"Jessy Sempere [MVP]" a écrit dans le message
de

news: ckgnae$7kd$
Bonjour

Je pense que le problème vient du fait que tu as nommés ton champ
Requete...

Je ne serais pas catégorique mais essais en le nommant autrement ?

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Patrick" a écrit dans le message news:

Bonjour à tous et toutes

sur un formulaire, j'ai un champ texte nommé REQUETE qui contient le
nom



d'une requete existante dans la base, un autre champ DOCUMENT qui
contient
le nom d'un document Word à ouvrir (avec son chemin absolu)

sur un bouton je lance un traitement et je souhaite ouvrir le
recordset
avec

:
Set Rs = Db.OpenRecordset(Me.REQUETE.)
celà ne fonctionne pas, en débug j'ai Rs =<<nothing>>
si je met :
Set Rs = Db.OpenRecordset(Me.REQUETE.Value)................. pas
mieux
par contre
Set Rs = Db.OpenRecordset("LE_NOM_DE_MA_REQUETTE_EN_DUR") ca
fonctionne

!

En fait je souhaiterais lancer un document word qui selon le choix sur
3



listes déroulantes est différent avec une requete source différente
qui
me
permet de passer les paramètres à word avec un truc du style :
Rs.MoveFirst
With W_App
.Visible = True
Do While Not Rs.EOF
.Documents.Open (DOCUMENT)
.ActiveDocument.Bookmarks("nom").Select
.Selection.InsertAfter Rs.Fields("nom")
.ActiveDocument.Bookmarks("adresse_1").Select
.Selection.InsertAfter Rs.Fields("adresse 1")
.ActiveDocument.Bookmarks("adresse_2").Select
.Selection.InsertAfter Rs.Fields("adresse 2")
.ActiveDocument.Bookmarks("code_postal").Select
.Selection.InsertAfter Rs.Fields("code postal")
.ActiveDocument.Bookmarks("ville").Select
.Selection.InsertAfter Rs.Fields("ville")
'.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
Rs.MoveNext
Loop
Rs.Close

Je pourrais gérer celà avec un MONSQL = "select etc...", mais trop
lour,



j'ai 15 puissance 2 possibilité de combinaisons entre
les courrier différents et les destinataires différents LOURD!!!!

et je ne peux pas traiter celà à partir de Word, l'appli tourne en
réseau



avec des plateformes différentes et des Word différents

Je cherche une astuce autour de OpenRecordset

merci par avance de vos lumières ou de vos pistes

Cordialement
Patrick
















Avatar
Patrick
désolé je begaye du clavier ;-P

je teste tout je vous tiens au courant

"Jessy Sempere [MVP]" a écrit dans le message de
news: ckgpf7$8mn$
Salut Raymond

Je pense effectivement que c'est une faute de frappe vu qu'il a aussi
essayer :

me.requete.value

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]" a écrit dans le message news:
#
Bonjour Jessy.

Le point après requêtte c'est une faute de frappe ?

Set Rs = Db.OpenRecordset(Me.REQUETE.)


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message
de

news: ckgonj$8bb$
Non...

Tu peux tout à fait passer par une variable pour renseigner la source
de ton recordset

Essais peut-être de passer par une variable string :

dim strRst as string
strrst = me.requete
set rs = db.openrecordset (strRst)
--

@+
Jessy Sempere - Access MVP










Avatar
Ilan
Bonjour Patrick,

il n'y aurait pas des caracteres espaces supplementaires dans le contenu du
controle REQUETE.

En clair, il semble simplement que REQUETE ne contienne pas le nom d'une
requete ou d'une table existante.

"Patrick" wrote:

désolé je begaye du clavier ;-P

je teste tout je vous tiens au courant

"Jessy Sempere [MVP]" a écrit dans le message de
news: ckgpf7$8mn$
Salut Raymond

Je pense effectivement que c'est une faute de frappe vu qu'il a aussi
essayer :

me.requete.value

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Raymond [mvp]" a écrit dans le message news:
#
Bonjour Jessy.

Le point après requêtte c'est une faute de frappe ?

Set Rs = Db.OpenRecordset(Me.REQUETE.)


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jessy Sempere [MVP]" a écrit dans le message
de

news: ckgonj$8bb$
Non...

Tu peux tout à fait passer par une variable pour renseigner la source
de ton recordset

Essais peut-être de passer par une variable string :

dim strRst as string
strrst = me.requete
set rs = db.openrecordset (strRst)
--

@+
Jessy Sempere - Access MVP















1 2