Auto-complétion

Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je cherche à avoir un mécanisme d'auto-complétion dans une combobox (Modifiable15)
Mon code:

Private Sub Modifiable15_Change()

strText = Me.Modifiable15.Text

Sql = "SELECT Adresse.Adresse FROM Adresse WHERE IdNRO='" & Me.Modifiable4.Value & "' AND Adresse LIKE '%" & strText & "%' ;"

Me.Modifiable15.RowSource = Sql
Me.Modifiable15.Dropdown
End Sub

Pourquoi cela ne fonctionne-t-il pas svp? ^^
A voir également:

8 réponses

blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

qu'est ce qui ne fonctionne pas ?
Ton objet Modifiable15 est de quel type : zone de liste ou zone de liste déroulante ?
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour Blux,

tout d'abord, quel honneur de te croiser sur mon post :D

Quand je tape une valeur dans la zone texte de ma liste, la requête ne retourne apparemment aucun résultats, alors qu'il y en a en base ^^

Modifiable15 est une zone de liste déroulante.

edit: et la requête est bonne, je ne comprends pas ce qui bloque !
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
tout d'abord, quel honneur de te croiser sur mon post :D
Quel honneur ?

As-tu tenté un :

Me.Modifiable15.Requery
Me.Modifiable15.Refresh
Me.Modifiable15.Repaint
(Rayer les mentions inutiles...)

avant le dropdown ?

Ta liste possède-t-elle la propriété autocompletion ?
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Oui ma liste possède la propriété auto complétion, et j'avais déjà ajouté un Me.Requery et Me.Refresh avant le dropdown.
J'ai essayé ta méthode, elle ne fonctionne pas :(
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Quel honneur, car je t'ai croisé x-fois sur le forum access et tu sembles être un expert ;)
Je te tiens au courant lundi matin, ou avant ^^ Merci pour ton aide précieuse et @bientôt !
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Quel honneur, car je t'ai croisé x-fois sur le forum access et tu sembles être un expert ;)
A ces mots le Corbeau ne se sent pas de joie...
;-)
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Désolée, ça m'a echappé... ^^
Bon il me fallait des "*" dans ma requête, au lieu des "#" :D
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
N'ayant pas vu de # dans ton code, je ne m'en suis pas préoccupé... ;-)
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Je voulais dire au lieu des % !! ;)
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Je voudrais aller un peu plus loin en concaténant les N°, Voie et Adresse de ma table Adresse, afin de les retourner dans le RowSource qui intègre l'auto-complétion.

Public Function RecupAdresse(SQL)

Dim res As DAO.Recordset

Set res = CurrentDb.OpenRecordset(SQL)

While Not res.EOF

RecupAdresse = RecupAdresse + res.Fields(0).Value & "," & res.Fields(1).Value & "," & res.Fields(2).Value

res.MoveNext

Wend

'libere la mémoire
Set res = Nothing

End Function

et lors de la modification de Modifiable15 :

' ADRESSE
Private Sub Modifiable15_Change()

strText = Me.Modifiable15.Text

SQL = "SELECT N°, Voie, Adresse FROM Adresse WHERE IdNRO='" & Me.Modifiable4.Value & "' AND Adresse LIKE '*" & strText & "*' ;"

Me.Modifiable15.RowSource = RecupAdresse(SQL)

Me.Requery
Me.Refresh

Me.Modifiable15.Dropdown

End Sub

Qu'est-ce qui cloche dans mon dev svp?
J'ai bien précisé 3 colonnes dans mon Modifiable15 ^^
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Qu'est-ce qui cloche dans mon dev svp?
De là où je suis, je ne vois rien, mais peut-être que si tu indiques le problème, on pourra avancer...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Je fais plus simple.
Je veux que la combobox m'affiche les dossiers comprenant la chaine de caractères saisie.

Public Function RecupAdresse(SQL)

Dim res As DAO.Recordset

Set res = CurrentDb.OpenRecordset(SQL)

While Not res.EOF

RecupAdresse = RecupAdresse + res.Fields(0).Value

res.MoveNext

Wend

Set res = Nothing

End Function


' ADRESSE
Private Sub Modifiable15_Change()

strText = Me.Modifiable15.Text

SQL = "SELECT Dossier FROM Adresse WHERE IdNRO='" & Me.Modifiable4.Value & "' AND Adresse LIKE '*" & strText & "*' ;"

Me.Modifiable15.RowSource = RecupAdresse(SQL)

MsgBox (RecupAdresse(SQL))

Me.Requery
Me.Refresh

Me.Modifiable15.Dropdown

End Sub
J'ai bien les bonnes valeurs dans mon MsgBox, mais je n'arrive pas à les afficher dans le RowSource...
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
mais je n'arrive pas à les afficher dans le RowSource...
Il va falloir m'aider un peu plus que ça en me précisant le comportement de la liste :
- ça n'affiche rien
- ça n'affiche pas ce qui est prévu
- il y a un message d'erreur
- ça disjoncte au compteur
- le fbi sonne à ta porte
- tu entends Céline Dion à la radio
- tu entends Céline Dion ET Lara Fabian à la radio
- ...

De plus, tu concatènes des chaines pour n'en faire qu'une, il est donc illusoire de paramétrer 3 colonnes dans la liste...
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Mon outil fonctionne avec le code ci-dessous ;)
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Voici le code qui fonctionne:

Private Sub Modifiable15_AfterUpdate()

Dim SQL As String
Dim strText As String

strText = Me.Modifiable15.Text

SQL = "SELECT Dossier FROM Adresse WHERE IdNRO='" & Me.Modifiable4.Value & "' AND Dossier LIKE '*" & strText & "*' ;"

Me.Modifiable15.RowSource = SQL

Me.Requery
Me.Refresh

Me.Modifiable15.Dropdown

End Sub
Merci Blux !
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Autre problème: les DATES !!
' ENREGISTRER
Private Sub Commande12_Click()

Dim SQL, SQL_Update, SQL_Insert As String
Dim Code, Traitant As String
Dim Today As String
'Dim Today As Date

Code = "Code"
Traitant = "Traitant"
Today = Format(Now(), "mm/dd/yyyy")

SQL_Insert = "INSERT INTO Opérations_progress (Lot, Code, Commune, IdNRO, IdPM, Quantité, dateProduction, Traitant) " & _
"VALUES ('6', '" & Code & "','" & Modifiable13.Value & "','" & Modifiable4.Value & "', '" & Modifiable6.Value & "', 1, #" & Today & "#, '" & Traitant & "');"

DoCmd.RunSQL (SQL_Insert)

End Sub
J'ai un problème de type, problème d'insertion de la date a priori, alors qu'elle s'affiche bien dans le MsgBox!?

edit: ha non ça ne vient pas de la date :'(
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
J'ai un problème de type, problème d'insertion de la date a priori, alors qu'elle s'affiche bien dans le MsgBox!?
Comme je l'ai déjà demandé, comment se manifeste le problème ?
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Ben après m'avoir avertie que j'allais ajouter une ligne, Access me dit qu'il y a un problème de type dans la requête et qu'elle ne peut être insérée, à la suite d'une violation de clé :'(
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Ha non c good, j'insérais un "Code" pas valable... ^^
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Violation de clé, c'est qu'une clé primaire existe déjà ou qu'un champ indexé sans doublon existe déjà...
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
mon Code devait prendre certaines valeurs, et j'étais à côté avec le String "Code" :p
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Autre petite question :
Je voudrais importer un fichier Excel en faisant un UPDATE sur ma table adresse.
Dans ma table, les n° de dossiers sont renseignés, je veux mettre à jour les IdPB...
Comment m'y prendre? ^^
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Rien compris...
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
ben avec MySQL, j'insérais des UPDATE dans mon fichier Excel et je balançais le fichier, et mes requêtes tournaient.
Là je ne sais pas comment faire avec les UPDATE dans mon fichier Excel ^^
0
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Une commande docmd.transferspreadsheet dans une table temporaire et ensuite une requête UPDATE à partir de cette table pour mise à jour des infos que tu souhaites...
0