Bonjour à tout le monde.
Je viens à vous car ça va faire deux jours que je bloque dessus sans trouver de solution. Je vous explique donc ce qu'il m'arrive (ça va être un peu long).
Je vais faire une base de donnée de gestion commerciale. Pour l'exemple ci-dessous je n'ai pas joint toutes les tables ni toutes les macros concernées, ce serait bien trop lourd.
Je me suis inspirée de l’excellent tutoriel https://forum.openoffice.org/fr/forum/v ... 662#p81394, pour le faire mais visiblement la bidouille que j'y ai ajouté ne fonctionne pas.
Donc, dans cette base de donnée, je vais avoir un formulaire de Recherche et Modification de la table Client qui se nome "F_RechercheEtModifClient".
Sur ce formulaire il y a la table des clients qui est affichée, et ou on pourra faire les modifications, ainsi qu'une zone de texte pour écrire sa recherche.
La recherche s'effectuera sur plusieurs colonnes de la table client. je n'ai pas crée plusieurs zones de texte volontairement.
Malheureusement, lorsque j'écris un nom qui n'existe pas, ça me modifie les instructions SQL qui se trouvent dans les données du formulaire en ajoutant devant le "%" la première lettre que j'ai tapé dans ma recherche.
Bien évidement la modification ne s'enregistre pas, il me suffirait donc de fermer le formulaire et de l'ouvrir à nouveau. Mais j'aimerai m'éviter cette manipulation, car si j'ai plusieurs recherches infructueuses à la suite, cela va me faire faire beaucoup de manipulation d'ouverture et fermeture du formulaire.
Je pense donc que j'ai mal modifié les instructions SQL, ainsi que celles de la macro, mais je ne trouve pas mon erreur.
J'ai testé une autre solution qui serait de mettre un bouton sur ce formulaire, en masquant la zone de texte, et le bouton aurait comme "Action" de rafraichir le document. Si je fais ça une boite de dialogue s'ouvre à l'ouverture du document, et je pourrais choisir sur quelle critère se base ma recherche.
Malheureusement là encore une fois j'ai un soucis d'esthétique car les critères de recherche qui s'affichent ont le nom que je leur ai donné lors de la création de la table du coup je me retrouve avec des " TelFixe" ou des "NumIsbnBanque" en choix de critère qui ne sont pas très beau. Si il y a un moyen d'afficher ça autrement, cette solution me conviendrait très bien.
Je vous joint la base de donnée, merci d'avance.
Pitite note pour les modérateurs. Ça va faire un sacré bout de temps que je ne suis pas venue, donc si j'ai oublié de clôturer des sujets je m'en excuse par avance, mais normalement ça devrait être à jour.
[Résolu][Base] Sélection d'enregistrement
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- Membre OOrganisé
- Messages : 87
- Inscription : 16 déc. 2008 14:54
[Résolu][Base] Sélection d'enregistrement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par belleva le 25 avr. 2015 15:04, modifié 2 fois.
Open Office 4.1 sous Windows sept
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Base] Sélection d'enregistrement
Bonsoir
A testerA+
A tester
Code : Tout sélectionner
Sub PysRechercheClient(PysEvt as object)
Dim PysTexte as object, PysForm as object
Dim PysSQL as string, PysChoix as string
PysTexte = PysEvt.source
PysChoix = PysTexte.text
PysForm = PysTexte.model.Parent
PysSQL = "SELECT * FROM ""T_Client"" WHERE ""ID_Client"" LIKE '" & pysChoix & "%' OR ""Nom"" LIKE '" & pysChoix & "%' OR ""Prénom"" LIKE '" & pysChoix & "%' OR ""Société"" LIKE '" & pysChoix & "%' OR ""Ville"" LIKE '" & pysChoix & "%'"
PysForm.command = PysSQL
PysForm.Reload
If pysForm.RowCount = 0 then
PysSQL = "SELECT * FROM ""T_Client"" WHERE ( ""ID_Client"" LIKE '%' OR ""Nom"" LIKE '%' OR ""Prénom"" LIKE '%' OR ""Société"" LIKE '%' OR ""Ville"" LIKE '%' )"
PysForm.command = PysSQL
PysForm.Reload
End If
End Sub
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
-
- Membre OOrganisé
- Messages : 87
- Inscription : 16 déc. 2008 14:54
Re: [Base] Sélection d'enregistrement
Oula. Alors je viens de l'installer visiblement ça fonctionne. Maintenant faut que je comprenne afin d'arriver à le reproduire pour d'autre table, pis histoire aussi de comprendre ce que je manipule... ça servirait à rien sinon
Je laisse donc pour le moment le post ouvert pour le cas ou j'oserais encore une fois te déranger cher piaf.
Un grand merci à toi en tout cas.
Je laisse donc pour le moment le post ouvert pour le cas ou j'oserais encore une fois te déranger cher piaf.
Un grand merci à toi en tout cas.
Open Office 4.1 sous Windows sept
-
- GourOOu
- Messages : 5622
- Inscription : 25 nov. 2011 18:07
- Localisation : Guyane
Re: [Base] Sélection d'enregistrement
Bonjour
Donc sans critère.
A l'utilisation du formulaire, il affiche les enregistrements correspondant au critère tapé. s'il ne trouve pas d'enregistrement, rien n'est affiché, donc pas de ligneDans ce cas, on redéfini l'instruction SQL du formulaire.
Tu peux éventuellement ajouter une boite de message derrière l'instruction If pour prévenir qu'aucun enregistrement correspond au critère saisi.
A+
Le principe est simple, tu enregistres ton formulaire avec l'instruction SQLbelleva a écrit :Maintenant faut que je comprenne
Code : Tout sélectionner
SELECT * FROM "T_Client" WHERE ( "ID_Client" LIKE '%' OR "Nom" LIKE '%' OR "Prénom" LIKE '%' OR "Société" LIKE '%' OR "Ville" LIKE '%' OR "Ville" LIKE '%' )
A l'utilisation du formulaire, il affiche les enregistrements correspondant au critère tapé. s'il ne trouve pas d'enregistrement, rien n'est affiché, donc pas de ligne
Code : Tout sélectionner
If pysForm.RowCount = 0 then
Tu peux éventuellement ajouter une boite de message derrière l'instruction If pour prévenir qu'aucun enregistrement correspond au critère saisi.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64