[Résolu] Interactivité du formulaire

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

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.
MaUn78
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 16 sept. 2014 13:46

[Résolu] Interactivité du formulaire

Message par MaUn78 »

Bonjour,

Tout d'abord désolé pour mon niveau navrant en matière de Base, mais c'est mon tout premier projet en la matière, et j'ai beau lire des docs par-ci par-là, regarder des formations sur Youtube, je n'arrive décidément pas à obtenir ce qu'il me faudrait pour mon projet.

Alors, mon projet : j'ai une base de données qui doit comporter les champs suivants :
1) un numéro SIREN (seulement 9 chiffres, et sans possibilité de réaliser deux enregistrements avec le même SIREN)
2) une première date (obligatoire à saisir)
3) une deuxième date différente de la 1ère (pas obligatoire)
4) une 3ème date différente des deux premières (pas obligatoire)
5) une case texte multilignes pour des observations textuelles (pas obligatoire)

Je vous ai mis mon fichier .odb en PJ.
Tout d'abord, j'ai ajouté pour la 1ère colonne de ma base de données une clé primaire auto-incrémentée, mais je me demande si je ne pourrais pas utiliser la colonne SIREN en tant que clé primaire vu que je ne veux pas de doublon dans cette colonne. Mais est-ce une bonne idée ? J'en sais trop rien.

Ensuite, j'ai réalisé un formulaire qui permet d'ajouter ou modifier les enregistrements sur cette base, mais ce qu'il me faudrait, ça serait sur un autre formulaire de consultation uniquement qui se présenterait quasiment pareil, mais avec comme différence une zone de texte (à la place de la case "SIREN") où les gens n'auraient qu'à saisir un SIREN, et si ce SIREN est dans la base alors toutes les données de cet enregistrement disponibles apparaissent dans les cases dédiées (Dates 1, 2, 3, et Observations). Si par contre le SIREN est inconnu alors rien n'apparait, toutes les cases restent vides/grisées.

Je bloque vraiment pour réaliser ce formulaire et ce système de recherche dans la base.

Enfin, dernier petit détail qui me gêne un peu, ça concerne mon formulaire d'ajout et de modification, j'aimerais qu'à l'ouverture aucune case du formulaire ne soit remplie, mais pareil, je trouve pas comment faire.

En survolant plein de sujets, je pense qu'il va y avoir recours à des macros pour certains trucs, et là non plus je ne suis pas terrible ! Je me débrouille très bien en formules Calc, mais les macros c'est pas encore ça du tout :fou:

Bref, si quelqu'un pouvait m'éclairer pour réussir à mettre en place ce projet, en m'expliquant si possible ce qui doit être fait pour que ça fonctionne afin que je sache faire pour plus tard d'autres projets... Ca serait vraiment sympa.

Merci d'avance et bonne soirée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Oukcha le 16 janv. 2023 16:26, modifié 2 fois.
Obligation de version : LibreOffice 6.2.7.1lin1 (x64)
Windows 10
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1485
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: Interactivité du formulaire

Message par jeanmi2403 »

Bonsoir,
Sauf erreur de ma part (toujours possible...)
1) l'unicité du SIREN devra être devrait être réalisé par macro, à ma connaissance il n'est pas possible de déclarer un champ à valeurs uniques en dehors des clés. Pour en faire une clé Primaire il faudrait le transformer en numérique, et traiter l'erreur en cas de saisie double. Et supprimer la valeur automatique, bien sûr !.
2) Saisie requise (déjà prévue dans le formulaire)
3) et 4) vérification par macro au moment de la validation du champ,événement contrôle "avant l'actualisation" ou événement formulaire ; "avant l'envoi", qui permettrait de vérifier les deux dates dans la même macro.
5) tout dépend de la quantité de texte à saisir. Le champ pourrait être de type CLOB dans le cas d'un texte conséquent.

Documentation sur la programmation ; le chapitre 9 (Macros) du Guide Base de LibreOffice.
On peut, bien entendu, donner un coup de main...
Dans ce cas, il faudra poursuivre la discussion dans la section Macros, et mettre un lien depuis ce fil.
Cordialement et bon courage,
PS : la version que vous utilisez est obsolète et bizarrement identifiée : LibreOffice 6.2.7.1lin1 (x64). La version stable actuelle est la 7.3.7.
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
HRk2o
Membre cOOnverti
Membre cOOnverti
Messages : 366
Inscription : 29 mai 2009 08:51
Localisation : Guyane

Re: Interactivité du formulaire

Message par HRk2o »

Bonsoir,

je voudrais vous faire remarquer le format de l'odb; est-ce voulu?
Capture.png
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Windows 10 sous AOO 4.1.16 et LibO 24.8.5.2
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 744
Inscription : 20 déc. 2017 14:45

Re: Interactivité du formulaire

Message par rollmops »

Bonjour,
jeanmi2403 a écrit : 04 janv. 2023 18:21 Pour en faire une clé Primaire il faudrait le transformer en numérique
Non, une chaîne peut tout à fait être déclarée comme clé primaire.
Mais seul un nombre entier (INTEGER) peut être paramétré en autovaleur.

Un SIREN est de toute façon une suite de chiffres.
Mais il faudra effectivement une macro pour calculer la clé de contrôle.
La somme des 8 premiers chiffres doit être un multiple de 10. :)
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
pulcinopio
Membre prOOscrit
Messages : 243
Inscription : 13 juil. 2022 17:13

formulaire de consultation

Message par pulcinopio »

MaUn78 a écrit : 04 janv. 2023 16:56 mais ce qu'il me faudrait, ça serait sur un autre formulaire de consultation uniquement qui se présenterait quasiment pareil, mais avec comme différence une zone de texte
Bonjour M'sieur, l'été dernier, je crois que ce sujet fut abordé... en voici un exemple SANS MACRO.

Bien à vous
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.4 sur Ubuntu 18.04
Avatar de l’utilisateur
tintin
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 10195
Inscription : 18 juil. 2008 15:29
Localisation : F-Oise

Re: Interactivité du formulaire

Message par tintin »

Bonjour,
pulcinopio a écrit : 05 janv. 2023 08:03l'été dernier, je crois que ce sujet fut abordé
Dans ce cas il aurait été judicieux et intéressant de donner un lien vers la discussion.
AOO 4.1.16 et LibO 25.8.6 / macOS M4 Silicon 26.5 Tahoe
Adoptium-temurinJDK-1.8.0.492 / Firefox/Safari/Thunderbird /Time Machine + Clone CCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 10105
Inscription : 28 août 2010 08:45

Re: Interactivité du formulaire

Message par micmac »

Bonjour MaUn78,
Dans votre signature il y a écrit : LibreOffice 6.2.7.1lin1 (x64)
Dans votre signature il est nécessaire d'indiquer :
  1. la version exacte de AOO ou LibO (AOO 4.1.13, LibO 7.3.7 par exemple) ;
  2. la version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Win 11, Ubuntu 22.04, macOS (Intel, M1 ou M2) 13.1 par exemple).
Afin de profiter des dernières améliorations, il est fortement recommandé d'être à jour de la dernière version officielle stable

Accès direct à votre signature pour la corriger.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
MaUn78
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 16 sept. 2014 13:46

Re: Interactivité du formulaire

Message par MaUn78 »

Houla, y a beaucoup de réponses à apporter à vos messages, je vais tenter de ne rien oublier.

Tout d'abord, concernant ma version de LibreOffice, il s'agit d'une version d'entreprise sur laquelle je n'ai pas du tout la main, je ne peux donc qu'indiquer ce qui apparait sur mon écran quand je la consulte, et je ne peux pas installer d'autre version. Quant à la version de Windows, il s'agit de Windows 10, mais là aussi je ne peux pas avoir plus d'infos n'ayant pas les habilitations nécessaires pour consulter les infos systèmes. Je vais rajouter Windows 10 dans ma signature, mais pour le reste, à part mettre des infos bidons pour satisfaire des règles, je ne peux rien faire de plus.
HRk2o a écrit : 04 janv. 2023 18:49je voudrais vous faire remarquer le format de l'odb; est-ce voulu?
Alors voulu dans le sens où c'est moi qui ai validé ça lors de la création de mon fichier .odb, oui ! Mais n'y connaissant rien, j'ai juste sélectionné ce que l'application me proposait de base. Ca n'est donc peut-être pas un choix très pertinant, mais si ça pose problème, je peut recréer mon .odb autrement, tant qu'il n'y a vraiment pas grand chose dedans, ça ne me pose pas de problème si c'est vraiment utile/intéressant.
jeanmi2403 a écrit : 04 janv. 2023 18:21 Bonsoir,
Sauf erreur de ma part (toujours possible...)
1) l'unicité du SIREN devra être devrait être réalisé par macro, à ma connaissance il n'est pas possible de déclarer un champ à valeurs uniques en dehors des clés. Pour en faire une clé Primaire il faudrait le transformer en numérique, et traiter l'erreur en cas de saisie double. Et supprimer la valeur automatique, bien sûr !.
2) Saisie requise (déjà prévue dans le formulaire)
3) et 4) vérification par macro au moment de la validation du champ,événement contrôle "avant l'actualisation" ou événement formulaire ; "avant l'envoi", qui permettrait de vérifier les deux dates dans la même macro.
5) tout dépend de la quantité de texte à saisir. Le champ pourrait être de type CLOB dans le cas d'un texte conséquent.
Alors en fait, à part l'unicité du "1)", tout le reste ça va, j'ai su trouver comment les créer sans trop de difficultés. Ce formulaire d'ajout/modification est quasiment parfait pour ce qu'il me faut. Faut juste essayer d'éviter les doublons de SIREN, et permettre de démarrer sur un enregistrement "vierge" à l'ouverture du formulaire plutôt que sur le dernier créé.
jeanmi2403 a écrit : 04 janv. 2023 18:21Documentation sur la programmation ; le chapitre 9 (Macros) du Guide Base de LibreOffice.
On peut, bien entendu, donner un coup de main...
Dans ce cas, il faudra poursuivre la discussion dans la section Macros, et mettre un lien depuis ce fil.
Cordialement et bon courage,
Je vais me plonger dans l'étude des macros, merci pour le lien vers la doc. Et quand il ne restera que l'aspect macros à gérer sur ce projet je basculerais dans la partie "macros" du forum, pas de soucis.
rollmops a écrit : 05 janv. 2023 07:52 Bonjour,

Non, une chaîne peut tout à fait être déclarée comme clé primaire.
Mais seul un nombre entier (INTEGER) peut être paramétré en autovaleur.

Un SIREN est de toute façon une suite de chiffres.
Mais il faudra effectivement une macro pour calculer la clé de contrôle.
La somme des 8 premiers chiffres doit être un multiple de 10. :)
Merci pour cette info. Du coup, j'ai le choix entre conserver la clé primaire auto-incrémentée, ou basculer sur le SIREN comme clé primaire non-auto-incrémentée. Dans tous les cas d'après vous il faudra passer en plus par une macro, mais du coup, vu que vous maitrisez- tous mieux que moi Base, quelle est la solution la plus simple/fiable des deux ? Garder la clé primaire ou basculer sur la clé SIREN ?
pulcinopio a écrit : 05 janv. 2023 08:03 Bonjour M'sieur, l'été dernier, je crois que ce sujet fut abordé... en voici un exemple SANS MACRO.
Bien à vous
Je découvre juste ton message ! Je vais donc de ce pas récupérer ce fichier et essayer de voir si je peux l'adapter à mon cas assez simplement.

Merci en tout cas à tous pour vos messages et votre aide :super:
Je reviendrais vers vous pour partager l'avancée de mes travaux :fou: :P
Obligation de version : LibreOffice 6.2.7.1lin1 (x64)
Windows 10
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1485
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: Interactivité du formulaire

Message par jeanmi2403 »

Bonjour,
HRk2o a écrit : 04 janv. 2023 18:49 je voudrais vous faire remarquer le format de l'odb; est-ce voulu?
C'est vrai qu'il vaut mieux éviter Firebird qui pose encore quelques problèmes.
Pour ça, désactiver les fonction expérimentales dans les options Outils->Options->Avancé
rollmops a écrit : 05 janv. 2023 07:52 Mais il faudra effectivement une macro pour calculer la clé de contrôle.
La somme des 8 premiers chiffres doit être un multiple de 10. :)
Pas seulement...
Sur le site officiel :
sirene.fr a écrit :Pour vérifier la validité d’un siren (ou d’un siret), il faut utiliser la formule de Luhn (aussi appelée
algorithme « modulo 10 ») : sommer les chiffres composant le siren (ou siret), en comptant une fois
les chiffres de rang impair et deux fois les chiffres de rang pair en partant de la droite. Lorsqu’on
multiplie par deux un chiffre entre 5 et 9, le résultat compte deux chiffres qu’il faut séparer et
ajouter, pour ne sommer finalement que des chiffres entre 0 et 9
Bonne journée,
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4343
Inscription : 06 oct. 2008 08:03

Re: Interactivité du formulaire

Message par Oukcha »

Bonjour,
MaUn78 a écrit : 05 janv. 2023 09:40 concernant ma version de LibreOffice, il s'agit d'une version d'entreprise sur laquelle je n'ai pas du tout la main [...] et je ne peux pas installer d'autre version. [...] à part mettre des infos bidons pour satisfaire des règles
Il suffit donc d'ajouter "Obligation de version" dans votre signature.

Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
MaUn78
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 16 sept. 2014 13:46

Re: [Résolu] Interactivité du formulaire

Message par MaUn78 »

Je mets le sujet en résolu et passe dans la section des Macros pour essayer de finaliser le projet :
https://forum.openoffice.org/fr/forum/v ... hp?t=66564

Merci à tous.
Obligation de version : LibreOffice 6.2.7.1lin1 (x64)
Windows 10
HRk2o
Membre cOOnverti
Membre cOOnverti
Messages : 366
Inscription : 29 mai 2009 08:51
Localisation : Guyane

Re: [Résolu] Interactivité du formulaire

Message par HRk2o »

Bjr,
demandez le déverrouillage du fil posté dans la section "Macros"; des solutions vous seront proposées !
@+
Windows 10 sous AOO 4.1.16 et LibO 24.8.5.2