OVH Cloud OVH Cloud

Probleme Index Zone de Liste

2 réponses
Avatar
mhpeyroux
Bonjour,

J'ai un probleme d'index dans une zone de liste modifiable.

J'ai une zone de liste non modifiable zoneListe1 dans le formulaire
Form1 presentant des enregistrements avec quatre champs distincts (une
seule ligne est selectionnable) provenant de la table Table1.

Avec un groupe d'option Groupe1, je modifie le champ4 et met à jour le
zone de liste, par exemple :

Dim Var As Variant

Var = ZoneListe1.ListIndex + 1 'index de la ligne selectionnee

If Group1.Value = "1" Then
'champ1 = cle primaire dans colonne 1 de la liste)
DoCmd.RunSQL ("UPDATE Table1 SET champ4="lalala"
WHERE champ1 = '" & zoneListe1.column(1,Var) & "';")
Else
DoCmd.RunSQL ("UPDATE Table1 SET champ4="lilili"
WHERE champ1 = '" & zoneListe1.column(1,Var)& "';")
End If

ZoneListe1.Requery


Ca marche tres bien pour la premiere selection, mais ensuite, quelque
soit la ligne selectionnee Var prend le numero de ligne de la premiere
selection.

J'ai essayé de mettre à jour la zonedeliste1 ou le formulaire mais
rien n'y fait

Qqn aurait une idee ?

Merci d'avance

Marie Helene

2 réponses

Avatar
Daniel Carollo
Bonsoir Marie-Helene!

Vous ne dites pas dans quel evenement vous executez le code, mais je
suspecte que votre ZoneListe1.Requery vous replace au depart de la
selection.
De plus, je ne vois rien dans votre code qui fasse parcourir les selections,
typiquement ce serait une boucle du type:
For Each Element in ZoneListe1.Selected
blah-blah mon traitement
Next Element

Une petite remarque en passant, il serait certainement plus rapide de
construire une seule requete pour traiter toutes les selections de la liste
d'un coup, si c'est une requete de mise a jour...

J'espere que ca vous donne des idees.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Marie-Helene" wrote in message
news:
Bonjour,

J'ai un probleme d'index dans une zone de liste modifiable.

J'ai une zone de liste non modifiable zoneListe1 dans le formulaire
Form1 presentant des enregistrements avec quatre champs distincts (une
seule ligne est selectionnable) provenant de la table Table1.

Avec un groupe d'option Groupe1, je modifie le champ4 et met à jour le
zone de liste, par exemple :

Dim Var As Variant

Var = ZoneListe1.ListIndex + 1 'index de la ligne selectionnee

If Group1.Value = "1" Then
'champ1 = cle primaire dans colonne 1 de la liste)
DoCmd.RunSQL ("UPDATE Table1 SET champ4="lalala"
WHERE champ1 = '" & zoneListe1.column(1,Var) & "';")
Else
DoCmd.RunSQL ("UPDATE Table1 SET champ4="lilili"
WHERE champ1 = '" & zoneListe1.column(1,Var)& "';")
End If

ZoneListe1.Requery


Ca marche tres bien pour la premiere selection, mais ensuite, quelque
soit la ligne selectionnee Var prend le numero de ligne de la premiere
selection.

J'ai essayé de mettre à jour la zonedeliste1 ou le formulaire mais
rien n'y fait

Qqn aurait une idee ?

Merci d'avance

Marie Helene


Avatar
mhpeyroux
Merci
en fait, une seule ligne peut etre selectionnee à la fois, donc je
voulais trouver une autre methode que for each ..., qui fonctionne.
Mais je vais faire comme ca, ce sera plus simple.

Daniel Carollo" wrote in message news:...
Bonsoir Marie-Helene!

Vous ne dites pas dans quel evenement vous executez le code, mais je
suspecte que votre ZoneListe1.Requery vous replace au depart de la
selection.
De plus, je ne vois rien dans votre code qui fasse parcourir les selections,
typiquement ce serait une boucle du type:
For Each Element in ZoneListe1.Selected
blah-blah mon traitement
Next Element

Une petite remarque en passant, il serait certainement plus rapide de
construire une seule requete pour traiter toutes les selections de la liste
d'un coup, si c'est une requete de mise a jour...

J'espere que ca vous donne des idees.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Marie-Helene" wrote in message
news:
Bonjour,

J'ai un probleme d'index dans une zone de liste modifiable.

J'ai une zone de liste non modifiable zoneListe1 dans le formulaire
Form1 presentant des enregistrements avec quatre champs distincts (une
seule ligne est selectionnable) provenant de la table Table1.

Avec un groupe d'option Groupe1, je modifie le champ4 et met à jour le
zone de liste, par exemple :

Dim Var As Variant

Var = ZoneListe1.ListIndex + 1 'index de la ligne selectionnee

If Group1.Value = "1" Then
'champ1 = cle primaire dans colonne 1 de la liste)
DoCmd.RunSQL ("UPDATE Table1 SET champ4="lalala"
WHERE champ1 = '" & zoneListe1.column(1,Var) & "';")
Else
DoCmd.RunSQL ("UPDATE Table1 SET champ4="lilili"
WHERE champ1 = '" & zoneListe1.column(1,Var)& "';")
End If

ZoneListe1.Requery


Ca marche tres bien pour la premiere selection, mais ensuite, quelque
soit la ligne selectionnee Var prend le numero de ligne de la premiere
selection.

J'ai essayé de mettre à jour la zonedeliste1 ou le formulaire mais
rien n'y fait

Qqn aurait une idee ?

Merci d'avance

Marie Helene