Visites

   visiteurs

   visiteurs en ligne

Sujet n°260 Liste Deroulante
    par Lendcap le 19/08/2009 : 13:12
Bonjour,
j'ai 02 tables : Fournisseur et payement Fournisseur
avec les champs         codfseur et Nomfseur de   la table Fournisseur que j'ai repris en liste deroulante dans la table payement Fournisseur. Les deux tables sont en relation à travers le champ codfseur.
Dans le formulaire Payement Fournisseur qui me permet d'entrer les données dans la table payement fournisseur, j'ai mis la propriété Source controle du controle Nomfseur à Codfseur ce qui me permet d'obtenir directement le nom du fournisseur dans le formulaire paiement fournisseur chaque fois que le codfournisseur est renseigné.
Mais quand j'ouvre la table associé (payement fournisseur) en mode feuille de donnée la colone nomfseur est deseperement vide sans que je ne puisse trouver une explication plausible à cela. Je vous en prie de m'aider car ce vide me gène terriblement au niveau des regrouements.

Merci d'avance pour votre sollicitude.

Lendcap

Réponse n° 1 par 3Stone le 19/08/2009 : 18:19
Bonjour,


Dixit...
Dans le formulaire Payement Fournisseur qui me permet d'entrer les données dans la table payement fournisseur, j'ai mis la propriété Source controle du controle Nomfseur à Codfseur



C'est un peu confus...
Le formulaire principal doit être basé sur la table fournisseur et le sous-formulaire sera basé sur la table payement fournisseur.

En "feuilletant" dans le formulaire principal, donc passer d'un fournisseur au suivant, les payements concernés doivent automatiquement suivre et n'afficher que les payements concernant le fournisseur du formulaire principal.
Est-ce le cas ?

Cordialement,
Pierre(3stone)


Réponse n° 2 par Lendcap le 20/08/2009 : 12:08

c'est vrai que je ne suis pas un as  et merci bien pour l'info. Mais j'ai une autre inquietude. En fait ma base c'est un amassi de plusieurs tables qui concourent à une gestion integrée d'une petite structure d'achat vente.

Donc le formulaire principal est utilisé juste quand il faut créer un nouveau fournisseur et le formulaire payement fournisseur chaque fois qu'un payement a été fait à l'ordre d'un fournisseur.

Merci de me renseigner si je suis dans la betise

Par ailleurs j'ai une autre inquietude au niveau des combinaisons de requêtes qui le plus souvent me renvoie le message "le nombre de colonnes de deux requêtes n'est pas juste" pourtant ça l'est bien puisque quand je reçois ce message je passe par l'ouverture en mode creation et par la suite ça s'ouvre. Et de manière recurrentes dans la manipulation des requêtes toujours je reçois le plus souvent le message "access a cessé de fonctionner.................." puis le fichier se referme et je suis obligé de relancer.

il s'agit bien de access 2007

 

Réponse n° 3 par 3Stone le 21/08/2009 : 02:08
Bonjour,


Dixit...
En fait ma base c'est un amassi de plusieurs tables...



Hmm... je crois apercevoir la situation wink
On commence comme on peut, et on ajoute une table lorsque l'on pense que le c'est ce qu'il faut pour continuer wink

En fait, oui. Pour une "petite" base, la démarche peut être acceptable, mais, et c'est LE problème, on ne peut "étendre" une base de cette façon qu'à la condition ou les premiers pas ont été réalisé selon les grands principes - c. à d. modèlisation et la normalisation des données à traiter.


Dixit...
je reçois le plus souvent le message "access a cessé de fonctionner.................." puis le fichier se referme et je suis obligé de relancer.


Bien plus inquétant !
Lorsqu'une requête est mal formulée, soit Access signale qu'il ne peut l'exécuter (il ne comprend ce qui est souhaité), soit la requête ne renvoi pas d'enregistrement (ou pas ceux que l'on souhaite ou attend). En aucun cas, Access ne peut se "planter" pour cela!!

La condition est d'avoir un installation "à jour" avec les différents patch installés, voir les grosses mises à jour comme la SR1...
Si malgré un version à jour, on peut craindre une corruption de la base.
Et là, il est important d'y remédier, l'accès futur aux données en dépend.
Une méthode qui a fait ses preuves, consiste à créer une nouvelle base vide et d'importer tous les objets de la base à problème. Cela se réalise par le menu fichier/données externes/importer...

Cordialement,
Pierre(3stone)

Réponse n° 4 par Lendcap le 26/08/2009 : 17:10

Bonjour,

j'ai suivi les recommandations et tout est reglé.

Mais j'ai une autre inquietude. Comment proteger mes requêtes contre les potentiels utilisateurs de ma base. J'utilise access 2007.

Merci de votre aide

 

Réponse n° 5 par 3Stone le 26/08/2009 : 17:37
Bonjour,

C'est toute la différence entre Access et Excel.
Avec Access, on peut créer une base ou les utilisateurs ne "touchent" jamais rien d'autre que des formulaires... aucun accès direct aux données ou au requêtes. Ceci dit, cela demande une bonne connaissance d'Access et même là, avec des utilisateurs de mauvaise foi, le problème reste entier.

Par contre, si on accepte une (très) légère perte de performance, on n'utilise pas de requêtes enregistrées, mais, on les crées directement dans le code du formulaire.
Comme la requête est créé à la demande, elle est protégée des manipulation de l'utilisateur.
Sauf si ce dernier va tripoter le formulaire en mode édition, mais là, il faut sévir... ou passer à l'utilisation du "runtime".
Ce dernier pas demande également une bonne connaissance d'Access, car une base qui tourne sous runtime doit apporter tout ce qu'il faut, car justement, le mode édition/création n'existe plus.

Cordialement,
Pierre(3stone)

Réponse n° 6 par Lendcap le 29/08/2009 : 12:01

Bonjour Pierre,

Mon problème est justement là. Je voudrai franchir ce palier mais comment le faire. c'est quoi le process pour créer une requête dans le code du formulaire ? et le runtime comment ça marche  ? c'est quoi la difference entre runtime et enregistrer une base de donnée access 2007 en accde ?

Je t'en prie, Pierre, s'il existe un module de formation en ligne sur ces deux sujets je t'en prie de me renseigner.

Merci bien pour ton assistance.

Lendcap 

Réponse n° 7 par 3Stone le 29/08/2009 : 14:24
Bonjour,


Dixit...
c'est quoi le process pour créer une requête dans le code du formulaire ?


Oh, c'est assez simple...
De toute façon, il te faut créer une requête qui fonctionne et que tu la sauve.
Imaginons que tu crées une requête qui alimente un formulaire. Une fois réalisée et testée, tu ouvres la requête en mode SQL (affichage, mode SQL).
Là, tu obtiens et récupères ta joli requête écrite "en texte clair", donc en mode SQL. La grille de requête habituellement utilisée étant  le "requêteur graphique".

Tu ouvres maintenant le formulaire en mode création et tu affiches les propriétés, événement "Sur chargement", tu ouvres l'éditeur du VBA.

Dans la Sub de cet événement "Sur chargement", tu assignes ta joli "phrase SQL" à la source de ton formulaire, pour obtenir :

Me.RecordSource = "Select Champ1, Champ2 From LaTable;"

pour le cas le plus simple, évidemment wink
Bien sûr, dans la grille des propriétés, il te faut supprimer la référence à ta requête d'origine... et après test, tu pourras supprimer la requête enregistrée.

Pour ce qui est du "runtime", c'est une version "Light" d'Access, de laquelle tout le mode création à été supprimé ou bloqué. Ainsi, il n'est plus possible d'aller modifier les modules VBA, ni ouvrir un formulaire en mode création.
Cela signifie aussi que "tout le pilotage" de l'application doit avoir été prévue par l'auteur de la base...

Le runtime pour Access 2007 est à télécharger gratuitement sur le site de Microsoft (les versions précédentes avaient un prix assez élevés).

Quant à la formation... une série de sociétés "offres" des cours.... payants wink
Mais il y a également quelques sites plus spécialisés sur le net. Vas faire un tour sur ce site, tu y trouveras une liste de "sites à visiter".

Courrage pour la suite... mais Access (et les bases de données en général) demande de pratique pour obtenir des résultats.

Cordialement,
Pierre(3stone)

Réponse n° 8 par Lendcap le 01/09/2009 : 19:01

Bonjour Pierre,

Merci bien pour ton soutien et je t'assure que j'y arriverai et pour preuve j'ai dejà fait beaucoup de chemin avec tes enseignements.

STP Pierre j'ai deux tables en relations et je voudrai dans le formulaire qui alimente la deuxième table obtenir après mise à jour du champ index de la première table l'affichage des données des autres champs emanant de la première table. Comment devrai-je proceder ?

Merci d'avance pour ton secours. T'es de loin la meilleure reconcontre que j'ai pu faire ces dix dernières années.

Lendcap

 


DébutPrécédent [ 1 2 ] SuivantFin

[ Retour à la liste des sujets ]

Recherche



Préférences

Se reconnecter
---

Votre nom (ou pseudo) :

Votre code secret


 Nombre de membres 1 membre


Connectés :

( personne )

Haut