J'ai créer une maccro pour pouvoir sélectionné un élément dans une liste en fonction de la liste précédente.
Elle fonctionne mais il y une chose que je ne comprend pas : lorsque je lance le formulaire le message d'erreur suivant apparait :
Valeur ou type de données incorrect(e).
Index hors de la plage définie.
Et me point sur cet élément : var_id_reseau = PysLstT_reseau.SelectedItems(0)
J'ai du passer à coter d'un élément essentiel je pense, mais je ne trouve pas comment corriger mon erreur.
Ci joint la maccro en question :
Code : Tout sélectionner
option explicit
dim PysLstT_reseau as Object , PysLstT_emplacement AS Object
Sub PysOpen(PysEvent)
dim PysContainer as object, PysConnection as object
dim PysProp(1) as New com.sun.star.beans.PropertyValue
PysContainer = PysEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments
PysConnection = PysEvent.Source.Model.Parent.ActiveConnection
PysProp(0).Name = "ActiveConnection"
PysProp(0).Value = PysConnection
PysProp(1).Name = "OpenMode"
PysProp(1).Value = "open"
PysContainer.loadComponentFromURL("T_reseau","_blank",0,PysProp())
end sub
sub PysRefresh
ThisComponent.DrawPage.Forms.getByName("Standard").getByName("lbox_reseau").refresh
end sub
sub PysMajListe
DIM var_id_reseau as integer
PysLstT_reseau = ThisComponent.DrawPage.Forms.getByName("Standard").getByName("lbox_reseau")
PysLstT_emplacement = ThisComponent.DrawPage.Forms.getByName("Standard").getByName("lbox_emplacement")
var_id_reseau = PysLstT_reseau.SelectedItems(0)
PysLstT_emplacement.ListSource() = array("SELECT nom_dossier, id_emplacement FROM T_emplacement WHERE id_reseau =" & var_id_reseau)
PysLstT_emplacement.refresh
end sub
sub PysActualisation
dim ExoTrav
PysMajListe
ExoTrav= ExoRechercheDansTableau(PysLstT_emplacement.ValueItemList, PysLstT_emplacement.boundField.Value)
if ExoTrav <> "#N/A" then
PysLstT_emmplacement.SelectedItems = array(ExoTrav)
else
PysLstT_emplacement.SelectedItems = array(0)
end if
end sub
Function ExoRechercheDansTableau(ExoTablo, ExoRech)
dim i as integer
ExoRechercheDansTableau = "#N/A"
for i = lbound(ExoTablo) to ubound(ExoTablo)
if ExoTablo(i)= ExoRech then
ExoRechercheDansTableau = i
exit for
end if
next i
end function
