OVH Cloud OVH Cloud

ACCESS 2000/XP : perte variable au changement du ùode d'affichage du formulaire

4 réponses
Avatar
technique
Bonjour,

J'ai une bdd structurée comme suit :

- une table avec des caractéristiques d'outils
- une table d'interventions sur les outils
- les deux tables sont liées (un outil a une/plusieurs interventions)

J'ai un formulaire :
- qui affiche les caractéristiques des outils
- qui comporte un sous formulaire pour afficher les interventions
concernant l'outil.

Dans le sous-formulaire des interventions
- j'ai un variable qui définit le chemin de la bdd

Dans access 2000
Lorsque je passe de l'affichage de mode formulaire à mode feuille de
donnée sur le formulaire principal, la variable contenant le chemin de
la bdd remise à zéro (ne contient rien).

Dans acces XP,
La variable reste renseignée correctement lorsque on effectue le
changement de mode d'affichage.

Une idée pour résoudre ce problème (nous utilisons les deux versions
d'Access) ?


Merci d'avance,

Fabien

4 réponses

Avatar
Raymond [mvp]
Bonjour.

il vaudrait mieux se poser la question : pourquoi as-tu besoin du path de la
BDD dans une variable? est-ce le path de la base principale ou la path de la
base frontale ?

--
@+
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


"technique" a écrit dans le message de
news:
Bonjour,

J'ai une bdd structurée comme suit :

- une table avec des caractéristiques d'outils
- une table d'interventions sur les outils
- les deux tables sont liées (un outil a une/plusieurs interventions)

J'ai un formulaire :
- qui affiche les caractéristiques des outils
- qui comporte un sous formulaire pour afficher les interventions
concernant l'outil.

Dans le sous-formulaire des interventions
- j'ai un variable qui définit le chemin de la bdd

Dans access 2000
Lorsque je passe de l'affichage de mode formulaire à mode feuille de
donnée sur le formulaire principal, la variable contenant le chemin de
la bdd remise à zéro (ne contient rien).

Dans acces XP,
La variable reste renseignée correctement lorsque on effectue le
changement de mode d'affichage.

Une idée pour résoudre ce problème (nous utilisons les deux versions
d'Access) ?


Merci d'avance,

Fabien


Avatar
technique
Bonjour Raymond et les autres !

Ce n'est pas une base développée multi-utilisateur, c'est un fichier
mdb placé sur un serveur.

En fait j'ai dans le formulaire principal un sous-formulaire basé sur
http://access.seneque.free.fr/bases_exemples.htm n°38

J'ai donc besoin du path de la BDD dans un variable car :
- dans le sous formulaire interventions sur outillage il y a un schema
de l'intervention (une image) et je ne stocke que sont chemin d'accès
dans la bdd (voir mon autre post)
- elle me sert à definir le chemin, en relatif, du répertoire dans
lequel je vais stocker les images genre
chemin_schemas = chemin_bdd + nom_du_répertoire et pour le controle
qui affiche l'image : chemin_image = chemin_schemas + chemin_image par
exemple :
Serveurdatasaccessoutillagesimagesoutilln°1image.jpg --------------------------------- ------ -------------------
Chemin UNC de la bdd | |
| |
| -> partie du chemin stocké
| dans la bdd obtenu par
| dialogue openfile
|
-> répertoire de stockage
des images = constante
définie dans un sub

Je souhaite stocker le chemin du schema en relatif par rapport à la
bdd pour faciliter la maintenance (exemple je veux déplacer ma bdd)
- ca me sert aussi à transformer le chemin qui est basée sur un
lecteur réseau k: en chemin UNC, afin d'éviter les problèmes de
connexion du lecteur réseau (délai notament).

Pour resserer le diagnostique, en fait c'est toutes les variables qui
sont remise à zéro quelque soit la manière dont elles sont définis :
- toto = "test"
- titi = CurrentProject.Path
Lorsque je procède ainsi :
1) ouverture du formulaire principal (mode formulaire par défaut)
2) passage en mode feuille de donnée
3) sélection d'un enregistrement
4) passage en mode formulaire
Autre info : je défini les chemins dans la procédure Form_Load() du
sous-formulaire (je suis en train de me demander si je ne devrais pas
le faire dans le formuaire principal, mais comment transmettre les
variables du formulaire principal afin que le sous-formulaire puisse
les utiliser(déclaration Piublic dans un module ?))

Dans access Xp ca marche sans probleme. Dans Access 2000, les
variables sont remises à zero (j'ai mis des MsgBox avant et après
chaque sub et chaque modification de variable).

Pour l'instant, j'ai contourné le problème en écrivant une sub
définissant les chemins que j'appelle dans les sous-routines générant
la raz des variables dans access 2000 lors des 4 étapes ci-dessus.

En espérant avoir été clair :-)

@+

Fabien


"Raymond [mvp]" wrote in message news:<#...
Bonjour.

il vaudrait mieux se poser la question : pourquoi as-tu besoin du path de la
BDD dans une variable? est-ce le path de la base principale ou la path de la
base frontale ?

--
@+
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


"technique" a écrit dans le message de
news:
Bonjour,

J'ai une bdd structurée comme suit :

- une table avec des caractéristiques d'outils
- une table d'interventions sur les outils
- les deux tables sont liées (un outil a une/plusieurs interventions)

J'ai un formulaire :
- qui affiche les caractéristiques des outils
- qui comporte un sous formulaire pour afficher les interventions
concernant l'outil.

Dans le sous-formulaire des interventions
- j'ai un variable qui définit le chemin de la bdd

Dans access 2000
Lorsque je passe de l'affichage de mode formulaire à mode feuille de
donnée sur le formulaire principal, la variable contenant le chemin de
la bdd remise à zéro (ne contient rien).

Dans acces XP,
La variable reste renseignée correctement lorsque on effectue le
changement de mode d'affichage.

Une idée pour résoudre ce problème (nous utilisons les deux versions
d'Access) ?


Merci d'avance,

Fabien




Avatar
Raymond [mvp]
Bonjour.

pourquoi sur 2000 ? surement un bug.
vu que tu es en monoutilisateur, le currentproject.Path te donne les
éléments.
le plus simple est de placer tes paramètres (notamment les chemins) dans une
table car si tu installes cette base pour un autre utilisateur ça ne
marchera pas normalement. Essaie aussi de penser multi-utilisateurs, ce
serait préférable et surtout plus simple pour l'avenir. même en
mono-utilisateur, tu peux très bien avoir une base principale et une base
frontale comme en multi.
--
@+
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


"technique" a écrit dans le message de
news:
Bonjour Raymond et les autres !

Ce n'est pas une base développée multi-utilisateur, c'est un fichier
mdb placé sur un serveur.

En fait j'ai dans le formulaire principal un sous-formulaire basé sur
http://access.seneque.free.fr/bases_exemples.htm n°38

J'ai donc besoin du path de la BDD dans un variable car :
- dans le sous formulaire interventions sur outillage il y a un schema
de l'intervention (une image) et je ne stocke que sont chemin d'accès
dans la bdd (voir mon autre post)
- elle me sert à definir le chemin, en relatif, du répertoire dans
lequel je vais stocker les images genre
chemin_schemas = chemin_bdd + nom_du_répertoire et pour le controle
qui affiche l'image : chemin_image = chemin_schemas + chemin_image par
exemple :
Serveurdatasaccessoutillagesimagesoutilln°1image.jpg > --------------------------------- ------ -------------------
Chemin UNC de la bdd | |
| |
| -> partie du chemin stocké
| dans la bdd obtenu par
| dialogue openfile
|
-> répertoire de stockage
des images = constante
définie dans un sub

Je souhaite stocker le chemin du schema en relatif par rapport à la
bdd pour faciliter la maintenance (exemple je veux déplacer ma bdd)
- ca me sert aussi à transformer le chemin qui est basée sur un
lecteur réseau k: en chemin UNC, afin d'éviter les problèmes de
connexion du lecteur réseau (délai notament).

Pour resserer le diagnostique, en fait c'est toutes les variables qui
sont remise à zéro quelque soit la manière dont elles sont définis :
- toto = "test"
- titi = CurrentProject.Path
Lorsque je procède ainsi :
1) ouverture du formulaire principal (mode formulaire par défaut)
2) passage en mode feuille de donnée
3) sélection d'un enregistrement
4) passage en mode formulaire
Autre info : je défini les chemins dans la procédure Form_Load() du
sous-formulaire (je suis en train de me demander si je ne devrais pas
le faire dans le formuaire principal, mais comment transmettre les
variables du formulaire principal afin que le sous-formulaire puisse
les utiliser(déclaration Piublic dans un module ?))

Dans access Xp ca marche sans probleme. Dans Access 2000, les
variables sont remises à zero (j'ai mis des MsgBox avant et après
chaque sub et chaque modification de variable).

Pour l'instant, j'ai contourné le problème en écrivant une sub
définissant les chemins que j'appelle dans les sous-routines générant
la raz des variables dans access 2000 lors des 4 étapes ci-dessus.

En espérant avoir été clair :-)

@+

Fabien


Avatar
technique
Bonjour,

Bon, après nettoyage de la base et du code, il semble que j'ai eu des
problèmes de déclaration de varaibles et donc de portée.
Encore une erreur de débutant :-) (pas taper ...)

Tout fonctionne dans les deux versions, mais j'ai une autre "bug" que je
vais poster.

Cordialement,

Fabien

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

pourquoi sur 2000 ? surement un bug.
vu que tu es en monoutilisateur, le currentproject.Path te donne les
éléments.
le plus simple est de placer tes paramètres (notamment les chemins) dans
une

table car si tu installes cette base pour un autre utilisateur ça ne
marchera pas normalement. Essaie aussi de penser multi-utilisateurs, ce
serait préférable et surtout plus simple pour l'avenir. même en
mono-utilisateur, tu peux très bien avoir une base principale et une base
frontale comme en multi.
--
@+
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


"technique" a écrit dans le message de
news:
Bonjour Raymond et les autres !

Ce n'est pas une base développée multi-utilisateur, c'est un fichier
mdb placé sur un serveur.

En fait j'ai dans le formulaire principal un sous-formulaire basé sur
http://access.seneque.free.fr/bases_exemples.htm n°38

J'ai donc besoin du path de la BDD dans un variable car :
- dans le sous formulaire interventions sur outillage il y a un schema
de l'intervention (une image) et je ne stocke que sont chemin d'accès
dans la bdd (voir mon autre post)
- elle me sert à definir le chemin, en relatif, du répertoire dans
lequel je vais stocker les images genre
chemin_schemas = chemin_bdd + nom_du_répertoire et pour le controle
qui affiche l'image : chemin_image = chemin_schemas + chemin_image par
exemple :
Serveurdatasaccessoutillagesimagesoutilln°1image.jpg > > --------------------------------- ------ -------------------
Chemin UNC de la bdd | |
| |
| -> partie du chemin stocké
| dans la bdd obtenu par
| dialogue openfile
|
-> répertoire de stockage
des images = constante
définie dans un sub

Je souhaite stocker le chemin du schema en relatif par rapport à la
bdd pour faciliter la maintenance (exemple je veux déplacer ma bdd)
- ca me sert aussi à transformer le chemin qui est basée sur un
lecteur réseau k: en chemin UNC, afin d'éviter les problèmes de
connexion du lecteur réseau (délai notament).

Pour resserer le diagnostique, en fait c'est toutes les variables qui
sont remise à zéro quelque soit la manière dont elles sont définis :
- toto = "test"
- titi = CurrentProject.Path
Lorsque je procède ainsi :
1) ouverture du formulaire principal (mode formulaire par défaut)
2) passage en mode feuille de donnée
3) sélection d'un enregistrement
4) passage en mode formulaire
Autre info : je défini les chemins dans la procédure Form_Load() du
sous-formulaire (je suis en train de me demander si je ne devrais pas
le faire dans le formuaire principal, mais comment transmettre les
variables du formulaire principal afin que le sous-formulaire puisse
les utiliser(déclaration Piublic dans un module ?))

Dans access Xp ca marche sans probleme. Dans Access 2000, les
variables sont remises à zero (j'ai mis des MsgBox avant et après
chaque sub et chaque modification de variable).

Pour l'instant, j'ai contourné le problème en écrivant une sub
définissant les chemins que j'appelle dans les sous-routines générant
la raz des variables dans access 2000 lors des 4 étapes ci-dessus.

En espérant avoir été clair :-)

@+

Fabien