Zone Combinée - mauvais affichage
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
-
sfrediere
- Membre OOrganisé

- Messages : 53
- Inscription : 04 juil. 2012 11:38
Zone Combinée - mauvais affichage
Bonjour,
je n'ai pas trouvé de poste répondant à ma question... Je pense avoir bien cherché.
Alors en faite, dans ma base, j'ai un formulaire qui s'appelle fEntretiens.
Ce formulaire a pour but d'enregistrer de nouveaux entretiens concernant des Porteurs de Projets, auxquels peuvent participer des Personnes Ressources.
Je voudrais que dans ce formulaire, on puisse grâce à une zone combinée décider de sélectionner un Personne Ressource déjà enregistrée dans la base OU rentrer le nom, prénom et organisme d'une nouvelle personne ressource.
Or, si je fait une zone de liste, je ne peux pas rajouter de Personne Ressource. Si je fait une zone combinée, je peux rajouter un nouveau nom. MAIS !
Deux problèmes :
1. le nom ne s'enregistre pas dans la table des personnes ressources (T_Personnes_Ressources).
2. Le formulaire ne m'affiche non pas le nom que je viens de taper mais un numéro... ???
Quelqu'un aurait il une solution ?
Merci d'avace
je n'ai pas trouvé de poste répondant à ma question... Je pense avoir bien cherché.
Alors en faite, dans ma base, j'ai un formulaire qui s'appelle fEntretiens.
Ce formulaire a pour but d'enregistrer de nouveaux entretiens concernant des Porteurs de Projets, auxquels peuvent participer des Personnes Ressources.
Je voudrais que dans ce formulaire, on puisse grâce à une zone combinée décider de sélectionner un Personne Ressource déjà enregistrée dans la base OU rentrer le nom, prénom et organisme d'une nouvelle personne ressource.
Or, si je fait une zone de liste, je ne peux pas rajouter de Personne Ressource. Si je fait une zone combinée, je peux rajouter un nouveau nom. MAIS !
Deux problèmes :
1. le nom ne s'enregistre pas dans la table des personnes ressources (T_Personnes_Ressources).
2. Le formulaire ne m'affiche non pas le nom que je viens de taper mais un numéro... ???
Quelqu'un aurait il une solution ?
Merci d'avace
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par sfrediere le 23 juil. 2012 13:32, modifié 2 fois.
LibreOffice3.3.0, Mac OS X version 10.5.6
-
jeanmimi
- Grand Maître de l'OOffice

- Messages : 17219
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: Zone Combinée - mauvais affichage
Bonjour,
L'exemple de base du forum pour ajouter un nouvel enregistrement choisit tout simplement d'ouvrir un formulaire par clic sur bouton, formulaire qui permet de saisir les nouveaux enregistrements (dans l'exemple, il s'agit de participants à une compétition sportive).
L'exemple de base du forum pour ajouter un nouvel enregistrement choisit tout simplement d'ouvrir un formulaire par clic sur bouton, formulaire qui permet de saisir les nouveaux enregistrements (dans l'exemple, il s'agit de participants à une compétition sportive).
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
sfrediere
- Membre OOrganisé

- Messages : 53
- Inscription : 04 juil. 2012 11:38
Re: Zone Combinée - mauvais affichage
Je n'ai pas précisé c'est vrai, mais je voudrais ne pas avoir à ouvrir un nouveau formulaire (c'est plus confortable pour l'utilisateur, plutôt que de clicker sur +, rajouter une Personne Ressource dont ils ne veulent que le nom sans les coordonnées, revenir dans le formulaire initial, resélectionner les participants)jeanmimi a écrit :Bonjour,
L'exemple de base du forum pour ajouter un nouvel enregistrement choisit tout simplement d'ouvrir un formulaire par clic sur bouton, formulaire qui permet de saisir les nouveaux enregistrements (dans l'exemple, il s'agit de participants à une compétition sportive).
LibreOffice3.3.0, Mac OS X version 10.5.6
-
jeanmimi
- Grand Maître de l'OOffice

- Messages : 17219
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: Zone Combinée - mauvais affichage
Dans l'exemple, l'ouverture du deuxième formulaire ne sert que lorsque tu veux créer un nouvel enregistrement dans la table, pas lorsque tu veux sélectionner un enregistrement déjà existant.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
sfrediere
- Membre OOrganisé

- Messages : 53
- Inscription : 04 juil. 2012 11:38
Re: Zone Combinée - mauvais affichage
Oui je sais... Je ne vois pas en quoi cela contredit mon message précédent ??
Est ce que sinon tu pourrais juste m'expliquer le principe de la zone combinée ? peut être que je ne sais juste pas l'utiliser.
Est ce que sinon tu pourrais juste m'expliquer le principe de la zone combinée ? peut être que je ne sais juste pas l'utiliser.
LibreOffice3.3.0, Mac OS X version 10.5.6
-
alchemy
- Membre lOOyal

- Messages : 48
- Inscription : 12 juil. 2012 07:51
Re: Zone Combinée - mauvais affichage
Bonjour,
hum. as tu essayé ce lien :
http://user.services.openoffice.org/fr/ ... 17&t=23198
est-ce que cela correspond ?
ou bien de rechercher dans l'aide ou les tutos ?
cdlt
hum. as tu essayé ce lien :
http://user.services.openoffice.org/fr/ ... 17&t=23198
est-ce que cela correspond ?
ou bien de rechercher dans l'aide ou les tutos ?
cdlt
Aoo 3.4.1 sur windows 7 à jour
-
sfrediere
- Membre OOrganisé

- Messages : 53
- Inscription : 04 juil. 2012 11:38
Re: Zone Combinée - mauvais affichage
Hé bien non je ne l'avais pas vu, mais à la rigueur cela ne fait que confirmer ce que je pensais au départ : c'est bien ça l'objectif d'une zone de liste. Pouvoir piocher dans une liste, et pouvoir également saisir.
Retour donc case départ : pourquoi est ce que ma zone de liste n'affiche que des chiffres ?
Mais dans les tutos on ne parle que de "zone de liste", pas de l'utilisation des "zones combinées".
Merci pour ce lien.
Retour donc case départ : pourquoi est ce que ma zone de liste n'affiche que des chiffres ?
Mais dans les tutos on ne parle que de "zone de liste", pas de l'utilisation des "zones combinées".
Merci pour ce lien.
LibreOffice3.3.0, Mac OS X version 10.5.6
-
jeanmimi
- Grand Maître de l'OOffice

- Messages : 17219
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: Zone Combinée - mauvais affichage
J'imagine que ce sont les ID des enregistrements ou des numéros qui ne peuvent pas être modifiés ou des numéros d'une table où il n'y pas de noms ?sfrediere a écrit :pourquoi est ce que ma zone de liste n'affiche que des chiffres ?
Pour avoir une Boite combinée avec affichage des noms, tu pourrais tester cette structure à condition qu'elle soit fonctionnelle et qu'elle ne cherche pas à enregistrer une donnée là où ce n'est pas possible :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
sfrediere
- Membre OOrganisé

- Messages : 53
- Inscription : 04 juil. 2012 11:38
Re: Zone Combinée - mauvais affichage
mmmmh... Ca ne marche pas non plus ... Je suppose qu'il ne doit pas être possible de créer une boite combinée devant remplir un champ de clé secondaire, tout en affichant non pas la clé secondaire mais le nom et prénom.
Qu'importe ce n'est pas très grave. Merci quand même.
Qu'importe ce n'est pas très grave. Merci quand même.
LibreOffice3.3.0, Mac OS X version 10.5.6
-
Sonioh
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 16 févr. 2023 11:33
Re: Zone Combinée - mauvais affichage
Bonjour,
Ce message date un peu mais il mérite une réponse au moins pour ceux qui se posent la même question (comme moi il y a quelque temps). J'ai trouvé une méthode pour palier à ce probleme dans le guide base chapitre macro mais le code est complexe car fait pour automatiser tous les combobox d'un formulaire. Je l'ai decortiqué pour comprendre comment il fonctionnait et arriver à des macros plus digeste.
Avec la combobox, il y a un problème lorsqu'on cherche à afficher, choisir, ajouter un élément d'une table [COULEUR: ID, Nom] qui n'est pas la table de reference de notre formulaire [VOITURE: ID, ID_Couleur].
Au lieu de m'afficher le nom de ma couleur, la combobox m'affiche l'ID correspondant...
Voici la solution:
Dans le formulaire Voiture lié à la table VOITURE,
il faut créer un champ numérique ID_Couleur lié à ID_Couleur
et un champ zone combinée ZC_Couleur lié aussi à ID_Couleur, Type de contenu de liste: SQL, Contenu de liste: SELECT "Nom" FROM "COULEUR" ORDER BY "Nom"
Dans un module macro, il faut une procédure pour afficher le nom de la couleur choisie, la procédure doit être associée à l'evenement "apres le changement d'enregistrement" du formulaire Voiture.
La deuxième macro a ajouter est celle qui permet d'enregistrer la valeur ecrite ou selectionnée dans la zone combinée: la procédure est liée à l'événenement "Avant l'actualisation" de la zone combinée ZC_Couleur
Et voila normalement ca doit fonctionner.
Ce message date un peu mais il mérite une réponse au moins pour ceux qui se posent la même question (comme moi il y a quelque temps). J'ai trouvé une méthode pour palier à ce probleme dans le guide base chapitre macro mais le code est complexe car fait pour automatiser tous les combobox d'un formulaire. Je l'ai decortiqué pour comprendre comment il fonctionnait et arriver à des macros plus digeste.
Avec la combobox, il y a un problème lorsqu'on cherche à afficher, choisir, ajouter un élément d'une table [COULEUR: ID, Nom] qui n'est pas la table de reference de notre formulaire [VOITURE: ID, ID_Couleur].
Au lieu de m'afficher le nom de ma couleur, la combobox m'affiche l'ID correspondant...
Voici la solution:
Dans le formulaire Voiture lié à la table VOITURE,
il faut créer un champ numérique ID_Couleur lié à ID_Couleur
et un champ zone combinée ZC_Couleur lié aussi à ID_Couleur, Type de contenu de liste: SQL, Contenu de liste: SELECT "Nom" FROM "COULEUR" ORDER BY "Nom"
Dans un module macro, il faut une procédure pour afficher le nom de la couleur choisie, la procédure doit être associée à l'evenement "apres le changement d'enregistrement" du formulaire Voiture.
Code : Tout sélectionner
Sub AffichageTxt_ZC
Dim oForm_Voiture As Object
Dim oZC_Couleur As Object
Dim oID_Couleur As Object
Dim stNom_Couleur As String
Dim inID_Couleur As Long
Dim oResultat As Object
Dim oSourceDonnees As Object
Dim oConnexion As Object
Dim oSQL_Commande As Object
Dim stSQL As String
oForm_Voiture = thisComponent.drawpage.forms.getByName("Voiture")
oZC_Couleur = oForm_Voiture.getByName("ZC_Couleur")
oID_Couleur = oForm_Voiture.getByName("ID_Couleur")
oZC_Couleur.refresh()
If not isEmpty(oID_Couleur.getCurrentValue()) then
oSourceDonnees = thisComponent.Parent.CurrentController
If Not (oSourceDonnees.isConnected()) then
oSourceDonnes.connect()
End If
oConnexion = oSourceDonnees.ActiveConnection()
oSQL_Commande = oConnexion.createStatement()
inID_Couleur = oID_Couleur.getCurrentValue()
stSQL = "SELECT ""Nom"" FROM ""COULEUR"" WHERE ""ID""=" + inID_Couleur
oResultat = oSQL_Commande.executeQuery(stSQL)
While oResultat.next
stNom_Couleur = oResultat.getString(1)
Wend
oZC_Couleur.Text = stNom_Couleur
Else
oZC_Couleur.Text = ""
End If
End Sub
Code : Tout sélectionner
Sub EnregistrerTxt_ZC
Dim oForm_Voiture As Object
Dim oZC_Couleur As Object
Dim oID_Couleur As Object
Dim stNom_Couleur As String
Dim inID_Couleur As Long
Dim oResultat As Object
Dim oSourceDonnees As Object
Dim oConnexion As Object
Dim oSQL_Commande As Object
Dim stSQL As String
oForm_Voiture = thisComponent.drawpage.forms.getByName("Voiture")
oZC_Couleur = oForm_Voiture.getByName("ZC_Couleur")
oID_Couleur = oForm_Voiture.getByName("ID_Couleur")
stNom_Couleur = Trim(oZC_Couleur.getCurrentValue())
If (stNom_Couleur<> "") then
oSourceDonnees = thisComponent.Parent.CurrentController
If Not (oSourceDonnees.isConnected()) then
oSourceDonnes.connect()
End If
oConnexion = oSourceDonnees.ActiveConnection()
oSQL_Commande = oConnexion.createStatement()
inID_Couleur = -1
stSQL = "SELECT ""ID"" FROM ""COULEUR"" WHERE ""Nom""='" + stNom_Couleur + "'"
oResultat = oSQL_Commande.executeQuery(stSQL)
While oResultat.next
inID_Couleur = oResultat.getLong(1)
Wend
If inID_Couleur = -1 then
stSQL = "INSERT INTO ""COULEUR"" (""Nom"") VALUES ('" + stNom_Couleur + "')"
oSQL_Commande.executeUpdate(stSQL)
stSQL = "CALL IDENTITY()"
oResultat = oSQL_Commande.executeQuery(stSQL)
While oResultat.next
inID_Couleur = oResultat.getLong(1)
Wend
End If
oForm_Voiture.updateLong(2, inID_Couleur)
Else
oForm_Voiture.updateNULL(2)
End If
If oForm_Voiture.IsNew then
oForm_Voiture.insertRow()
Else
oForm_Voiture.updateRow()
End If
End Sub
LibO 7.3.4.2
HSQLDB externe
Windows 10.0
HSQLDB externe
Windows 10.0
-
micmac
- RespOOnsable forum

- Messages : 10105
- Inscription : 28 août 2010 08:45
Re: Zone Combinée - mauvais affichage
Exact. Il date du 23 juil. 2012.
Votre réponse fait appel aux macros qui n'ont pas de raison d'être dans cette section.
De plus le demandeur n'a pas reparu depuis le 11 sept. 2012 11:42
Déterrage = verrouillage .
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS