IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Mise à jour formulaire avec une liste déroulante [LibreOffice][Base de données]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 177
    Points : 102
    Points
    102
    Par défaut Mise à jour formulaire avec une liste déroulante
    Bonsoir,
    Suite de mes galères avec le couple LO et Firebird. Dans la base de données ci-jointes, se trouve un formulaire nommé F_PrjPln. Dans ce formulaire, se trouve une première liste déroulante me permettant de sélectionner une famille de projet. En dessous, on trouve une deuxième liste déroulante permettant de sélectionner un projet.
    Malgré tous mes essais et bien que la macro fonctionne sous HSQLDB, impossible de la faire fonctionner avec Firebird.
    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
    40
    41
    	Sub PrcLstPrj(oEv as Object)
     
    		Dim DnEc as String, NmCln as string, Frml as Object
     
    		Frml = thiscomponent.DrawPage.Forms.GetByIndex(0)
    		DnEc = oEv.source.SelectedItem
    		'print DnEc
    		NmCln = "Dsg"
    		FchSlct(DnEc,NmCln)
    		thiscomponent.currentcontroller.getControl(Frml.getByName("DsgPln")).setFocus
     
    	End sub
    '=======================================================================
    	Sub FchSlct(DnEC as String,NmCln as string)
     
    		Dim VlrRch as string, VlrTrv as string
    		Dim Cnx as Object, Rqt as Object
    		Dim Frml as Object, Rgst as Object, RgstTrv as object
    		Dim Trv as Boolean
    		Cnx = ThisDatabasedocument.CurrentController.ActiveConnection
     		Rqt = Cnx.createStatement()
    		Frml = thiscomponent.DrawPage.Forms.GetByIndex(0)	
    		Rgst = Frml.createResultSet()		
    		Rgst.beforeFirst
    		Trv = false
    		'Recherche du projet dans la table 
    		Do while Rgst.next() and Trv = false	
    			RgstTrv = Rgst.columns.getByName(NmCln)
    			'Recherche de la clé du projet sélectionné 
    			If DnEc = RgstTrv.String Then
    				Trv = true
    				Exit Do		
    			End if
    		Loop
    		If Trv = true then		
    			Frml.moveToBookmark(Rgst.Bookmark)
    			else		
    			msgbox("Enregistrement non trouvé", 64)
    		End if
     
    	End Sub
    Quelqu' un pourrait-il m' aider?
    Par avance merci
    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 177
    Points : 102
    Points
    102
    Par défaut Complément d' information
    Bonsoir,
    J' ai remarqué quand fait, la ligne qui ne fonctionne pas est la ligne N°30.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DnEc = RgstTrv.String Then
    Bien que les valeurs contenues dans DnEc et RgstTrv correspondent, la boucle Do While... Loop n' est pas interrompue.
    DnEC est une variable String.
    RgstTrv est une variable object d' ou le ".String".
    Cette formulation fonctionne très bien sous HSQLDB!!!
    Cordialement.

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité de l' industrie
    Inscrit en
    Mars 2010
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité de l' industrie
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2010
    Messages : 177
    Points : 102
    Points
    102
    Par défaut Erreur SQL
    Bonjour,
    Depuis le début, je pensai que le Basic était en cause. En fait et grâce à DLE sur le Forum openoffice, il s' agissait d' une erreur de frappe. Il manquait un espace dans la requête SQL ci-dessous. L' espace vient à la place du point d' interrogation.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT "RfPln" || ' - ?' || "DsgPln" "Dsg", "T_PrjPln"."Cf_PrjPln", "TP_Fml"."Cf_Fml", "T_PrjPln"."Cf_PrjFml" FROM "T_PrjPln", "TP_Fml" WHERE "T_PrjPln"."Cf_PrjFml" = "TP_Fml"."Cf_Fml" ORDER BY "Dsg" ASC
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/06/2014, 11h21
  2. [AC-2010] Trier formulaire avec une liste déroulante.
    Par geektarist dans le forum Access
    Réponses: 6
    Dernier message: 05/07/2012, 00h16
  3. trier dans un formulaire avec une liste déroulante
    Par FENUA CLIM dans le forum IHM
    Réponses: 2
    Dernier message: 04/08/2008, 08h45
  4. Réponses: 1
    Dernier message: 08/05/2008, 23h00
  5. Réponses: 7
    Dernier message: 17/10/2006, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo