Auto-complétion

Pi_Xi Messages postés 2274 Statut Membre -  
blux Messages postés 5039 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? ^^

8 réponses

  1. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  2. Pi_Xi Messages postés 2274 Statut Membre 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
    1. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
    2. Pi_Xi Messages postés 2274 Statut Membre 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
  3. Pi_Xi Messages postés 2274 Statut Membre 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
    1. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
    2. Pi_Xi Messages postés 2274 Statut Membre 149
       
      Désolée, ça m'a echappé... ^^
      Bon il me fallait des "*" dans ma requête, au lieu des "#" :D
      0
    3. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      N'ayant pas vu de # dans ton code, je ne m'en suis pas préoccupé... ;-)
      0
    4. Pi_Xi Messages postés 2274 Statut Membre 149
       
      Je voulais dire au lieu des % !! ;)
      0
  4. Pi_Xi Messages postés 2274 Statut Membre 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
    1. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pi_Xi Messages postés 2274 Statut Membre 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
    1. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
    2. Pi_Xi Messages postés 2274 Statut Membre 149
       
      Mon outil fonctionne avec le code ci-dessous ;)
      0
  7. Pi_Xi Messages postés 2274 Statut Membre 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
  8. Pi_Xi Messages postés 2274 Statut Membre 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
    1. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
    2. Pi_Xi Messages postés 2274 Statut Membre 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
    3. Pi_Xi Messages postés 2274 Statut Membre 149
       
      Ha non c good, j'insérais un "Code" pas valable... ^^
      0
    4. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Violation de clé, c'est qu'une clé primaire existe déjà ou qu'un champ indexé sans doublon existe déjà...
      0
    5. Pi_Xi Messages postés 2274 Statut Membre 149
       
      mon Code devait prendre certaines valeurs, et j'étais à côté avec le String "Code" :p
      0
  9. Pi_Xi Messages postés 2274 Statut Membre 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
    1. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Rien compris...
      0
    2. Pi_Xi Messages postés 2274 Statut Membre 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
    3. blux Messages postés 5039 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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