Page 1 sur 1

2 colonnes dans Combobox

Posté : lun. 03 juil. 2017 14:12
par Ramirez22
Bonjour à toutes et à tous.

Je cherche à faire une combobox à 2 colonnes ou quelque chose qui pourrait s'en approcher.
Petite explication:
J'ai une base de donnée SQlite avec une table comprenant une colonne "code" et une colonne "description".
Le code est un groupe de 2 ou 3 caractères et la description... une description du code :roll:

Dans un formulaire, j'ai une liste déroulante (combobox) que je rempli avec les données de la colonne "code".
Ce n'est pas très ergonomique pour les utilisateurs (qui doivent mémoriser plus d'une centaine de codes) et j'aimerais afficher le code et la description correspondante lors du choix dans la liste déroulante.
  • Soit avec 2 colonne dans la liste déroulante
  • Soit avec un commentaire qui s'affiche lorsque l'on pointe l'élément (item) de la liste déroulante et que je renseignerais en fonction de la colonne "description"
J'ai déjà essayé de concaténer les 2 colonnes de ma table, mais si l'affichage fonctionne, le traitement derrière est beaucoup plus complexe (pour récupérer l'index de l'enregistrement de la table SQLite). Il faudrait que la sélection ne renvoie que le "code" et pas la "description".

Impossible de réaliser la sélection de l'item par le numéro d'index de la combobox car je la rempli avec une fonction SQLite "SORT BY xxx ASC" (ce qui permet d'avoir un classement alphabétique de mes codes) et donc, les codes dans la combobox ne sont pas dans le même ordre que les codes de la table SQLite.

Bref, existe-t'il un moyen (simple ?) de faciliter la vie de mes utilisateurs ?

J'espère que mes explications sont claires (moi, je me comprends :lol: )

Merci de vos idées.

Re: 2 colonnes dans Combobox

Posté : lun. 03 juil. 2017 16:12
par walkson
Bonjour,
Quand vous faites votre requête _SQLite_GetTable2d(-1, $sql ,$aResult, $iRows, $iColumns) vous récupérez $aResult qui est un array qui permet de charger la combo en bouclant sur la première colonne de $aResult
$lire = ""
   For $i = 0 To UBound($aResult,1) - 1
      $lire &= $aResult[$i][0] & "|"
   Next
Guictrlsetdata($combo,$lire)
Donc, l'ordre du combo est le même que $aResult, ce qui nous donne en cliquant sur le quatrième item du combo => $aResult[4][1] la description et $aResult[4][0] le code

Re: 2 colonnes dans Combobox

Posté : mar. 04 juil. 2017 18:23
par Ramirez22
Bonjour Walkson

Avant tout, merci de m'avoir répondu.
Je vais essayer ça, mais j'ai du mal à comprendre le fonctionnement.
Ça semblera sans doute plus clair après essais :lol:

Merci encore, je posterai le résultat un peu plus tard.