Bon, j'ai cr=E9e un formulaire qui s'ouvre en mode ajout avec un bouton
permettant de sauvegarder les donn=E9es saisies
J'aimerai
1) un message de confirmation avant sauvegarde
2) et si l'utilisateur n'a rien saisi et clique quand m=EAme sur le
bouton, avoir un message du genre "eh! pourquoi veux-tu enregistrer,
y'a rien =E0 enregistrer"
Voici le code g=E9n=E9r=E9 par Access suite =E0 l'utilisation de l'assistant=
pour cr=E9er mon bouton qui permet de sauvegarder
Private Sub Commande30_Click()
On Error GoTo Err_Commande30_Click
3) et si ce n'est pas trop demand=E9, j'aimerai conna=EEtre le code qui
permet d'effacer tout ce que l'utilisateur vient de saisir sur un
enregistrement
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thierry (ze Titi)
Hello Isa !
Comment allez-vous par ce lundi matin ? Ce matin, j'étais un peu endormi mais là, ça va... Et toi ?
Bon, j'ai crée un formulaire qui s'ouvre en mode ajout avec un bouton permettant de sauvegarder les données saisies J'aimerai 1) un message de confirmation avant sauvegarde Réponse pour 1) et 2):
Avant ton DoCmd.DoMenuItem:
If MsgBox("Voulez-vous sauvegarder ?",vbYesNo)=vbYes Then If Not (IsNull(champ1) or IsNull(champ2) or IsNull(champ3)) Then DoCmd.MenuItem.... Else MsgBox "Pourquoi enregistrer".... Exit Sub End If Else Exit Sub End If
2) et si l'utilisateur n'a rien saisi et clique quand même sur le bouton, avoir un message du genre "eh! pourquoi veux-tu enregistrer, y'a rien à enregistrer"
Voici le code généré par Access suite à l'utilisation de l'assistant pour créer mon bouton qui permet de sauvegarder Private Sub Commande30_Click() On Error GoTo Err_Commande30_Click
3) et si ce n'est pas trop demandé, j'aimerai connaître le code qui permet d'effacer tout ce que l'utilisateur vient de saisir sur un enregistrement
Private Sub viderControles() On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Controls If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox Then Ctl.Value = "" Next Ctl End Sub
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Hello Isa !
Comment allez-vous par ce lundi matin ?
Ce matin, j'étais un peu endormi mais là, ça va... Et toi ?
Bon, j'ai crée un formulaire qui s'ouvre en mode ajout avec un bouton
permettant de sauvegarder les données saisies
J'aimerai
1) un message de confirmation avant sauvegarde
Réponse pour 1) et 2):
Avant ton DoCmd.DoMenuItem:
If MsgBox("Voulez-vous sauvegarder ?",vbYesNo)=vbYes Then
If Not (IsNull(champ1) or IsNull(champ2) or IsNull(champ3)) Then
DoCmd.MenuItem....
Else
MsgBox "Pourquoi enregistrer"....
Exit Sub
End If
Else
Exit Sub
End If
2) et si l'utilisateur n'a rien saisi et clique quand même sur le
bouton, avoir un message du genre "eh! pourquoi veux-tu enregistrer,
y'a rien à enregistrer"
Voici le code généré par Access suite à l'utilisation de l'assistant
pour créer mon bouton qui permet de sauvegarder
Private Sub Commande30_Click()
On Error GoTo Err_Commande30_Click
3) et si ce n'est pas trop demandé, j'aimerai connaître le code qui
permet d'effacer tout ce que l'utilisateur vient de saisir sur un
enregistrement
Private Sub viderControles()
On Error Resume Next
Dim Ctl As Control
For Each Ctl In Me.Controls
If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox Then Ctl.Value = ""
Next Ctl
End Sub
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Comment allez-vous par ce lundi matin ? Ce matin, j'étais un peu endormi mais là, ça va... Et toi ?
Bon, j'ai crée un formulaire qui s'ouvre en mode ajout avec un bouton permettant de sauvegarder les données saisies J'aimerai 1) un message de confirmation avant sauvegarde Réponse pour 1) et 2):
Avant ton DoCmd.DoMenuItem:
If MsgBox("Voulez-vous sauvegarder ?",vbYesNo)=vbYes Then If Not (IsNull(champ1) or IsNull(champ2) or IsNull(champ3)) Then DoCmd.MenuItem.... Else MsgBox "Pourquoi enregistrer".... Exit Sub End If Else Exit Sub End If
2) et si l'utilisateur n'a rien saisi et clique quand même sur le bouton, avoir un message du genre "eh! pourquoi veux-tu enregistrer, y'a rien à enregistrer"
Voici le code généré par Access suite à l'utilisation de l'assistant pour créer mon bouton qui permet de sauvegarder Private Sub Commande30_Click() On Error GoTo Err_Commande30_Click
3) et si ce n'est pas trop demandé, j'aimerai connaître le code qui permet d'effacer tout ce que l'utilisateur vient de saisir sur un enregistrement
Private Sub viderControles() On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Controls If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox Then Ctl.Value = "" Next Ctl End Sub
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Isa
Un grand merci
on doit être lundi, je suis encore dans le gaz, de plus cela fait trois fois que je refais ce message
bon alors, j'ai bien une boîte de dialogue si je clique sur non, il n'efface pas ce que je viens de saisir si je clique sur oui, il m'affiche la deuxième boîte de dialogue "Pourquoi enregistrer"
si non le code suivant ne fait rien du tout
Private Sub viderControles() On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Controls If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComb oBox Then Ctl.Value = "" Next Ctl End Sub
alors j'ai inséré à l'aide de l'assistant le code suivant On Error GoTo Err_Commande36_Click
' demander oui ou non la sauvegarde If MsgBox("Voulez-vous sauvegarder ?", vbYesNo) = vbYes Then ' si oui sauvegarder DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 "si oui mais rien n'a sauvegarder, afficher message pourquoi sauvegarder" MsgBox "Pourquoi sauvegarder" Else "si non effacer le contenu de l'enregistrement DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 Exit Sub End If Else Exit Sub End If
End Sub
Avec le code ci-dessus, si je dis non, il efface le contenu de mes zones de texte mais si je dis oui ben il il ne veut pas et m'afficher "pourquoi enregistrer"
bref c'est la cata
Un grand merci
on doit être lundi, je suis encore dans le gaz, de plus cela fait
trois fois que je refais ce message
bon alors, j'ai bien une boîte de dialogue
si je clique sur non, il n'efface pas ce que je viens de saisir
si je clique sur oui, il m'affiche la deuxième boîte de dialogue
"Pourquoi enregistrer"
si non le code suivant ne fait rien du tout
Private Sub viderControles()
On Error Resume Next
Dim Ctl As Control
For Each Ctl In Me.Controls
If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComb oBox Then Ctl.Value = ""
Next Ctl
End Sub
alors j'ai inséré à l'aide de l'assistant le code suivant
On Error GoTo Err_Commande36_Click
' demander oui ou non la sauvegarde
If MsgBox("Voulez-vous sauvegarder ?", vbYesNo) = vbYes Then
' si oui sauvegarder
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, ,
acMenuVer70
"si oui mais rien n'a sauvegarder, afficher message pourquoi
sauvegarder"
MsgBox "Pourquoi sauvegarder"
Else
"si non effacer le contenu de l'enregistrement
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Exit Sub
End If
Else
Exit Sub
End If
End Sub
Avec le code ci-dessus, si je dis non, il efface le contenu de mes
zones de texte mais si je dis oui ben il il ne veut pas et m'afficher
"pourquoi enregistrer"
on doit être lundi, je suis encore dans le gaz, de plus cela fait trois fois que je refais ce message
bon alors, j'ai bien une boîte de dialogue si je clique sur non, il n'efface pas ce que je viens de saisir si je clique sur oui, il m'affiche la deuxième boîte de dialogue "Pourquoi enregistrer"
si non le code suivant ne fait rien du tout
Private Sub viderControles() On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Controls If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComb oBox Then Ctl.Value = "" Next Ctl End Sub
alors j'ai inséré à l'aide de l'assistant le code suivant On Error GoTo Err_Commande36_Click
' demander oui ou non la sauvegarde If MsgBox("Voulez-vous sauvegarder ?", vbYesNo) = vbYes Then ' si oui sauvegarder DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 "si oui mais rien n'a sauvegarder, afficher message pourquoi sauvegarder" MsgBox "Pourquoi sauvegarder" Else "si non effacer le contenu de l'enregistrement DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 Exit Sub End If Else Exit Sub End If
End Sub
Avec le code ci-dessus, si je dis non, il efface le contenu de mes zones de texte mais si je dis oui ben il il ne veut pas et m'afficher "pourquoi enregistrer"
bref c'est la cata
Isa
Un grand merci
on doit être lundi, je suis encore dans le gaz, de plus cela fait trois fois que je refais ce message
bon alors, j'ai bien une boîte de dialogue si je clique sur non, il n'efface pas ce que je viens de saisir si je clique sur oui, il m'affiche la deuxième boîte de dialogue "Pourquoi enregistrer"
si non le code suivant ne fait rien du tout
Private Sub viderControles() On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Controls If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComb oBox Then Ctl.Value = "" Next Ctl End Sub
alors j'ai inséré à l'aide de l'assistant le code suivant On Error GoTo Err_Commande36_Click
' demander oui ou non la sauvegarde If MsgBox("Voulez-vous sauvegarder ?", vbYesNo) = vbYes Then ' si oui sauvegarder DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 "si oui mais rien n'a sauvegarder, afficher message pourquoi sauvegarder" MsgBox "Pourquoi sauvegarder" Else "si non effacer le contenu de l'enregistrement DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 Exit Sub End If Else Exit Sub End If
End Sub
Avec le code ci-dessus, si je dis non, il efface le contenu de mes zones de texte mais si je dis oui ben il il ne veut pas et m'afficher "pourquoi enregistrer"
bref c'est la cata
Un grand merci
on doit être lundi, je suis encore dans le gaz, de plus cela fait
trois fois que je refais ce message
bon alors, j'ai bien une boîte de dialogue
si je clique sur non, il n'efface pas ce que je viens de saisir
si je clique sur oui, il m'affiche la deuxième boîte de dialogue
"Pourquoi enregistrer"
si non le code suivant ne fait rien du tout
Private Sub viderControles()
On Error Resume Next
Dim Ctl As Control
For Each Ctl In Me.Controls
If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComb oBox Then Ctl.Value = ""
Next Ctl
End Sub
alors j'ai inséré à l'aide de l'assistant le code suivant
On Error GoTo Err_Commande36_Click
' demander oui ou non la sauvegarde
If MsgBox("Voulez-vous sauvegarder ?", vbYesNo) = vbYes Then
' si oui sauvegarder
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, ,
acMenuVer70
"si oui mais rien n'a sauvegarder, afficher message pourquoi
sauvegarder"
MsgBox "Pourquoi sauvegarder"
Else
"si non effacer le contenu de l'enregistrement
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Exit Sub
End If
Else
Exit Sub
End If
End Sub
Avec le code ci-dessus, si je dis non, il efface le contenu de mes
zones de texte mais si je dis oui ben il il ne veut pas et m'afficher
"pourquoi enregistrer"
on doit être lundi, je suis encore dans le gaz, de plus cela fait trois fois que je refais ce message
bon alors, j'ai bien une boîte de dialogue si je clique sur non, il n'efface pas ce que je viens de saisir si je clique sur oui, il m'affiche la deuxième boîte de dialogue "Pourquoi enregistrer"
si non le code suivant ne fait rien du tout
Private Sub viderControles() On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Controls If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComb oBox Then Ctl.Value = "" Next Ctl End Sub
alors j'ai inséré à l'aide de l'assistant le code suivant On Error GoTo Err_Commande36_Click
' demander oui ou non la sauvegarde If MsgBox("Voulez-vous sauvegarder ?", vbYesNo) = vbYes Then ' si oui sauvegarder DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 "si oui mais rien n'a sauvegarder, afficher message pourquoi sauvegarder" MsgBox "Pourquoi sauvegarder" Else "si non effacer le contenu de l'enregistrement DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70 Exit Sub End If Else Exit Sub End If
End Sub
Avec le code ci-dessus, si je dis non, il efface le contenu de mes zones de texte mais si je dis oui ben il il ne veut pas et m'afficher "pourquoi enregistrer"
bref c'est la cata
Thierry (ze Titi)
Un grand merci Si ça ne fonctionne pas, tu n'as pas à me remercier... :o)
on doit être lundi, je suis encore dans le gaz, de plus cela fait trois fois que je refais ce message Private Sub Commande36_Click()
If MsgBox("Voulez-vous sauvegarder ?",vbYesNo)=vbYes Then If nz(champ1,"")<>"" and Nz(champ2,"")<>"" And Nz(champ3,"")<>"" Then 'Permet de tester si tes champs sont remplis DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Else MsgBox "Pourquoi enregistrer", vbOkOnly Exit Sub End If Else viderControles 'Implique que tu as copié la procédure que je t'ai donnée plus tôt qui ne "faisait rien du tout" pour reprendre tes mots ;-) Je l'ai remise en dessous Exit Sub End If End Sub
Private Sub viderControles() 'Cette procédure permet de vider les contrôles textes du formulaire en cours lorsqu'elle est appelée On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Controls If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox Then Ctl.Value = "" Next Ctl End Sub
Le code du bouton est bien sûr à adapter, notamment au niveau des noms des champs
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Un grand merci
Si ça ne fonctionne pas, tu n'as pas à me remercier... :o)
on doit être lundi, je suis encore dans le gaz, de plus cela fait
trois fois que je refais ce message
Private Sub Commande36_Click()
If MsgBox("Voulez-vous sauvegarder ?",vbYesNo)=vbYes Then
If nz(champ1,"")<>"" and Nz(champ2,"")<>"" And Nz(champ3,"")<>"" Then 'Permet de tester si tes champs sont remplis
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Else
MsgBox "Pourquoi enregistrer", vbOkOnly
Exit Sub
End If
Else
viderControles 'Implique que tu as copié la procédure que je t'ai donnée plus tôt qui ne "faisait rien du tout" pour reprendre tes mots ;-) Je l'ai remise en dessous
Exit Sub
End If
End Sub
Private Sub viderControles()
'Cette procédure permet de vider les contrôles textes du formulaire en cours lorsqu'elle est appelée
On Error Resume Next
Dim Ctl As Control
For Each Ctl In Me.Controls
If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox Then Ctl.Value = ""
Next Ctl
End Sub
Le code du bouton est bien sûr à adapter, notamment au niveau des noms des champs
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Un grand merci Si ça ne fonctionne pas, tu n'as pas à me remercier... :o)
on doit être lundi, je suis encore dans le gaz, de plus cela fait trois fois que je refais ce message Private Sub Commande36_Click()
If MsgBox("Voulez-vous sauvegarder ?",vbYesNo)=vbYes Then If nz(champ1,"")<>"" and Nz(champ2,"")<>"" And Nz(champ3,"")<>"" Then 'Permet de tester si tes champs sont remplis DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Else MsgBox "Pourquoi enregistrer", vbOkOnly Exit Sub End If Else viderControles 'Implique que tu as copié la procédure que je t'ai donnée plus tôt qui ne "faisait rien du tout" pour reprendre tes mots ;-) Je l'ai remise en dessous Exit Sub End If End Sub
Private Sub viderControles() 'Cette procédure permet de vider les contrôles textes du formulaire en cours lorsqu'elle est appelée On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Controls If Ctl.ControlType = acTextBox Or Ctl.ControlType = acComboBox Then Ctl.Value = "" Next Ctl End Sub
Le code du bouton est bien sûr à adapter, notamment au niveau des noms des champs
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Isa
bon je ne te dis donc pas merci ;-)
j'ai modifié le nom des champs et ajouter tous les autres champs du formulaire pour tester si les champs sont remplis
5/10 : si je remplis tous les champs puis un clic sur le bouton puis oui ok çà marche mais le contenu reste je ne passe pas à un enregistrement vierge sniff!!
10/10 : si je remplis quelques champs puis un clic sur le bouton puis oui il me dit que tous les champs ne sont pas remplis ok c'est ce que je veux
0/10 : par contre parfois ce n'est pas systématique si je remplis quelques champs puis un clic sur le bouton puis oui ou non il me dit que le champ mel ne peut pas être une chaîne vide késako ? idem lorsque je veux passer du mode formulaire au mode création puis erreur impossible d'enregistrer
voili
bon je ne te dis donc pas merci ;-)
j'ai modifié le nom des champs et ajouter tous les autres champs du
formulaire pour tester si les champs sont remplis
5/10 : si je remplis tous les champs puis un clic sur le bouton puis
oui ok çà marche mais le contenu reste je ne passe pas à un
enregistrement vierge sniff!!
10/10 : si je remplis quelques champs puis un clic sur le bouton puis
oui il me dit que tous les champs ne sont pas remplis ok c'est ce que
je veux
0/10 : par contre parfois ce n'est pas systématique si je remplis
quelques champs puis un clic sur le bouton puis oui ou non il me dit
que le champ mel ne peut pas être une chaîne vide késako ? idem
lorsque je veux passer du mode formulaire au mode création puis
erreur impossible d'enregistrer
j'ai modifié le nom des champs et ajouter tous les autres champs du formulaire pour tester si les champs sont remplis
5/10 : si je remplis tous les champs puis un clic sur le bouton puis oui ok çà marche mais le contenu reste je ne passe pas à un enregistrement vierge sniff!!
10/10 : si je remplis quelques champs puis un clic sur le bouton puis oui il me dit que tous les champs ne sont pas remplis ok c'est ce que je veux
0/10 : par contre parfois ce n'est pas systématique si je remplis quelques champs puis un clic sur le bouton puis oui ou non il me dit que le champ mel ne peut pas être une chaîne vide késako ? idem lorsque je veux passer du mode formulaire au mode création puis erreur impossible d'enregistrer