none
Tester Si un Valeur est absente Dans Un Combotext RRS feed

  • Question

  • Bonjour

    je voudrai savoir comment verifier si une valeur est absente dans un combobox "bindé" à partir d'une table Access-En fait  ce que je veux c'est que l'utilisateur entre un nom dans le combo- celui ci lui propose des valeur à partir de la table "noms" de ma base access- (jusque là pas de problem) et dans le cas ou la valeur qu'il a tapé est inexistante je lui propose de l'inserer directement dans la table via un autre form- à titre d'info- je suis novice en Visual Studio et En VB , je viens de l'univers ACCES-  merci d'avance 

    mardi 12 mai 2015 15:23

Réponses

  • bonjour,

    Voici une version plus simplifier pour rechercher des mots dans un combobox1:

    voici en image :

    mon code :

    Public Class Form1
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim liste As New AutoCompleteStringCollection
            liste.Add("liste")
            liste.Add("salut")
            liste.Add("bonjour")
            liste.Add("bonjours")
            liste.Add("services")
            liste.Add("dernier")
            liste.Add("changer")
            liste.Add("ajouter")
            liste.Add("insérer")
            liste.Add("devenir")
            ComboBox1.AutoCompleteMode = AutoCompleteMode.Suggest
            ComboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
            ComboBox1.AutoCompleteCustomSource = liste
        End Sub
    End Class

    cordialement,

    zorro591,

    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    samedi 16 mai 2015 09:46

Toutes les réponses

  • j'avais lu une réponse de Guillaume qui ne figure plus dans la liste de réponses - Je tiens à le remercier et reposer le problème comme il m'avait suggéré- Merci Guillaume d'avoir répondu tellement  vite, c vraiment sympa .

    en bref- Voila : de  J'ai 1 BDD Access   avec  2 table  Patient et Consult  avec une - relation 1 à plusieurs  sur La clef Primaire N_Doss-
    je Crée un form principal relié à la table Patient avec un DatagridView - et un combotext qui a comme ValueMember le champs "Ndoss"  et pour  DisplayMember le champs Nom de la table Patient -je recupere donc la liste des Noms dans le combo : l'utilisateur peut taper le nom qu'il veut il sera aidé par

    le combo dans la sélection des Patient dans le GridView- jusque là c'est nickel ( et c là - la raison pour j'ai opté au combo)- seulement s'il tape un nom qui n'existe pas je doit lui offrir 
    la possibilité de créer un nouveau enregistrement Patient- ça fait un peu compliké je reconnait- mais l'une des raisons pour est  :

    *-* minimiser (à l'idéal interdire) la création de plusieurs Id pour un Même Patient ( physique) car ceci pose probleme dans la gestion des dossiers -

    *-* y'a aussi et surement pour une grande part mon ignorance- car je débute avec VB.net -  
    encore une fois merci Guillaume pour ton Aide


    mardi 12 mai 2015 17:26
  • Bonsoir,

    Voici un petit exemple de recherche dans un combobox

    Utilisez l'évènement KeyUp et filtrez les touches. Exécutez la recherche lorsque l'utilisateur a tapé la touche Entrée.

    La fonction FindString recherche les textes du combo qui commencent par la chaine modèle et tient compte des minuscule/majuscule..

    Si cette recherche  échoue il faut faire autrement comme décrit ci-dessous:

    private void comboBox1_KeyUp(object sender, KeyEventArgs e)
    {
      if (e.KeyCode != Keys.Enter)
         return;

      int idx = comboBox1.FindString(comboBox1.Text);
      if (idx == -1)
      {

      string l_Txt = comboBox1.Text.ToUpper();
      IEnumerable<string> kTxt = comboBox1.Items.OfType<string>().Where(unTxt => unTxt.ToUpper().Contains(l_Txt));
         idx = (kTxt.Count() > 0) ? comboBox1.FindString(kTxt.ElementAt(0)) : -1;
      }
      comboBox1.SelectedIndex = idx;
    }

    Cordialement
    Gérard



    • Proposé comme réponse GP79 mercredi 13 mai 2015 20:15
    • Modifié GP79 jeudi 14 mai 2015 07:18
    mercredi 13 mai 2015 20:15
  • Bonjour Gérard

    j'essayerai votre Proposition

    merci pour l'effort

    jeudi 14 mai 2015 15:10
  • bonjour,

    Voici une version plus simplifier pour rechercher des mots dans un combobox1:

    voici en image :

    mon code :

    Public Class Form1
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim liste As New AutoCompleteStringCollection
            liste.Add("liste")
            liste.Add("salut")
            liste.Add("bonjour")
            liste.Add("bonjours")
            liste.Add("services")
            liste.Add("dernier")
            liste.Add("changer")
            liste.Add("ajouter")
            liste.Add("insérer")
            liste.Add("devenir")
            ComboBox1.AutoCompleteMode = AutoCompleteMode.Suggest
            ComboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
            ComboBox1.AutoCompleteCustomSource = liste
        End Sub
    End Class

    cordialement,

    zorro591,

    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    samedi 16 mai 2015 09:46
  • Bonjour zorro591

    citation

    "et dans le cas ou la valeur qu'il a tapé est inexistante je lui propose de l'inserer directement dans la table via un autre form- "

    Votre réponse est effectivement une solution - dans le cas où on définie nous même la liste des items- Seulement voilà quand on lie le CB à une Table Access  l’insertion d'un nouveau enregistrement directement à partir du combo m'est compliqué.- merci pour votre effort

    lundi 18 mai 2015 12:11