Bonsoir
J'ai un formulaire avec une liste déroulante, comment puis je faire
pour que lorsque j'inscris un nouveau nom dans la liste déroulante
celui ci s'ajoute à cette liste
Merci beaucoup
A+
Bonsoir
J'ai un formulaire avec une liste déroulante, comment puis je faire
pour que lorsque j'inscris un nouveau nom dans la liste déroulante
celui ci s'ajoute à cette liste
Merci beaucoup
A+
Ta liste doit être basée sur une table et tu dois ajouter un enregistrement à la table avec l'évènement NotInList.
Voilà un exemple de code qui permet d'ajourter un client à la table client qui sert de ource au combo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Private Sub RéfClient_NotInList(NewData As String, Response As Integer) Dim entDemande As Integer Dim bds As Database, rst As Recordset entDemande = MsgBox("Ajouter un nouveau client ?", vbQuestion + vbYesNo) If entDemande = vbYes Then Set bds = CurrentDb Set rst = bds.OpenRecordset("tblClients") rst.AddNew rst!Nom = NewData rst.Update Response = acDataErrAdded MsgBox ("Il faut mettre les données à jour!!!") Else Exit Sub End If rst.Close End Sub
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA
Mes articles
Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Bonjour
Merci Heureux-oli pour ta réponse
Je vais essayer et je te redis si c'est ok
Merci
Rebonjour
En fait j'ai ma table Societe où je rentre le nom des différentes entreprise.
Ensuite je refais un autre table (table 2) avec une liste déroulante sur laquelle je demande d'aller chercher les données de la table societe.
Voila le code :
Je ne sais pas ou mettre ce code exactement sur ma combobox ? mais sur quel evenement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Private Sub Societe_NotInList(NewData As String, Response As Integer) Dim entDemande As Integer Dim bds As Database, rst As Recordset entDemande = MsgBox("Ajouter un nouveau client ?", vbQuestion + vbYesNo) If entDemande = vbYes Then Set bds = CurrentDb Set rst = bds.OpenRecordset("Societe") rst.AddNew rst!Nom = NewData rst.Update Response = acDataErrAdded MsgBox ("Il faut mettre les données à jour!!!") Else Exit Sub End If rst.Close End Sub
Merci de votre aide
il faut mettre ce code dans absent dans liste et en VBA, c'est NotInList.
L'évènement se produit lorsque la valuer entrée n'est pas dans la liste.
Attention que Nom dans mon code correspond à un champ de ma table.
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA
Mes articles
Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Bonsoir
je viens de refaire un test mais je pense que je shinte une étape
Voila je fais une première table TblSociete avec un champ Nom qui est ma table de destination des nouveaux noms.
Ensuite je fais une seconde table TblRel avec un champ societé qui est une liste déroulante avec comme données d'entrées la TblSociete
Ensuite je fais mon formulaire TbleRel et sur la proprieté de la combobx sur l'évenement 'absent dans liste'
je mets ce code
Rien ne se passe comment cela se fait il ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Private Sub Nom_NotInList(NewData As String, Response As Integer) Dim entDemande As Integer Dim bds As Database, rst As Recordset entDemande = MsgBox("Ajouter un nouveau client ?", vbQuestion + vbYesNo) If entDemande = vbYes Then Set bds = CurrentDb Set rst = bds.OpenRecordset("TblSociete") rst.AddNew rst!Nom = NewData rst.Update Response = acDataErrAdded MsgBox ("Il faut mettre les données à jour!!!") Else Exit Sub End If rst.Close End Sub
Merci de votre aide
Je joins ma base Pour que vous puissiez comprende ce que j'ai fais (certificat.mdb)
Merci de votre aide
A+
C'est lié à la conception de l'ensemble.
Ton combo est issu de la table et non pas du formulaire.
Dans les tables, il ne faut rien mettre d'autre que des données.
Les listes, les sources, .... il est préférable de les mettre dans un formulaire.
Un autre motif, est que la propiété limiter à liste était sur non.
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA
Mes articles
Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Sinon tu fais propriété sur ta zone de liste déroulante et tu lui attribues une requête qu il te propose de créer, tu choisis dans les propriétés de ta requête valeur distinctes : oui comme ça a chaque fois que tu rajoute un nom dans la zone de liste il apparait par la suite. Sinon, dans ta table tu as une possibilité : assistant liste de choix.. Je suis nul en VBA. Mais je suis pas sur qu'il faille passé par du VBA pour résoudre un pb comme ça..
C'est correct, il est possible de le faire sans VBA, mais dans ce cas, tu n'auras aucun contrôle sur les données entrées, et pour une valeur qui devrait être indentique, tu te retrouve avec 10 ou 15 écritures ou introductions différentes. C'est quand tu veux extraire les données que c'est amusant de faire des corrections manuelles.
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA
Mes articles
Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Partager