ne peut acceder par programmation qu'aux lignes ' visibles ' au moment
de l'execution du code.
Passez par une table mémoire ( votre table est certainement petite, on
autorise rarement une multi sélection si il y a vraiment beacoup
d'enregistrements ).
Remplissez la table avec FichierVersTableMemoire()
Comme il n'y a pas de valeur mémorisée, placez simplement la valeur à
mémoriser dans une colonne invisible et le tour est joué ^^
Ex :
( table mémoire avec deux colonnes NOM et IDCLIENT(cachée) )
ReqClient est une source de données
HExécuteRequêteSQL(ReqClient,"SELECT NOM,IDCLIENT FROM CLIENT")
FichierVersTableMemoire(MaTable,ReqClient)
Et cette ligne pour récuperer l'ID souhaité.
MonIDToto = ListeTOTO[iLigneSelectionnee][2]
Edith BARDIN wrote:
Bonjour,
Ayant une liste multi-sélection remplie à l'aide d'une requête SQL (select
simple) sur une table (externe) tout à fait basique (la valeur affichée
lignes sélectionnées dans une liste multi-sélection :
ii est un entier = 1
iLigneSelectionnee est un entier
iLigneSelectionnee=ListeSelect(ListeTOTO,1)
TANTQUE iLigneSelectionnee<>-1
// Récup de l'ID de la ligne sélectionnée MonIDToto = ListeTOTO[iLigneSelectionnee]..ValeurMémorisée
ii++
iLigneSelectionnee=ListeSelect(ListeTOTO,ii)
FIN
Prenons l'exemple de la sélection de la 3ème et de la 5ème lignes de la
multi-sélection, le message d'erreur est invariant :
'Erreur à la ligne xx du traitement Clic sur BoutonChose.
L'indice spécifié[3]est invalide.
ListeTOTO utilise un fichier ou une requête comme source de données.
Seuls les éléments visibles sont accessibles en programmation.'
Les autres essais pour récupérer cette fois la valeur AFFICHEE de la ligne
sélectionnée génère la même erreur...
(Idem aussi avec la syntaxe 'MonIDToto = ListeTOTO[iLigneSelectionnee]')
Question : Quel intérêt de permettre de garder une valeur pour une ligne
(affichée et/ou mémorisée) si on ne peut y accéder directement en programmation
?
Me faudra-t-il ajouter une à une les valeurs des lignes dans la liste