OVH Cloud OVH Cloud

Actualisation dans formulaire aussi !

8 réponses
Avatar
Joël GARBE
bonjour,

je créé un enregistrement dans une table à partir d'un formulaire.

le code suivant est utilisé, car je souhaite pouvoir faire un contrôle de
validité sur les saisie (par exemple, contrôler que l'adresse email contient
un "@" et un ".", pas d'espace, etc...

j'utilise donc des contrôles indépendants (zone de texte)

à l'ouverture et lors de la sélection d'une donnée d'un combo, les contrôle
indépendants vont récupérer les informations de contrôle dépendant (non
visibles dans le formulaires).

Tout se passe très bien, sauf que lorsque je créé un enregistrement, je suis
obligé de fermer le formulaire pour visulaiser les nouveaux enregistrements.

J'oublie probablement kekchoz évident pour vous...

En espérant avoir été clair ?! (voici le code)

Private Sub CmBSauve_Click()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("select * from Utilisateurs")
Rs.AddNew
Me.Bookmark = Rs.Bookmark
Rs("Login") = Me.IndLoginNew
Rs("Mot de Passe") = Me.IndMotDePasse
Rs("Nom Utilisateur") = Me.IndNom
Rs("Prénom Utilisateur") = Me.IndPrenom
Rs("Adresse Mail") = Me.IndMail
Rs("date de Création Login") = Date
Me.IndDateCreation = Date
Dim KelLog As String
KelLog = Me.IndLoginNew

Me.Modifiable12 = KelLog
Me.Refresh
MsgBox Me.TBNom
End Sub

le : MsgBox Me.TBNom (contrôle dépendant, ne me renvoie pas l'info de
l'enregistrement créé !!!

Vous remerciant par avance ...
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr

8 réponses

Avatar
Raymond [mvp]
Bonjour.

je ne comprendrais toujours pas ton organisation avec cette procédure.
pour enregistrer le recordset fais un:
Rs.Update
après le chargement du dernier champ.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Joël GARBE" a écrit dans le message de news:
41c99d2b$0$10397$
bonjour,

je créé un enregistrement dans une table à partir d'un formulaire.

le code suivant est utilisé, car je souhaite pouvoir faire un contrôle de
validité sur les saisie (par exemple, contrôler que l'adresse email
contient un "@" et un ".", pas d'espace, etc...

j'utilise donc des contrôles indépendants (zone de texte)

à l'ouverture et lors de la sélection d'une donnée d'un combo, les
contrôle indépendants vont récupérer les informations de contrôle
dépendant (non visibles dans le formulaires).

Tout se passe très bien, sauf que lorsque je créé un enregistrement, je
suis obligé de fermer le formulaire pour visulaiser les nouveaux
enregistrements.

J'oublie probablement kekchoz évident pour vous...

En espérant avoir été clair ?! (voici le code)

Private Sub CmBSauve_Click()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("select * from Utilisateurs")
Rs.AddNew
Me.Bookmark = Rs.Bookmark
Rs("Login") = Me.IndLoginNew
Rs("Mot de Passe") = Me.IndMotDePasse
Rs("Nom Utilisateur") = Me.IndNom
Rs("Prénom Utilisateur") = Me.IndPrenom
Rs("Adresse Mail") = Me.IndMail
Rs("date de Création Login") = Date
Me.IndDateCreation = Date
Dim KelLog As String
KelLog = Me.IndLoginNew

Me.Modifiable12 = KelLog
Me.Refresh
MsgBox Me.TBNom
End Sub

le : MsgBox Me.TBNom (contrôle dépendant, ne me renvoie pas l'info de
l'enregistrement créé !!!

Vous remerciant par avance ...
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr



Avatar
Joël GARBE
Merci Raymond,

Le problème, c'est que l'enregistrement est bien créé, mais l'utilisation du
combo, qui fonctionne pour tous les autres enregistrements, ne parvient pas
à lire les infos du nouvel enregistrement tant que je n'ai pas fermé le
formulaire (puis réouvert... bien sûr). (je vois le "login" créé dans le
combo, mais la sélection de ce login m'affiche les informations d'un autre
enregistrement).

Comme je ne sais pas faire autrement que cette procédure (je suis preneur
d'idées), et qu'il ne parait pas possible de fermer et réouvir le formulaire
à partir de la procédure...

En d'autre termes, je souhaite pouvoir lancer la création d'un
enregistrement, effectuer un contrôle de la saisie, et n'enregistrer les
données qu'en cliquant sur un bouton de contrôle...

Pas certain que cette dernière indication éclaircisse les esprits...

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

je ne comprendrais toujours pas ton organisation avec cette procédure.
pour enregistrer le recordset fais un:
Rs.Update
après le chargement du dernier champ.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Joël GARBE" a écrit dans le message de news:
41c99d2b$0$10397$
bonjour,

je créé un enregistrement dans une table à partir d'un formulaire.

le code suivant est utilisé, car je souhaite pouvoir faire un contrôle de
validité sur les saisie (par exemple, contrôler que l'adresse email
contient un "@" et un ".", pas d'espace, etc...

j'utilise donc des contrôles indépendants (zone de texte)

à l'ouverture et lors de la sélection d'une donnée d'un combo, les
contrôle indépendants vont récupérer les informations de contrôle
dépendant (non visibles dans le formulaires).

Tout se passe très bien, sauf que lorsque je créé un enregistrement, je
suis obligé de fermer le formulaire pour visulaiser les nouveaux
enregistrements.

J'oublie probablement kekchoz évident pour vous...

En espérant avoir été clair ?! (voici le code)

Private Sub CmBSauve_Click()
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("select * from Utilisateurs")
Rs.AddNew
Me.Bookmark = Rs.Bookmark
Rs("Login") = Me.IndLoginNew
Rs("Mot de Passe") = Me.IndMotDePasse
Rs("Nom Utilisateur") = Me.IndNom
Rs("Prénom Utilisateur") = Me.IndPrenom
Rs("Adresse Mail") = Me.IndMail
Rs("date de Création Login") = Date
Me.IndDateCreation = Date
Dim KelLog As String
KelLog = Me.IndLoginNew

Me.Modifiable12 = KelLog
Me.Refresh
MsgBox Me.TBNom
End Sub

le : MsgBox Me.TBNom (contrôle dépendant, ne me renvoie pas l'info de
l'enregistrement créé !!!

Vous remerciant par avance ...
--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr







Avatar
Raymond [mvp]
si tu procédais ainsi:
tu saisis dans le formulaire normalement.
tu gardes ton bouton de confirmation.
sur l'événement beforeupdate, tu vérifies si tu as bien enfoncé le bouton,
tu contrôles la saisie et tu demandes confirmation.
sur une création, on peut faire un me.undo qui annule la saisie en cours.
tu mémorises que tu as cliqué sur le bouton pour ne traiter les événements
que lorsque tu as cliqué sur le bouton et tu rejettes les autres.
ce serait quand même plus facile que de passer par un recordset et de
calquer le formulaire dessus.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Joël GARBE" a écrit dans le message de news:
41c9a2a2$0$32167$
Merci Raymond,

Le problème, c'est que l'enregistrement est bien créé, mais l'utilisation
du combo, qui fonctionne pour tous les autres enregistrements, ne parvient
pas à lire les infos du nouvel enregistrement tant que je n'ai pas fermé
le formulaire (puis réouvert... bien sûr). (je vois le "login" créé dans
le combo, mais la sélection de ce login m'affiche les informations d'un
autre enregistrement).

Comme je ne sais pas faire autrement que cette procédure (je suis preneur
d'idées), et qu'il ne parait pas possible de fermer et réouvir le
formulaire à partir de la procédure...

En d'autre termes, je souhaite pouvoir lancer la création d'un
enregistrement, effectuer un contrôle de la saisie, et n'enregistrer les
données qu'en cliquant sur un bouton de contrôle...

Pas certain que cette dernière indication éclaircisse les esprits...

--

Bien cordialement,

Joël GARBE


Avatar
Joël GARBE
Merci Raymond !

Je tente le coup et reviens donner le suivi...

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Raymond [mvp]" a écrit dans le message de
news:
si tu procédais ainsi:
tu saisis dans le formulaire normalement.
tu gardes ton bouton de confirmation.
sur l'événement beforeupdate, tu vérifies si tu as bien enfoncé le bouton,
tu contrôles la saisie et tu demandes confirmation.
sur une création, on peut faire un me.undo qui annule la saisie en cours.
tu mémorises que tu as cliqué sur le bouton pour ne traiter les événements
que lorsque tu as cliqué sur le bouton et tu rejettes les autres.
ce serait quand même plus facile que de passer par un recordset et de
calquer le formulaire dessus.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Joël GARBE" a écrit dans le message de news:
41c9a2a2$0$32167$
Merci Raymond,

Le problème, c'est que l'enregistrement est bien créé, mais l'utilisation
du combo, qui fonctionne pour tous les autres enregistrements, ne
parvient pas à lire les infos du nouvel enregistrement tant que je n'ai
pas fermé le formulaire (puis réouvert... bien sûr). (je vois le "login"
créé dans le combo, mais la sélection de ce login m'affiche les
informations d'un autre enregistrement).

Comme je ne sais pas faire autrement que cette procédure (je suis preneur
d'idées), et qu'il ne parait pas possible de fermer et réouvir le
formulaire à partir de la procédure...

En d'autre termes, je souhaite pouvoir lancer la création d'un
enregistrement, effectuer un contrôle de la saisie, et n'enregistrer les
données qu'en cliquant sur un bouton de contrôle...

Pas certain que cette dernière indication éclaircisse les esprits...

--

Bien cordialement,

Joël GARBE






Avatar
Joël GARBE
Re;-)

J'ai tenté la procédure décrite, cela semble convenir mais il me reste un
problème :

qand je clique sur le bouton (créé à l'aide de l'assistant) permettant de
créer un nouvel enregistrement, j'ai le message :

impossible d'atteindre l'enregistrement spécifié.

y aurait-il une propriété que j'aurais omise quelque part ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Raymond [mvp]" a écrit dans le message de
news:
si tu procédais ainsi:
tu saisis dans le formulaire normalement.
tu gardes ton bouton de confirmation.
sur l'événement beforeupdate, tu vérifies si tu as bien enfoncé le bouton,
tu contrôles la saisie et tu demandes confirmation.
sur une création, on peut faire un me.undo qui annule la saisie en cours.
tu mémorises que tu as cliqué sur le bouton pour ne traiter les événements
que lorsque tu as cliqué sur le bouton et tu rejettes les autres.
ce serait quand même plus facile que de passer par un recordset et de
calquer le formulaire dessus.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Joël GARBE" a écrit dans le message de news:
41c9a2a2$0$32167$
Merci Raymond,

Le problème, c'est que l'enregistrement est bien créé, mais l'utilisation
du combo, qui fonctionne pour tous les autres enregistrements, ne
parvient pas à lire les infos du nouvel enregistrement tant que je n'ai
pas fermé le formulaire (puis réouvert... bien sûr). (je vois le "login"
créé dans le combo, mais la sélection de ce login m'affiche les
informations d'un autre enregistrement).

Comme je ne sais pas faire autrement que cette procédure (je suis preneur
d'idées), et qu'il ne parait pas possible de fermer et réouvir le
formulaire à partir de la procédure...

En d'autre termes, je souhaite pouvoir lancer la création d'un
enregistrement, effectuer un contrôle de la saisie, et n'enregistrer les
données qu'en cliquant sur un bouton de contrôle...

Pas certain que cette dernière indication éclaircisse les esprits...

--

Bien cordialement,

Joël GARBE






Avatar
Raymond [mvp]
la propriété du formulaire "ajout autorisé" est-elle mise à oui ?
vérifie aussi les autres qui sont à côté.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Joël GARBE" a écrit dans le message de news:
41c9b1bc$0$12850$
Re;-)

J'ai tenté la procédure décrite, cela semble convenir mais il me reste un
problème :

qand je clique sur le bouton (créé à l'aide de l'assistant) permettant de
créer un nouvel enregistrement, j'ai le message :

impossible d'atteindre l'enregistrement spécifié.

y aurait-il une propriété que j'aurais omise quelque part ?

--

Bien cordialement,

Joël GARBE


Avatar
Joël GARBE
c certain qu'en mettant ajout autorisé à OUI, cela marche mieux !!!

Merci Raymond !

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Joël GARBE" a écrit dans le message de news:
41c9b1bc$0$12850$
Re;-)

J'ai tenté la procédure décrite, cela semble convenir mais il me reste un
problème :

qand je clique sur le bouton (créé à l'aide de l'assistant) permettant de
créer un nouvel enregistrement, j'ai le message :

impossible d'atteindre l'enregistrement spécifié.

y aurait-il une propriété que j'aurais omise quelque part ?

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Raymond [mvp]" a écrit dans le message
de news:
si tu procédais ainsi:
tu saisis dans le formulaire normalement.
tu gardes ton bouton de confirmation.
sur l'événement beforeupdate, tu vérifies si tu as bien enfoncé le
bouton, tu contrôles la saisie et tu demandes confirmation.
sur une création, on peut faire un me.undo qui annule la saisie en cours.
tu mémorises que tu as cliqué sur le bouton pour ne traiter les
événements que lorsque tu as cliqué sur le bouton et tu rejettes les
autres.
ce serait quand même plus facile que de passer par un recordset et de
calquer le formulaire dessus.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Joël GARBE" a écrit dans le message de news:
41c9a2a2$0$32167$
Merci Raymond,

Le problème, c'est que l'enregistrement est bien créé, mais
l'utilisation du combo, qui fonctionne pour tous les autres
enregistrements, ne parvient pas à lire les infos du nouvel
enregistrement tant que je n'ai pas fermé le formulaire (puis
réouvert... bien sûr). (je vois le "login" créé dans le combo, mais la
sélection de ce login m'affiche les informations d'un autre
enregistrement).

Comme je ne sais pas faire autrement que cette procédure (je suis
preneur d'idées), et qu'il ne parait pas possible de fermer et réouvir
le formulaire à partir de la procédure...

En d'autre termes, je souhaite pouvoir lancer la création d'un
enregistrement, effectuer un contrôle de la saisie, et n'enregistrer les
données qu'en cliquant sur un bouton de contrôle...

Pas certain que cette dernière indication éclaircisse les esprits...

--

Bien cordialement,

Joël GARBE










Avatar
Joël GARBE
après tests complets, c'est parfait !!encore merci

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"Raymond [mvp]" a écrit dans le message de
news:
si tu procédais ainsi:
tu saisis dans le formulaire normalement.
tu gardes ton bouton de confirmation.
sur l'événement beforeupdate, tu vérifies si tu as bien enfoncé le bouton,
tu contrôles la saisie et tu demandes confirmation.
sur une création, on peut faire un me.undo qui annule la saisie en cours.
tu mémorises que tu as cliqué sur le bouton pour ne traiter les événements
que lorsque tu as cliqué sur le bouton et tu rejettes les autres.
ce serait quand même plus facile que de passer par un recordset et de
calquer le formulaire dessus.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Joël GARBE" a écrit dans le message de news:
41c9a2a2$0$32167$
Merci Raymond,

Le problème, c'est que l'enregistrement est bien créé, mais l'utilisation
du combo, qui fonctionne pour tous les autres enregistrements, ne
parvient pas à lire les infos du nouvel enregistrement tant que je n'ai
pas fermé le formulaire (puis réouvert... bien sûr). (je vois le "login"
créé dans le combo, mais la sélection de ce login m'affiche les
informations d'un autre enregistrement).

Comme je ne sais pas faire autrement que cette procédure (je suis preneur
d'idées), et qu'il ne parait pas possible de fermer et réouvir le
formulaire à partir de la procédure...

En d'autre termes, je souhaite pouvoir lancer la création d'un
enregistrement, effectuer un contrôle de la saisie, et n'enregistrer les
données qu'en cliquant sur un bouton de contrôle...

Pas certain que cette dernière indication éclaircisse les esprits...

--

Bien cordialement,

Joël GARBE