Bonjour,
J'ai un petit soucis et en fait je vois aps trop comment m'en sortir
J'espère que vous pourrez m'aider et que la solution n'est pas dans la FAQ parce que j'ai regardé mais j'ai pas trouvé
Voila. J'ai un formulaire qui va m'aider a insérer des données dans dans une base.
Voila la procédure lors du click (qui est incomplète) :
J'utilise les fonctions suivantes présentes dans la FAQ :
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
28
29
30 Private Sub Ajout_essai_Click() Dim cmd As Command Dim rs As Recordset Dim n As Integer Dim SQL As String Set rs = New ADODB.Recordset rs.ActiveConnection = CurrentProject.Connection rs.Open "Essais" Do Until rs.EOF n = rs.Fields("Numero") rs.MoveNext Loop n = n + 1 Set cmd = New ADODB.Command cmd.ActiveConnection = CurrentProject.Connection SQL = "INSERT INTO Essais VALUES (" & n If ztdate_essai.Value <> "" Then SQL = SQL & ",#" & Format(ztdate_essai, "mm/dd/yyyy") & "#" End If If zlDossier.Value <> "" Then If verifliste(zlDossier, zlDossier.Value) Then [b] ???[/b] ..... 'cmd.CommandText = SQL 'cmd.Execute 'MsgBox ("La base " & ztnom_essai.Value & " a été ajoutée ! ") 'DoCmd.Close End Sub
et la procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Function verifliste(Liste As ListBox, Valeur As String) As Boolean Dim i As Integer For i = 0 To Liste.ListCount - 1 If Liste.ItemData(i) = Valeur Then verifliste = True Else verifliste = False End If Next i End Function
En fait mon problème est que sur le If je voudrais faire une condition de telle sorte que si la personne ne va pas chercher la valeur dans la liste et qu'il en rentre une, soit si elle y est (donc on vérifie en utilisant la fonction verifliste) on la sélectionne automatiquement dans la liste (en faisant un ItemData : ), soit si elle n'y est pas, il rajoute la valeur à la liste, sachant que dans la table de départ les valeur de 'Dossier' n'est pas une liste mais du texte. Mais dans le formulaire, c'est en fait une requete SQL qui donne les valeurs de la liste dans le formulaire (sachant que la table de départ a pour le moment 150 données)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub zlDossier_NotInList(NewData As String, Response As Integer) Dim cmd As Command Set cmd = New ADODB.Command cmd.ActiveConnection = CurrentProject.Connection If MsgBox("Voulez vous ajouter " & NewData & "à la liste ? ", vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then cmd.CommandText = "INSERT INTO Essais Values ('" & NewData & "');" cmd.Execute Response = acDataErrAdded Else Response = acDataErrContinue zlDossier.Undo End If End Sub
Je sais pas si j'ai été très clair sur ce dernier point
Finalement, je voudrais faire une "combo" de toutes ces fonctions mais j'y arrive pas
En fait, et parrallèlement, je pense qu'il faudrait utiliser la fonction NotInListe mais je vois pas trop comment l'utiliser
Je vous remercie de l'attention que vous porterez a ce message j'espère avoir été assez clair dans ma demande et je vous remercie par avance de l'aide que vous m'apporterez
Partager