Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sous=formulaire

23 réponses
Avatar
Albert
Bonjour

Base.MDB gérée avec Access 2007 ou 2010.
J'ai un formulaire et dessous un sous formulaire (relation père-fils) en
mode feuille de données qui affiche 5 lignes.
On ajoute continuellement des données dans le sous formulaire, et quand il y
a plus que cinq entrées il faut utiliser l'ascenceur pour aller à la
dernière ligne, cela devient vite fastidieux, surtout si la liste est
longue.
Est-il possible que le sous formulaire affiche les dernières données entrées
au lieu des premières ?

Vos suggestions sont bienvenues.
merci

--
albertri-at-videotron.ca.invalid

10 réponses

1 2 3
Avatar
Gloops
Bonjour,

Il faut choisir ADO ou DAO (les syntaxes ne sont pas exactement les
mêmes), et la référence concernée doit être déclarée. ça se fait avec
les cases à cocher dans Outils / Références, à partir d'un module . On ne
voit pas le code des références, mais on peut visualiser les proprié tés
et méthodes de chaque objet dans l'explorateur d'objets (qui s'ouvre
avec la touche F2 dans l'environnement de développement).

Qu'on appelle Outils / Références à partir d'un module ou d'un autr e,
les références sélectionnées sont les mêmes.

Est-ce suffisamment clair ?
_____________________________________
Albert a écrit, le 09/09/2012 22:01 :
Bonjour
"Gloops" a écrit dans le message de
news:k2g7id$its$

Pour le recordset mentionné ci-bas, est-ce qu'il ne faut pas avoir AD O
connecté ???
Ce n'est pas le cas dans ma base, Je ne connais rien à ADO. Dans Out ils
Référence j'ai coché MSOffice 14.Access etc....
Je regarde ma bible, est-ce qu'il faut mettre les commandes ADO dans l e
même module que les fonctions évènementielles du formulaire ?
Même dans la bible cela n'est pas très clair.
Albert
Avatar
Albert
Bonsoir / Bonjour
"Gloops" a écrit dans le message de
news:k2nfu3$hd0$

Est-ce suffisamment clair ?





Pas tout à fait ;o))
Il me manque plusieurs petits bouts, c'est le problème des autodidactes,
comme moi, sans personne resource disponible.

Il faut savoir, que mes premiers contact avec Access ont réellement débuté
en 2009 lorsque le secrétaire du club ma demandé de regarder la base de
données pour modifier une requête pour être conforme à ses besoins. Je
n'avais qu'une vague idée de ce qu'était une requête, après quelques heures
le problème était résolu. À chaque demande je devais me déplacer.
Éventuellement j'ai eu Access et Fabien & Eric sur le forum m'ont appris
comment transmettre une requête par courriel. Après quelques demandes j'ai
ainsi appris comment faire et je me suis amusé avec ACCESS.

Octobre 2010, un ami demande si je peux faire une base pour son
organisation d'handicapés, liste des membres et donateurs etc...
Cela m'a pris trois mois, il y a plusieurs tables, et on peut gérer les
cotisations et les passés dus, les dons, les renouvellements et les demandes
aux donateurs. Cette base de données fonctionne très bien sans aucun
problème et avec plusieurs milliers d'entrées depuis. Sur le forum ROGER m'a
beaucoup aidé avec les procédures évènementielles.

Été 2010, je reçois un appel du gestionnaire d'une association de
propriétaires qui a entendu parler du SGDB des handicapés, il demande si je
peux faire quelque chose de semblable pour eux avec ACCESS. Leur SGDB est
déficient. Je me met à l'ouvrage, il faut livrer avant février 2011.
Cotisation, facturation, évaluation le tout est livré à temps, quelques
petites corrections à faire, les états en deux langues français ou anglais.
Avril 2011 la mise officielle en service, aucun problème depuis.

Début 2012, le créateur de la SGBD du club résigne, je la prend en charge,
base de données à table unique et formulaire unique. Je crée les formulaires
additionnels requis pour le personnel sans formation informatique utilisant
la base, j'ajoute une table pour la gestion des cotisations avec sous
formulaire.

Et c'est là où j'en suis actuellement.

Merci de m'avoir lu.

--
albertri-at-videotron.ca.invalid
Avatar
Gloops
Albert a écrit, le 11/09/2012 22:47 :
Bonsoir / Bonjour
"Gloops" a écrit dans le message de
news:k2nfu3$hd0$

Est-ce suffisamment clair ?





Pas tout à fait ;o))
Il me manque plusieurs petits bouts, c'est le problème des autodidact es,
comme moi, sans personne resource disponible.



Donc il faut un peu de temps pour assimiler ?

As-tu au moins compris le principe des références ?
L'ordinateur ne sait faire quelque chose que si on lui explique comment.
Alors, on lui a écrit des procédures détaillées. Pour pouvoir s'y
retrouver, ces procédures sont regroupées en modules spécialisés. Une
application doit contenir des références à ces modules, pour que le
programme sache où aller chercher les définitions des objets qu'il va
utiliser, ce qui va inclure des propriétés et des méthodes.

Quand on ouvre Access et qu'on crée un nouveau projet (en fait une
nouvelle base), il y a déjà trois ou quatre références obligatoir es
incluses dedans. Après, en programmant on peut avoir besoin d'autres
pour gérer des points précis. Parmi ces autres références, il peu t y
avoir ADO, dont on va en général trouver trois ou quatre versions
disponibles dans la liste proposée. On accède à la liste, depuis
l'environnement de développement, par la commande Outils / Référenc es.

D'un point de vue pratique, il y a un outil bien utile pour se rendre
compte du contenu des différentes références sélectionnées (en fait du
contenu des modules qu'il y a derrière, mais par abus de langage le mot
référence désigne souvent aussi le module lui-même), c'est l'expl orateur
d'objets. On l'ouvre avec la touche F2 dans l'environnement de
développement, on devrait aussi le trouver quelque part dans les menus
déroulants, logiquement dans Afficher.

Attention de ne pas confondre la liste des références disponibles sur la
machine (que j'appelais références proposées tout-à-l'heure), qu' on
affiche par Outils / Références, et la liste des références
sélectionnées dans le projet, qui sont celles qu'on a cochées dans la
liste que je viens de mentionner, et qu'on peut afficher avec
l'explorateur d'objets (touche F2).

Sinon, sur la page ci-après, ça m'a l'air expliqué assez clairement ,
sauf que c'est en Anglais (enfin ... à toi de dire, comme je navigue
avec depuis un bout de temps c'est forcément clair pour moi) :
http://allenbrowne.com/ser-38.html

En règle générale je connais deux sites pas trop mal fichus en Fran çais
sur Access, mais sur cette question je n'y ai rien trouvé :
http://www.3stone.be/access/
http://officesystemaccess.seneque.net

3stone propose un code VBA pour lister les références sélectionné es, il
m'a semblé que c'était tout, à moins que j'aie mal regardé. Chez Seneque
il y a une arborescence à parcourir pour se rendre compte, j'ai juste
regardé une page ou deux.

Le code proposé par 3stone, pour obtenir la liste des références
sélectionnées, peut être utile pour avoir le coeur net, pour alimen ter
une discussion dans un newsgroup, de ce qui est déjà sélectionné. Vu
l'absence de commentaire autour, il me semble que c'est juste dans ce
but que c'est proposé.
Avatar
Albert
"Gloops" a écrit dans le message de
news:k2pl4b$4kr$
Albert a écrit, le 11/09/2012 22:47 :
Bonsoir / Bonjour
"Gloops" a écrit dans le message de
news:k2nfu3$hd0$

Est-ce suffisamment clair ?





Pas tout à fait ;o))
Il me manque plusieurs petits bouts, c'est le problème des autodidactes,
comme moi, sans personne resource disponible.



<<Donc il faut un peu de temps pour assimiler ?

<<As-tu au moins compris le principe des références ?

Parfois je trouve le terme RÉFÉRENCES plutôt vague, je vais essayer d'y
mettre de l'ordre.

J'étais technicien du temps des TELEX. Au début des années 80 la compagnie
mère a retiré des terminaux désuets des Datapoint 2200 et 3500.
http://en.wikipedia.org/wiki/Datapoint_2200
Avec ces appareils j'ai appris le langage Basic et le langage Databus. Avec
le Databus j'ai informatisé la caisse des employés, j'ai programmé toutes
les opérations banquaires, dépots, retraits, emprunts, remboursements et les
bilans mensuels.
A ma retraite en 89 j'ai appris Lotus123 et j'ai programmé en dBaseIV, vers
l'an 2000 le dBase a cessé de fonctionner sur mon ordinateur trop rapide
pour le dBase.
En 2009 Charabeuh sur MPFE m'a initié au VBA. il a réussi à automatiser
notre fichier Présences,XLS. C'était ma première rencontre avec le VBA sur
les produits Microsoft.

J'ai quelques volumes sur Access, Excel et leVBA, mais cela ne répond pas à
toutes mes questions.

Je pars pour quelques jours, et au retour je regarde vos liens sur les
références.

Merci


--
albertri-at-videotron.ca.invalid
Avatar
Gloops
Albert a écrit, le 12/09/2012 15:45 :
<<Donc il faut un peu de temps pour assimiler ?

<<As-tu au moins compris le principe des références ?

Parfois je trouve le terme RÉFÉRENCES plutôt vague, je vais essa yer d'y
mettre de l'ordre.



Il y a quelques jours j'ai cherché le mot cassolette, dans le
dictionnaire. J'ai vu qu'il désigne à la fois un récipient et son c ontenu.

En fait, pour les références, en programmation, c'est un peu pareil,
jusqu'à un certain point. En premier lieu, il a dû y avoir une table,
dont les enregistrements faisaient référence à des modules, pour y
trouver des instructions. Et puis, à force de devoir sélectionner ces
références aux modules, pour en fait utiliser les modules ... Bon enf in
il faut sélectionner les références, quoi :)

Nous avons donc une liste des modules, que je disais, en fait ces
modules sont dans des fichiers avec l'extension DLL, comme Dynamic Link
Library, donc ce sont plutôt des bibliothèques, dont les bouquins
expliquent à VBA comment faire un certain nombre de choses.

Ce que ça change, de cocher la case devant une bibliothèque, c'est
qu'elle va être chargée en même temps que la base de données, et donc le
programme VBA va pouvoir aller y puiser des objets, et les instructions
qu'ils contiennent.

Je ne sais pas jusqu'à quel point c'était utile que je le reformule, de
toute manière il va falloir un peu de temps pour se représenter tout ça.
Mais à tout hasard, j'imagine qu'apporter un éclairage supplémentai re ne
nuira pas à la compréhension.
Avatar
Albert
Bonjour /Bonsoir
"Gloops" a écrit dans le message de
news:k2qjno$cir$
Albert a écrit, le 12/09/2012 15:45 :
<<Donc il faut un peu de temps pour assimiler ?
<<As-tu au moins compris le principe des références ?


Après beaucoup de lecture ça va mieux, et j'ai trouvé un bon PDF
français/anglais des procédures évènementielles, ça clarifie plusieurs
points.

Le code suivant fonctionne bien une fois le formulaire ouvert:

Private Sub Form_current()
' Un nouvel enregistrement sur le formulaire principal
' place le curseur du sous formulaire sur un enregistrement nouveau.
Me.FRL_SF_Cot.SetFocus
DoCmd.RunCommand acCmdRecordsGoToNew
End Sub

Mais à l'ouverture du formulaire j'ai le message d'erreur suivant :

Erreur d'exécution '2046':
La commande ou l'action "AtteindreNouvelEnr" n'est pas disponible pour
l'instant.

Comment empêcher **Private Sub Form_current()**
avant que le formulaire soit activé

.Merci de vos commentaires

--
albertri-at-videotron.ca.invalid
Avatar
Gloops
Albert a écrit, le 22/09/2012 03:06 :
Après beaucoup de lecture ça va mieux, et j'ai trouvé un bon PDF
français/anglais des procédures évènementielles, ça clarifie plusieurs
points.




ça peut toujours servir à d'autres ...



Le code suivant fonctionne bien une fois le formulaire ouvert:

Private Sub Form_current()
' Un nouvel enregistrement sur le formulaire principal
' place le curseur du sous formulaire sur un enregistrement nouveau.
Me.FRL_SF_Cot.SetFocus
DoCmd.RunCommand acCmdRecordsGoToNew
End Sub

Mais à l'ouverture du formulaire j'ai le message d'erreur suivant :

Erreur d'exécution '2046':
La commande ou l'action "AtteindreNouvelEnr" n'est pas disponible pour
l'instant.

Comment empêcher **Private Sub Form_current()**
avant que le formulaire soit activé

..Merci de vos commentaires




Form_Current, si je ne me mélange pas les crayons, s'exécute à chaq ue
fois qu'un enregistrement est sélectionné.
Donc ... je n'ai pas percuté avant, mais demander au formulaire de le
laisser tomber pour aller sur un autre n'est pas très cohérent, mêm e si
je n'aurais pas su deviner la réaction. Sans même insister sur le
caractère récursif du traitement une fois sur le nouvel enregistremen t.

Pourquoi pas Form_Open ?

IL y a Form_Load, aussi, mais ça c'est avant, j'imagine que pour aller
sur un nouvel enregistrement ce serait prématuré.
Avatar
Albert
"Gloops" a écrit dans le message de
news:k3k55s$3qn$
Albert a écrit, le 22/09/2012 03:06 :
Après beaucoup de lecture ça va mieux, et j'ai trouvé un bon PDF


>français/anglais des procédures évènementielles, ça clarifie plusieurs
>points.
ça peut toujours servir à d'autres ...


http://2gm.free.fr/site/cours/pdf/evenements.pdf

Terminologie française de ACCESS et et VBA en anglais, m'a clarifié beaucoup
de points obscurs.

Le nom du formulaire feuille de données utilisé est "FRL_SF_Cot"
Dans la propriété "Sur activation" = "Private Sub Form_Current()", j'ai mis
"DoCmd.GoToRecord , , acNewRec"
Et cela fonctionne parfaitemennt jusqu'à présent.
À chaque changement d'enregistrement sur le formulaire principal
"FRL-ActiveCotisation" le sous formulaire "FILS" affiche les derniers
enregistrements et le curseur est placé sur l'enregistrement "(Nouv.)
C'est ce que cherchais au début, Blaise m'a indiqué "DoCmd.GoToRecord , ,
acNewRec" et Gloops "Form_Current du formulaire principal".

J'ai donc fait "Form_Current du SOUS-FORMULAIRE" avec "DoCmd.GoToRecord , ,
acNewRec"
et cela fonctionne tel que désiré.

Merci

--
albertri-at-videotron.ca.invalid
Avatar
Gloops
Albert a écrit, le 22/09/2012 19:24 :
J'ai donc fait "Form_Current du SOUS-FORMULAIRE" avec "DoCmd.GoToRecord
, , acNewRec"
et cela fonctionne tel que désiré.



Ouf on a eu chaud, parce que là je commençais à salement hésiter sur le
choix de la procédure événementielle, que j'avais pourtant moi-mê me
conseillé ...
Avatar
Albert
Salut et merci
À la prochaine recherche
albert

"Gloops" a écrit dans le message de
news:k3lcit$emr$
Albert a écrit, le 22/09/2012 19:24 :
J'ai donc fait "Form_Current du SOUS-FORMULAIRE" avec "DoCmd.GoToRecord
, , acNewRec"
et cela fonctionne tel que désiré.



Ouf on a eu chaud, parce que là je commençais à salement hésiter sur le
choix de la procédure événementielle, que j'avais pourtant moi-même
conseillé ...
1 2 3