OVH Cloud OVH Cloud

Etat ACCESS 97

10 réponses
Avatar
jeorme
Bonjour

Je suis en ACCESS 97. Je voudrais savoir s'il est possible de lancer un état
avec VBA, mais qui ne soit pas rattaché à une table ou une requete mais dans
lequel je passerai des variables de mon programme.

10 réponses

Avatar
Benoit Compoint [MS]
Bonjour,

Vous pouvez effectivement imprimer un état en utilisant la méthode
OpenReport (objet DoCmd) sans que l'état soit basé sur une table ou une
requête.

Dans ce cas il souvent utile de passer vos variables à l'état en utilisant
le 6ème (et dernier) argument de la méthode OpenReport.
Vous pourrez accéder à ces variables dans une procédure événementielle
associée à l'état en utilisant la propriété OpenArgs de l'objet Me
correspondant à l'état. Vous pourrez imprimer ces valeurs dans une procédure
événementielle associée à l'état en utilisant la méthode Print de l'objet Me
correspondant à l'état.

Benoît Compoint

"jeorme" wrote in message
news:
Bonjour

Je suis en ACCESS 97. Je voudrais savoir s'il est possible de lancer un
état

avec VBA, mais qui ne soit pas rattaché à une table ou une requete mais
dans

lequel je passerai des variables de mon programme.





Avatar
3stone
Bonjour,

"Benoit Compoint [MS]"
Dans ce cas il souvent utile de passer vos variables à l'état en utilisant
le 6ème (et dernier) argument de la méthode OpenReport.


A partir de Access 2002...


associée à l'état en utilisant la propriété OpenArgs


mais pas pour Access 97 ou 2000


( l'objet parle de Access 97 ;-)


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
3stone
Salut,

"jeorme"
Je suis en ACCESS 97. Je voudrais savoir s'il est possible de lancer un état
avec VBA, mais qui ne soit pas rattaché à une table ou une requete mais dans
lequel je passerai des variables de mon programme.



Crée ton état comme un état normal, avec toutes les zones de texte souhaitées !

Le problème est de "passer" les valeurs dans ces zones de texte.
Soit, il en a peu, et tu peux éventuellement utiliser quelques variables publique.
Soit, les valeurs sont dans un formulaire... et, dans les zones de texte de l'état
tu indique les sources sont la facon :

= Forms!MonForm!MonTexte1


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
jeorme
Ok mais alors, comment je les passe à l'état .
Exemple:

MaVar1 = Me.form.moncotrol.value
MaVar2 = Recordset![monchamp]

ensuite je veux imprimer mon état avec ces deux variables:

docmd.openreport...... qu'est ce que je mets là.
Auriez vous un exemple de code ou pourriez vous completer mon exemple.

Merci


"3stone" a écrit dans le message news:
u#
Salut,

"jeorme"
Je suis en ACCESS 97. Je voudrais savoir s'il est possible de lancer un
état


avec VBA, mais qui ne soit pas rattaché à une table ou une requete mais
dans


lequel je passerai des variables de mon programme.



Crée ton état comme un état normal, avec toutes les zones de texte
souhaitées !


Le problème est de "passer" les valeurs dans ces zones de texte.
Soit, il en a peu, et tu peux éventuellement utiliser quelques variables
publique.

Soit, les valeurs sont dans un formulaire... et, dans les zones de texte
de l'état

tu indique les sources sont la facon :

= Forms!MonForm!MonTexte1


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------







Avatar
3stone
Salut,

"jeorme"
MaVar1 = Me.form.moncotrol.value
MaVar2 = Recordset![monchamp]

ensuite je veux imprimer mon état avec ces deux variables:

docmd.openreport...... qu'est ce que je mets là.
Auriez vous un exemple de code ou pourriez vous completer mon exemple.



Après ouverture de l'état tu récupère simplement...

MaZoneDeTexte = MaVarPublique



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
jeorme
Merci

Par contre c'est où qu'on déclare une variable PUBLIC pour y avoir accès
dans le formulaire et dans l'état.

Merci d'avance

"3stone" a écrit dans le message news:

Salut,

"jeorme"
MaVar1 = Me.form.moncotrol.value
MaVar2 = Recordset![monchamp]

ensuite je veux imprimer mon état avec ces deux variables:

docmd.openreport...... qu'est ce que je mets là.
Auriez vous un exemple de code ou pourriez vous completer mon exemple.



Après ouverture de l'état tu récupère simplement...

MaZoneDeTexte = MaVarPublique



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------







Avatar
3stone
re,

"jeorme"
Par contre c'est où qu'on déclare une variable PUBLIC pour y avoir accès
dans le formulaire et dans l'état.



Dans un module standard (onglet module)

Public strMaVav As String



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
jeorme
Ca y est , je recupère la variable mais à l'ouverture de l'état il me dit :

ERREUR 2448

Impossible d'attribuer une valeur à cet objet


C'est vrai que dans le code VBA si je fais

Me.MaZoneDeTexte il n'y a pas la possibilité de mettre .Value MaVarPublique

"3stone" a écrit dans le message news:

re,

"jeorme"
Par contre c'est où qu'on déclare une variable PUBLIC pour y avoir accès
dans le formulaire et dans l'état.



Dans un module standard (onglet module)

Public strMaVav As String



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------







Avatar
3stone
re,

"jeorme"
Ca y est , je recupère la variable mais à l'ouverture de l'état il me dit :

ERREUR 2448

Impossible d'attribuer une valeur à cet objet


C'est vrai que dans le code VBA si je fais

Me.MaZoneDeTexte il n'y a pas la possibilité de mettre .Value > MaVarPublique



Ou as tu mis ta ligne de code ?
As tu adapté à ton nom du contrôle ?


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------

Avatar
jeorme
Ca y est j'ai trouvé
J'ai créé un module dans l'onglet module, j'ai mis ma déclaration

Ensuite dans l'état, j'ai mis sur l'événement "au formatage" da la section
car à l'ouverture ça ne marchait pas mon code VBA

MonControle = MaVarPublique

Et ça marche.

J'ai donc une base SQLServer, avec un frontal access sans table attachée ,
ni requete. Mes recup d'infos se font à partir de recordset ou de parametres
OUTPUT dans des proc stockées (Ca c'était complexe à mettre en oeuvre).



"3stone" a écrit dans le message news:

re,

"jeorme"
Ca y est , je recupère la variable mais à l'ouverture de l'état il me
dit :



ERREUR 2448

Impossible d'attribuer une valeur à cet objet


C'est vrai que dans le code VBA si je fais

Me.MaZoneDeTexte il n'y a pas la possibilité de mettre .Value > > MaVarPublique



Ou as tu mis ta ligne de code ?
As tu adapté à ton nom du contrôle ?


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------