Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Liste déroulante ne fonctionne pas


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre régulier
    Liste déroulante ne fonctionne pas
    Bonsoir,

    Je sais que ce sujet à maintes fois été discutés mais, je suis obligé dans reparlé.
    Jusqu' a présent, j' ai des listes qui fonctionne même avec un champ de recherche concaneté. Lors de la réalisation de ma dernière base de donnée, cela ne fonctionne plus alors que je n' ai rien changé. La macro me renvoie un message m' indiquant ne pas trouver le champ concerné.
    Je travaille avec Xubuntu pour l' OS et Libre Office Base HSQL en version 6.2.6.
    Code de la macro:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub Liste(oEv as Object)
     
    	Dim VlrEc as String, DsgChp as string, Frm as Object
     
    	Frm = thiscomponent.DrawPage.Forms.GetByIndex(0)
    	VlrEc = oEv.source.SelectedItem
    	DsgChp = "CfCmt"
    	FchSlct(VlrEc,DsgChp)
    	thiscomponent.currentcontroller.getControl(Frm.getByName("Cmt")).setFocus
     
    End Sub
     
    Function FchSlct(VlrEc as String,DsgChp as string)
     
    	Dim ChrVlr as String
    	Dim Frm as Object, Dn as Object, DnEc as object
    	Dim TrvVlr as Boolean
     
    	Frm = thiscomponent.DrawPage.Forms.GetByIndex(0)	
    	Dn = Frm.createResultSet()
    	with oEv.source.model		
    		ChrVlr = VlrEc
    	End with		
    	Dn.beforeFirst	
    	TrvVlr = false
    	Do while Dn.next() and TrvVlr = false	
    		DnEc = Dn.columns.getByName(DsgChp)		
    		If DnEc.String = ChrVlr then		
    			TrvVlr = true			
    			Exit do
    		End if
    	Loop
    	If TrvVlr = true then		
    		Frm.moveToBookmark(Dn.Bookmark)
    		else		
    		msgbox("Enregistrement non trouvé", 64)
    	End if
     
    End Function

    Le message d' erreur apparait en ligne 27
    Voici la requête SQL qui gère la liste déroulante:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT "Cf_Pht" || ' - ' || "Cmt" AS "CfCmt", "Cmt", "Cf_Pht" FROM "T_Pht" ORDER BY "Cf_Pht" ASC

    Afin de vous permettre de tester cette procédure, je vous joins une ébauche de Base.
    Pourriez-vous me dire ce qui cloche?
    Cordialement

  2. #2
    Membre éclairé
    Bonjour El Bosc,

    J'ai testé sous Windows 10 et LO 6.2.7.1 (x64), j'obtiens ces réponses :

    Il n'y a pas d'élément nommé 'CfCmt'..

    Propriété ou méthode non trouvée : DrawPage.
    ligne 7 Frm = thiscomponent.DrawPage.Forms.GetByIndex(0).

    Propriété ou méthode non trouvée : DrawPage.
    ligne 21 Frm = thiscomponent.DrawPage.Forms.GetByIndex(0).

    Je ne peux malheureusement pas aller plus loin, ne disposant que de la seule base "Test_Liste"
    LibreOffice 6.3.5.2 (x64) FR-YT 07-03-20
    OS : Windows 10.0