[Résolu]message d'erreur lors d'enregistrement d'un formulaire après saisie dans sous-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.
sprudent
Fraîchement OOthentifié
Messages : 3
Inscription : 08 déc. 2023 16:08

[Résolu]message d'erreur lors d'enregistrement d'un formulaire après saisie dans sous-formulaire

Message par sprudent »

Bonjour,

Je suis novice, cela fait une semaine que j'ai téléchargé LibreOffice.
J'apprends à utiliser les bases de données. Mon exercice était de créer une base de données fictive à partir d'une feuille CALC pour la 1re table puis de créer une 2e table en mode ébauche qui sera liée à la première.
J'ai identifié une clé primaire dans chaque table et j'ai lié (relation entre les 2 tables) un champ de la 2e table à la clé primaire de la 1re table (clé externe).
J'ai créé un index dans chaque table et un formulaire qui rassemble la 1re table (formulaire) et la 2e table (sous-formulaire présenté comme feuille de données).
Lorsque je veux ajouter des informations dans le formulaire, je saisis des informations dans le sous-formulaire. Lorsque je demande d'enregistrer, le message suivant apparait :
Attempt to insert null into a non-nullable column: column: Nom_courtier_projet table: Projets in statement [INSERT INTO "Projets" ( "Date_début_projet","Date_fin_projet","Numero_client_unique","Titre_projet") VALUES ( ?,?,?,?)],
voir la capture d'écran jointe.
Erreur lors de l'enregistrement.JPG
J'ai indiqué des informations dans les champs obligatoires mentionnés ci-dessus, je ne comprends pas pourquoi le logiciel n'en tient pas compte.
Je ne comprends pas où est l'erreur, sûrement dans la définition des champs, mais je fais des modifications sans succès.
J'ai également inséré le message d'erreur dans une recherche sur le forum, mais je n'ai pas eu de résultat.

Merci de vos suggestions et de votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 11 déc. 2023 00:10, modifié 2 fois.
Raison : Balisage dans le premier message
LibreOffice 7.6.4.1 (X86-64) fr-CA
Windows 10.0
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: message d'erreur lors d'enregistrement d'un formulaire après saisie dans sous-formulaire

Message par jeanmimi »

Bonjour,
Est-ce que les deux champs des Tables relation sont de type INTEGER et en Autovaleur pour la Table principale ?
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
sprudent
Fraîchement OOthentifié
Messages : 3
Inscription : 08 déc. 2023 16:08

Re: message d'erreur lors d'enregistrement d'un formulaire après saisie dans sous-formulaire

Message par sprudent »

Bonjour,

La réponse est oui et en voici la preuve :
- dans la table 1 (Clients) le champ ID (Nom défini par la logiciel par défaut à la place de Numero_client_unique) est de type Integer en valeur automatique et c'est la clé primaire de cette table.
sprudent - Définition des champs table Clients.JPG
- dans la table 2 (Projets) le champ Numero_projet_unique est aussi de type Integer en valeur automatique et c'est la clé primaire de cette 2e table.
sprudent - Définition des champs table Projets.JPG
- dans la table 2 (Projets) le champ Numero_client_unique est de type Integer en valeur non automatique et c'est le lien avec la table 1 : la clé externe.
sprudent - Définition des champs table Projets clé externe.JPG
Je ne comprends pas pourquoi on ne peut pas entrer des informations dans le formulaire et les enregistrer, ni ce que veut dire le message d'erreur. Je ne suis pas familière avec les type d'erreurs. Je suis bloquée pour la saisie d'informations supplémentaires dans ma base de données.

Existe-t-il un glossaire des messages d'erreur et de leur signification ? Je serai preneuse.

Merci de votre intérêt.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.4.1 (X86-64) fr-CA
Windows 10.0
Anakin
NéOOphyte
NéOOphyte
Messages : 145
Inscription : 08 nov. 2023 11:40

Re: message d'erreur lors d'enregistrement d'un formulaire après saisie dans sous-formulaire

Message par Anakin »

Bonjour,

J'ai testé votre base en modifiant les champs NOT NULL et cela fonctionne bien.
Puis j'ai essayé sans modification et cela fonctionne quand-même.

Veuillez relire le fichier ci-joint.

Slts

Anakin
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04.6
sprudent
Fraîchement OOthentifié
Messages : 3
Inscription : 08 déc. 2023 16:08

Re: message d'erreur lors d'enregistrement d'un formulaire après saisie dans sous-formulaire

Message par sprudent »

Bonjour,
Je n'arrivais pas à comprendre quels changements avaient été faits entre la base que j'ai envoyée et celle que vous avez modifiée et que vous me renvoyiez.

En entrant les informations suivantes dans la base la première fois qu'on la remplit (dans le sous-formulaire) :
Client : Ana Conda
Projet : Conception d'une maquette pour le nouveau site web
19 septembre 2018 - 5 février 2019
Autre courtier (dans les notes) : Samantha

le message d'erreur apparaît toujours, car il n'y a pas de courtier principal.

En effet, j'avais mis dans la table Projets que le courtier principal était obligatoire et dans le formulaire que la saisie du nom du courtier principal était non requise. Je pensais qu'en mettant dans le formulaire le champ du courtier en saisie non requise était suffisant, mais il faut aussi changer le mode de saisie du champ courtier dans la table Projets pour que cela fonctionne. Je me rends compte que la modélisation de départ est très importante et que les modifications (s'il y en a) doivent être faites à tous les niveaux : tables, formulaires, etc.

C'est résolu ! Merci de votre aide !
Dernière modification par sprudent le 10 déc. 2023 23:59, modifié 1 fois.
LibreOffice 7.6.4.1 (X86-64) fr-CA
Windows 10.0
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9258
Inscription : 28 août 2010 08:45

Re: message d'erreur lors d'enregistrement d'un formulaire après saisie dans sous-formulaire

Message par micmac »

Bonjour,

Pour être visibles depuis la page d'accueil, la balise [Résolu] avec sa coche verte doivent être placées au début du titre du Premier Message
Voyez : viewtopic.php?p=18490#p18490
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Anakin
NéOOphyte
NéOOphyte
Messages : 145
Inscription : 08 nov. 2023 11:40

Re: [Résolu]message d'erreur lors d'enregistrement d'un formulaire après saisie dans sous-formulaire

Message par Anakin »

@ sprudent

Bonjour,

Après maintes réflections, sachez que, en ce qui me concerne, je n'utiliserai jamais votre formulaire, car il n'est pas conforme aux directives.

En ce qui concerne la liste déroulante, je vous poste un exemple selon le règlement.

Slts

Anakin
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04.6