[Résolu][Base] Liste déroulante numérique

Discussions et questions sur tout ce qui concerne la programmation sous StarOffice NeoOffice ou OpenOffice.org tous langages et tous modules confondus.

Modérateur: Vilains modOOos

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Résolu][Base] Liste déroulante numérique

Messagepar mat12121212 » 02 Nov 2009 11:13

Bonjour à tous.

J'essaie d'adapter le programme suivant pour ma base de données.
Cette macro permet d'afficher un enregistrement en sélectionnant un champ "texte".
Je souhaite, pour ma part, sélectionner un champ "nombre entier" (integer).

Code: Tout sélectionner   AgrandirRéduire
Sub PysActualiser(PysEvt as object)
dim PysList as object, PysForm as object
dim PysSQL as string, PysChoix as string

PysList = PysEvt.source               'La liste déroulante

PysChoix = PysList.SelectedItem         'Choix fait dans la liste
PysForm = PysList.model.Parent         'On "remonte" au parent (le formulaire)

'SELECT T_FILM.*, T_GENRE.* FROM T_FILM, T_GENRE WHERE T_FILM.id_genre = T_GENRE.id_genre AND T_GENRE.genre = 'comique'
'Concaténation avec le choix fait dans la liste
PysSQL = "SELECT T_FILM.*, T_GENRE.* FROM T_FILM, T_GENRE WHERE T_FILM.id_genre = T_GENRE.id_genre AND T_GENRE.genre ='" + PysChoix + "'"
PysForm.command = PysSQL            'Redéfinition de la source du formulaire
PysForm.reload                     'Recharge le formulaire

End Sub


Si quelq'un peu m'aider, ça serait super!

Merci Beaucoup.
Mathieu.
OpenOffice 3.0 sous Vista
mat12121212
Fraîchement OOothentifié
 
Messages: 5
Inscrit le: 31 Oct 2009 13:50

Re: Macro pour liste déroulante numérique (sous base OOo)

Messagepar Bidouille » 02 Nov 2009 11:17

Bonjour,

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche.

Lisez ce fil pour savoir quelle balise utiliser : sutra27295.html#27295

N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.

Merci de votre collaboration.
Avatar de l’utilisateur
Bidouille
RespOOonsable forum
RespOOonsable forum
 
Messages: 4251
Inscrit le: 08 Nov 2005 18:23
Localisation: Saumur, France

Re: [Base] Liste déroulante numérique

Messagepar Dude » 02 Nov 2009 11:35

Salut,

mat12121212 a écrit:Cette macro permet d'afficher un enregistrement en sélectionnant un champ "texte".

L'auteur de cette macro est PYS. Il est d'usage de citer l'URL où tu as pioché ce code.

mat12121212 a écrit:Je souhaite, pour ma part, sélectionner un champ "nombre entier" (integer).

La sélection à quel niveau ? Dans le contrôle de liste ou dans la table ?

mat12121212 a écrit:J'essaie d'adapter le programme suivant pour ma base de données.

Sur le fond, joindre cette base serait plus efficace pour répondre et notamment voir le formulaire attaché à la requête.
OOo 3.2DEV EN sous Windows XP SP3

Pratique, utilisez le service CiJoint pour joindre un exemple et illustrer votre propos.

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.

Améliorer OOo en votant les issues
Avatar de l’utilisateur
Dude
GourOOou
GourOOou
 
Messages: 7936
Inscrit le: 03 Mar 2006 09:45
Localisation: Lyon, France

Re: [Base] Liste déroulante numérique

Messagepar mat12121212 » 02 Nov 2009 12:08

Toutes mes excuses pour les erreurs de "forme".
Aussi, le code provient évidemment de l'auteur PYS.

La sélection se fait via une liste déroulante dans le formulaire.
Cette liste déroulante se trouve en haut à droite du formulaire (cf fichier joint).
Elle permet de sélectionner un matricule, et d'afficher l'enregistrement "Informations sur le personnel",
ainsi que les 4 sous-formulaires "EPI" - "Formations" - "Avertissements" - "Accident de travail".

Merci à vous,
Mathieu.
Pièces jointes
Gestion_du_personnel_CSB.odb
Bdd permettant la gestion du personnel d'une entreprise.
(21.87 Kio) Téléchargé 9 fois
OpenOffice 3.0 sous Vista
mat12121212
Fraîchement OOothentifié
 
Messages: 5
Inscrit le: 31 Oct 2009 13:50

Re: [Base] Liste déroulante numérique

Messagepar mat12121212 » 03 Nov 2009 16:01

Re-Bonjour,

J'ai en fait trouver mon erreur. Elle s'explique en 2 points:

1°/ la commande de concaténation
En fait il n'est pas nécessaire de modifier le type de variable pour une liste numérique.
Sans changer lesdites variables (PysSQL et PysChoix dans l'exemple), il suffit juste d'adapter les références de notre BDD.

Ainsi, j'ai juste remplacé dans le programme de l'auteur PYS, cette ligne:
Code: Tout sélectionner   AgrandirRéduire
PysSQL = "SELECT T_FILM.*, T_GENRE.* FROM T_FILM, T_GENRE WHERE T_FILM.id_genre = T_GENRE.id_genre AND T_GENRE.genre ='" + PysChoix + "'"

Par celle-ci:
Code: Tout sélectionner   AgrandirRéduire
PysSQL = "SELECT TPersonnel.* FROM TPersonnel WHERE TPersonnel.Matricule ='" + PysChoix + "'"

Mais j'avais déjà essayé cela sans succés. POURQUOI ???
Parce que le gros problème résidait dans les propriétés de mon formulaire.

2°/ Le Type de contenu du formulaire

AVANT, mon formulaire avait un type de contenu "Table".
Avec pour contenu la table "Tpersonnel".

MAINTENANT, mon formulaire a un type de contenu "Instruction SQL".
Avec pour contenu: SELECT * FROM "TPersonnel" AS "TPersonnel"

Pour modifier cela: formulaire - propriétés - données .
-> type de contenu = instructionSQL
-> contenu: faire "parcourir" - sélectionner la table - sélectionner * - valider.

Normalement ça fonctionne !!!

A bientôt. Mathieu.
OpenOffice 3.0 sous Vista
mat12121212
Fraîchement OOothentifié
 
Messages: 5
Inscrit le: 31 Oct 2009 13:50


Retour vers Macros et API

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Exalead [Bot], MSN [Bot] et 1 invité