Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à d'autres
(ce sera déjà tapé). Par ailleurs, c'est un problème "de base" ou
élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour le
nom de la ville, un contrôle pour le nombre d'habitants de la ville et
une liste déroulante pour choisir le pays auquel appartient la ville
(nom du champ : "Saisie_Pays"). J'ajoute encore les boutons de
validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays, un
contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des pays,
après avoir répondu "Oui" à la boîte de dialogue que la procédure
Private Sub Saisie_Pays_NotInList a fait apparaître, la boîte de
dialoguie "standard" d'Access apparaît quand même ("Le texte que vous
avez entré n'est pas un élément de la liste", etc ...) ; comment faire
pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à d'autres
(ce sera déjà tapé). Par ailleurs, c'est un problème "de base" ou
élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour le
nom de la ville, un contrôle pour le nombre d'habitants de la ville et
une liste déroulante pour choisir le pays auquel appartient la ville
(nom du champ : "Saisie_Pays"). J'ajoute encore les boutons de
validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays, un
contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des pays,
après avoir répondu "Oui" à la boîte de dialogue que la procédure
Private Sub Saisie_Pays_NotInList a fait apparaître, la boîte de
dialoguie "standard" d'Access apparaît quand même ("Le texte que vous
avez entré n'est pas un élément de la liste", etc ...) ; comment faire
pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à d'autres
(ce sera déjà tapé). Par ailleurs, c'est un problème "de base" ou
élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour le
nom de la ville, un contrôle pour le nombre d'habitants de la ville et
une liste déroulante pour choisir le pays auquel appartient la ville
(nom du champ : "Saisie_Pays"). J'ajoute encore les boutons de
validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays, un
contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des pays,
après avoir répondu "Oui" à la boîte de dialogue que la procédure
Private Sub Saisie_Pays_NotInList a fait apparaître, la boîte de
dialoguie "standard" d'Access apparaît quand même ("Le texte que vous
avez entré n'est pas un élément de la liste", etc ...) ; comment faire
pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Bonjour,Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à d'autres
(ce sera déjà tapé). Par ailleurs, c'est un problème "de base" ou
élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour le
nom de la ville, un contrôle pour le nombre d'habitants de la ville et
une liste déroulante pour choisir le pays auquel appartient la ville (nom
du champ : "Saisie_Pays"). J'ajoute encore les boutons de validation, de
sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un nom
de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays, un
contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des pays,
après avoir répondu "Oui" à la boîte de dialogue que la procédure Private
Sub Saisie_Pays_NotInList a fait apparaître, la boîte de dialoguie
"standard" d'Access apparaît quand même ("Le texte que vous avez entré
n'est pas un élément de la liste", etc ...) ; comment faire pour éviter
de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") > vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Bonjour,
Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à d'autres
(ce sera déjà tapé). Par ailleurs, c'est un problème "de base" ou
élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour le
nom de la ville, un contrôle pour le nombre d'habitants de la ville et
une liste déroulante pour choisir le pays auquel appartient la ville (nom
du champ : "Saisie_Pays"). J'ajoute encore les boutons de validation, de
sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un nom
de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays, un
contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des pays,
après avoir répondu "Oui" à la boîte de dialogue que la procédure Private
Sub Saisie_Pays_NotInList a fait apparaître, la boîte de dialoguie
"standard" d'Access apparaît quand même ("Le texte que vous avez entré
n'est pas un élément de la liste", etc ...) ; comment faire pour éviter
de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") > vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Bonjour,Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à d'autres
(ce sera déjà tapé). Par ailleurs, c'est un problème "de base" ou
élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour le
nom de la ville, un contrôle pour le nombre d'habitants de la ville et
une liste déroulante pour choisir le pays auquel appartient la ville (nom
du champ : "Saisie_Pays"). J'ajoute encore les boutons de validation, de
sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un nom
de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays, un
contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des pays,
après avoir répondu "Oui" à la boîte de dialogue que la procédure Private
Sub Saisie_Pays_NotInList a fait apparaître, la boîte de dialoguie
"standard" d'Access apparaît quand même ("Le texte que vous avez entré
n'est pas un élément de la liste", etc ...) ; comment faire pour éviter
de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") > vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Merci beaucoup,
Cela marche bien pour la création d'un nouvel enregistrement de la table
des
pays mais l'ouverture du formulaire avec la condition (l'instruction
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'") ne me
place
pas sur l'enregistrement du nouveau pays mais sur un nouvel enregistrement
(avec un formulaire filtré). Pour parvenir à ajouter la capitale, je dois
premièrement enlever le filtre et deuxièmement me positionner sur le
dernier
enregistrement. Je suppose également qu'il me faut recourir à un recordset
pour que le nom de la capitale soit inscrit dans la table des pays car
sinon
cela ne marche pas.
Merci de votre patience vis-à-vis d'un débutant ...
"Michel_D" a écrit dans le message
de news:Bonjour,Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à
d'autres (ce sera déjà tapé). Par ailleurs, c'est un problème "de
base" ou élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et
je souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père
n'existe pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour
le nom de la ville, un contrôle pour le nombre d'habitants de la
ville et une liste déroulante pour choisir le pays auquel appartient
la ville (nom du champ : "Saisie_Pays"). J'ajoute encore les boutons
de validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr
+ VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non
répertorié") = vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays,
un contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des
pays, après avoir répondu "Oui" à la boîte de dialogue que la
procédure Private Sub Saisie_Pays_NotInList a fait apparaître, la
boîte de dialoguie "standard" d'Access apparaît quand même ("Le texte
que vous avez entré n'est pas un élément de la liste", etc ...) ;
comment faire pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à
jour et je repars sur la procédure "NotInList"; comment faire éviter
cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le
contrôle correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") >> vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Merci beaucoup,
Cela marche bien pour la création d'un nouvel enregistrement de la table
des
pays mais l'ouverture du formulaire avec la condition (l'instruction
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'") ne me
place
pas sur l'enregistrement du nouveau pays mais sur un nouvel enregistrement
(avec un formulaire filtré). Pour parvenir à ajouter la capitale, je dois
premièrement enlever le filtre et deuxièmement me positionner sur le
dernier
enregistrement. Je suppose également qu'il me faut recourir à un recordset
pour que le nom de la capitale soit inscrit dans la table des pays car
sinon
cela ne marche pas.
Merci de votre patience vis-à-vis d'un débutant ...
"Michel_D" <Michel.NOSPAM@orange-ft.com.invalid> a écrit dans le message
de news:uaduCvkzIHA.2384@TK2MSFTNGP02.phx.gbl...
Bonjour,
Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à
d'autres (ce sera déjà tapé). Par ailleurs, c'est un problème "de
base" ou élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et
je souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père
n'existe pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour
le nom de la ville, un contrôle pour le nombre d'habitants de la
ville et une liste déroulante pour choisir le pays auquel appartient
la ville (nom du champ : "Saisie_Pays"). J'ajoute encore les boutons
de validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr
+ VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non
répertorié") = vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays,
un contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des
pays, après avoir répondu "Oui" à la boîte de dialogue que la
procédure Private Sub Saisie_Pays_NotInList a fait apparaître, la
boîte de dialoguie "standard" d'Access apparaît quand même ("Le texte
que vous avez entré n'est pas un élément de la liste", etc ...) ;
comment faire pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à
jour et je repars sur la procédure "NotInList"; comment faire éviter
cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le
contrôle correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") >> vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Merci beaucoup,
Cela marche bien pour la création d'un nouvel enregistrement de la table
des
pays mais l'ouverture du formulaire avec la condition (l'instruction
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'") ne me
place
pas sur l'enregistrement du nouveau pays mais sur un nouvel enregistrement
(avec un formulaire filtré). Pour parvenir à ajouter la capitale, je dois
premièrement enlever le filtre et deuxièmement me positionner sur le
dernier
enregistrement. Je suppose également qu'il me faut recourir à un recordset
pour que le nom de la capitale soit inscrit dans la table des pays car
sinon
cela ne marche pas.
Merci de votre patience vis-à-vis d'un débutant ...
"Michel_D" a écrit dans le message
de news:Bonjour,Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à
d'autres (ce sera déjà tapé). Par ailleurs, c'est un problème "de
base" ou élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et
je souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père
n'existe pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour
le nom de la ville, un contrôle pour le nombre d'habitants de la
ville et une liste déroulante pour choisir le pays auquel appartient
la ville (nom du champ : "Saisie_Pays"). J'ajoute encore les boutons
de validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr
+ VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non
répertorié") = vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays,
un contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des
pays, après avoir répondu "Oui" à la boîte de dialogue que la
procédure Private Sub Saisie_Pays_NotInList a fait apparaître, la
boîte de dialoguie "standard" d'Access apparaît quand même ("Le texte
que vous avez entré n'est pas un élément de la liste", etc ...) ;
comment faire pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à
jour et je repars sur la procédure "NotInList"; comment faire éviter
cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le
contrôle correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") >> vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Bonjour,
Tu as bien fait correspondre les noms de champs de ta table dédié au Pays
?
PS:[NomPays] est un nom de champ de la table [Pays].Merci beaucoup,
Cela marche bien pour la création d'un nouvel enregistrement de la table
des
pays mais l'ouverture du formulaire avec la condition (l'instruction
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'") ne me
place
pas sur l'enregistrement du nouveau pays mais sur un nouvel
enregistrement
(avec un formulaire filtré). Pour parvenir à ajouter la capitale, je dois
premièrement enlever le filtre et deuxièmement me positionner sur le
dernier
enregistrement. Je suppose également qu'il me faut recourir à un
recordset
pour que le nom de la capitale soit inscrit dans la table des pays car
sinon
cela ne marche pas.
Merci de votre patience vis-à-vis d'un débutant ...
"Michel_D" a écrit dans le message
de news:Bonjour,Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à
d'autres (ce sera déjà tapé). Par ailleurs, c'est un problème "de base"
ou élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour
le nom de la ville, un contrôle pour le nombre d'habitants de la ville
et une liste déroulante pour choisir le pays auquel appartient la ville
(nom du champ : "Saisie_Pays"). J'ajoute encore les boutons de
validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays,
un contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des
pays, après avoir répondu "Oui" à la boîte de dialogue que la procédure
Private Sub Saisie_Pays_NotInList a fait apparaître, la boîte de
dialoguie "standard" d'Access apparaît quand même ("Le texte que vous
avez entré n'est pas un élément de la liste", etc ...) ; comment faire
pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") >>> vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Bonjour,
Tu as bien fait correspondre les noms de champs de ta table dédié au Pays
?
PS:[NomPays] est un nom de champ de la table [Pays].
Merci beaucoup,
Cela marche bien pour la création d'un nouvel enregistrement de la table
des
pays mais l'ouverture du formulaire avec la condition (l'instruction
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'") ne me
place
pas sur l'enregistrement du nouveau pays mais sur un nouvel
enregistrement
(avec un formulaire filtré). Pour parvenir à ajouter la capitale, je dois
premièrement enlever le filtre et deuxièmement me positionner sur le
dernier
enregistrement. Je suppose également qu'il me faut recourir à un
recordset
pour que le nom de la capitale soit inscrit dans la table des pays car
sinon
cela ne marche pas.
Merci de votre patience vis-à-vis d'un débutant ...
"Michel_D" <Michel.NOSPAM@orange-ft.com.invalid> a écrit dans le message
de news:uaduCvkzIHA.2384@TK2MSFTNGP02.phx.gbl...
Bonjour,
Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à
d'autres (ce sera déjà tapé). Par ailleurs, c'est un problème "de base"
ou élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour
le nom de la ville, un contrôle pour le nombre d'habitants de la ville
et une liste déroulante pour choisir le pays auquel appartient la ville
(nom du champ : "Saisie_Pays"). J'ajoute encore les boutons de
validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays,
un contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des
pays, après avoir répondu "Oui" à la boîte de dialogue que la procédure
Private Sub Saisie_Pays_NotInList a fait apparaître, la boîte de
dialoguie "standard" d'Access apparaît quand même ("Le texte que vous
avez entré n'est pas un élément de la liste", etc ...) ; comment faire
pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") >>> vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Bonjour,
Tu as bien fait correspondre les noms de champs de ta table dédié au Pays
?
PS:[NomPays] est un nom de champ de la table [Pays].Merci beaucoup,
Cela marche bien pour la création d'un nouvel enregistrement de la table
des
pays mais l'ouverture du formulaire avec la condition (l'instruction
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'") ne me
place
pas sur l'enregistrement du nouveau pays mais sur un nouvel
enregistrement
(avec un formulaire filtré). Pour parvenir à ajouter la capitale, je dois
premièrement enlever le filtre et deuxièmement me positionner sur le
dernier
enregistrement. Je suppose également qu'il me faut recourir à un
recordset
pour que le nom de la capitale soit inscrit dans la table des pays car
sinon
cela ne marche pas.
Merci de votre patience vis-à-vis d'un débutant ...
"Michel_D" a écrit dans le message
de news:Bonjour,Bonjour,
C'est un peu long mais si j'ai la réponse, ceci pourra servir à
d'autres (ce sera déjà tapé). Par ailleurs, c'est un problème "de base"
ou élémentaire.
Sous Access 2007, j'ai une table des pères et une table des fils et je
souhaite faire un formulaire de saisie des fils qui appelle, si
nécessaire, un formulaire de saisie des pères (lorsque le père n'existe
pas dans la table des pères).
Par exemple :
- la table des pères est une table de pays, contenant, outre
l'identifiant généré automatiquement, le nom du pays et le nom de la
capitale du pays.
- la table des fils est une trable de cilles, contenant, outre
l'identifiant généré automatiquement, le nom de la ville, le nombre
d'habitants de la ville et la jointure avec la table des pays.
Je construis donc un formulaire "Saisie_Villes" avec un contrôle pour
le nom de la ville, un contrôle pour le nombre d'habitants de la ville
et une liste déroulante pour choisir le pays auquel appartient la ville
(nom du champ : "Saisie_Pays"). J'ajoute encore les boutons de
validation, de sortie, etc ... nécessaires.
Ma liste déroulante contient le code VBA suivant lorsque je saisis un
nom de pays qui n'existe pas :
J'ai saisi le code suivant :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") =
vbOK Then
DoCmd.OpenForm "Saisie_Pays", , , , acFormAdd
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub
Le formulaire "Saisie_Pays" comprend un contrôle pour le nom du pays,
un contrôle pour le nom de la capitale et les boutons de validation,
annulation, etc ...nécessaires.
Malheureusement, je suis confronté aux problèmes suivants :
- lorsque je saisis un nom de pays qui n'est pas dans la table des
pays, après avoir répondu "Oui" à la boîte de dialogue que la procédure
Private Sub Saisie_Pays_NotInList a fait apparaître, la boîte de
dialoguie "standard" d'Access apparaît quand même ("Le texte que vous
avez entré n'est pas un élément de la liste", etc ...) ; comment faire
pour éviter de l'afficher ?
- une fois que j'ai validé la saisie du nom du pays et de ses
caractéristiques (ici la capitale), lorsque je reviens sur le premier
formulaire ("Saisie_Villes"), la liste déroulante n'est pas mise à jour
et je repars sur la procédure "NotInList"; comment faire éviter cela ?
- enfin, j'aimerais bien que lorsque le formulaire "Saisie_pays" est
ouvert, le nom du pays que j'ai déjà tapé figure déjà dans le contrôle
correspondant.
D'avance, merci pour votre assistance.
Essaye comme ceci (à adapter) :
Private Sub Saisie_Pays_NotInList(NewData As String, Response As
Integer)
If MsgBox (NewData & " n'appartient pas à la liste des pays." + vbCr +
VbLf + "Voulez-vous l'ajouter ?", vbOKCancel, "Pays non répertorié") >>> vbOK Then
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [TablePays] (NomPays) VALUES (' & NewData &
"');"
DoCmd.SetWarnings True
DoCmd.OpenForm "Saisie_Pays", , , "NomPays = '" & NewData & "'"
Response = acDataErrAdded
Else
Response = acDateErrContinue
Saisie_Pays.Undo
End If
End Sub