Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2012, 15h22   #1
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 71
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 71
Points : 30
Points : 30
Par défaut Liste déroulante avec ajout automatique

Bonjour,

Il est facile de créer une liste déroulante contenant les valeurs de requêtes, ou tables, ou même avec des valeurs tapées lors de la création... mais, j'aimerais créer une liste déroulante avec ajout automatique, c'est-à-dire, qu'il sera possible de taper des autres valeurs que celles déjà présentes dans la liste, et évidemment ces valeurs seront présentes dans la liste déroulante pour les prochains enregistrements ! Et cela sans devoir ajouter des données dans une table ou requête liée....

Merci d'avance pour vos lumières :-)
CrasherSEP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 10h56   #2
Membre habitué
 
quentin massé
Inscription : janvier 2010
Messages : 251
Détails du profil
Informations personnelles :
Nom : quentin massé
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2010
Messages : 251
Points : 125
Points : 125
Salut,

je ne pense pas que se soit possible sans ajouter la nouvelle valeur dans la table source.
Si tu veux garder les nouvelles valeurs tapées tu es obligé de l'ajouter a la table qui alimente ta liste.
rob1son76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 15h44   #3
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 71
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 71
Points : 30
Points : 30
J'ai trouvé ceci...

L'événement NotInList

La liste déroulante est dotée d'un événement Sur absence dans liste (NotInList). Voici comment l'utiliser :

Créez une table comportant un champ Intitulé, de type Texte. Nommez cette table tblIntitulés. Renseignez éventuellement quelques valeurs dans cette table, à titre d'essai.
Créez ensuite un formulaire (non basé sur la table tblIntitulés).
Sur le formulaire, placez une liste déroulante, qui sera construite sur la table tblIntitulés.
Faites apparaître les propriétés de la liste déroulante (par un clic droit sur la liste). Définissez le nom (cmbListe par exemple), et réglez la propriété Limiter à liste sur Oui (sinon, l'événement Sur absence dans liste ne sera pas déclenché).
Enfin, écrivez le code Visual Basic suivant dans l'événement Sur absence dans liste :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub cmbListe_NotInList(NewData As String, _
  Response As Integer)
  Dim rst As DAO.Recordset
 
  If MsgBox("L'élément [" & _
    NewData & "] ne figure pas dans la liste. Voulez-vous l'ajouter ?", _
    vbQuestion + vbYesNo) = vbYes Then
      ' Ajouter l'élément à la liste
      Set rst = CurrentDb.OpenRecordset("tblIntitulés")
      rst.AddNew
        rst!Intitulé = NewData
      rst.Update
      rst.Close
      Set rst = Nothing
End If
 
' Annuler le message d'erreur d'Access
Response = acDataErrAdded
End Sub
Maintenant, j'ai une autre question... comment faire, pour que l'enregistrement se fasse obligatoirement en MAJUSCULE !!!! ???

Je sais qu'il y a Ucase(), mais je n'arrive pas à le mettre...

Je peux aussi mettre ">" dans le format du champ (Table), cela affiche bien en majuscule, mais n'est pas en majuscule, il suffit d'aller avec la souris sur le mot et il est de nouveau en minuscule...

Merci d'avance pour votre aide :-)

EDIT :

Trouvé... rst!Intitulé = UCase(NewData)
CrasherSEP est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h39.


 
 
 
 
Partenaires

Hébergement Web