L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

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.
Bernard30
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 11 nov. 2021 16:47

L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par Bernard30 »

Bonjour
Je ne sais pas trop comment organiser ce message. Merci d'avance de m'en excuser.
J'avais posé une question sur un problème d'affichage de date avec libre office sur une base Postrgesql (note de la modération : voir viewtopic.php?p=382130#p382130)
Le sujet a été clos sans qu'une réponse qui me satisfasse me soit apportée. En fait le passage sous Base au jdbc avec le driver postgresql règle le problème mais en soulève d'autres ....
Je passe sur money de postgresql incompatible avec la norme sql stricte du JRE facile à régler.
Par contre je bute sur un autre problème pour moi insoluble qui est celui des sous-formulaires. Apres la mise en place d'un sous formulaire, la mise en oeuvre sous Base des champs maitre/esclave, et seulement à ce moment là, génère immédiatement : L'indice de la colonne est hors limite : 1, nombre de colonnes : 0.
Merci de votre aide
Je travaille sous wiindows 10, Libe Office 24.8.2, pgamin4 pour postgresql 16,postgresql-42.7.4.jar
Cordialement
Bernard30
Dernière modification par Bernard30 le 16 oct. 2024 07:38, modifié 1 fois.
libre office 24.8.2 sous windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: Base, JRE et Postgresql

Message par micmac »

Bonjour,
Bernard30 a écrit : 12 oct. 2024 12:40 Je travaille sous wiindows 10, Libe Office 24.8.2,
Accès direct à
votre signature où il y a écrit :libre office 7.6.4.1 sous windows 10
pour la corriger.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Base, JRE et Postgresql

Message par jeanmimi »

Bonjour,
Bernard30 a écrit : 12 oct. 2024 12:40 mise en oeuvre sous Base des champs maitre/esclave
Pour que la relation soit possible, il faut que le champ du Formulaire (MainForm) soit de la même qualité que le champ du Sous-Formulaire (SubForm); par exemple, un champ du Formulaire de Type INTEGER en Auto-Valeur avec un champ de Type INTEGER du Sous-Formulaire.
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Bernard30
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 11 nov. 2021 16:47

Re: Base, JRE et Postgresql

Message par Bernard30 »

Hélas, c'est peut être nécessaire mais pas suffisant !
Les deux champs maitre/esclave dont du même type :integer mais j'ai toujours la même réponse
Cordialement
Bernard30
libre office 24.8.2 sous windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Base, JRE et Postgresql

Message par Dude »

Salut,

Déjà, mets à jour ta signature comme le réclame le modo.
Cette information conditionne les réponses qui te sont faites.
Bernard30 a écrit : 13 oct. 2024 09:34 Les deux champs maitre/esclave dont du même type :integer mais j'ai toujours la même réponse
Afin d'écarter un problème de pilote, de SQL ou de conception, commence par joindre un ODB au format natif HSQLDB.
Pas la peine qu'il soit énorme, un formulaire relié aux seules tables et utilisant un jeu de données suffisant pour reproduire l'erreur.

Bernard30 a écrit : 12 oct. 2024 12:40 L'indice de la colonne est hors limite : 1, nombre de colonnes : 0.
Ce titre m'apparaît beaucoup plus explicite que ton énigmatique "Base, JRE et Postgresql".
Merci de procéder à la correction.
Bernard30
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 11 nov. 2021 16:47

Re: Base, JRE et Postgresql

Message par Bernard30 »

Bonjour
voici une petite base test
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
libre office 24.8.2 sous windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par Dude »

Déjà, je ne vois pas l'intérêt de stocker les "Activ_*" dans une seule table.
Cela me semble incohérent avec un modèle relationnel propre.
Ensuite, à quoi sert la table T_Selection ?

Merci d'être un peu plus prolixe sur le besoin et également de fournir quelque chose de fonctionnel.
L'ODB demande un script Basic qui n'est pas accessible.
Rafraîchir un formulaire ne nécessite pas de macro, il suffit de paramétrer le bouton avec l'action idoine.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par jeanmimi »

J'ai supprimé la Macro du formulaire, et activé, dans les propriétés du Bouton, l'Action Rafraichir le formulaire comme le dit Dude juste avant.
Les enregistrements de la Requête s'affichent lorsque le contenu de tous les champs le permet. J'ai concaténé Nom, Prenom et Activ_1
Peux-tu tester ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Bernard30
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 11 nov. 2021 16:47

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par Bernard30 »

Sur le modèle relationnel, les Activités de l'association font l'objet d'une table qui indique touts les Activités et leur prix.... Je ne stocke donc dans la table des Adherents, T_ADH, que le code des activités pratiquées par l'adhérent
Pour ce qui du Champ Selection, il stocke l'ID de l'adhérent sélectionné dans la liste déroulante ce qui permet de faire le lien avec la table de facturation et la table de paiement qui font l'objet de deux sous formulaires distincts du formulaire principal présent dans mon exemple
La macro a été supprimée...
Bertnard30
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
libre office 24.8.2 sous windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par jeanmimi »

Bernard30 a écrit : 16 oct. 2024 14:13 Je ne stocke donc dans la table des Adherents, T_ADH, que le code des activités pratiquées par l'adhérent
La Table n'est pas conforme, car les ID des activités devraient être enregistrées dans une Table différente en Relation 1 à n avec la Table T_ADH, d'où ce rappel lu plus haut :
Dude a écrit : 16 oct. 2024 07:59 je ne vois pas l'intérêt de stocker les "Activ_*" dans une seule table.
Cela me semble incohérent avec un modèle relationnel propre.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Bernard30
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 11 nov. 2021 16:47

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par Bernard30 »

Bonjour
J'ai suivi vos conseils pour ce qui concerne le modèle relationnel...
Mais cela ne change rien Si tout fonctionne bien sous HSQLBD rien ne vas plus sous JDBC JRE et Postgresql avec toujours le même message d'erreur :
L'indice de la colonne est hors limite : 1, nombre de colonnes : 0" ....
Cordialement
Bernard30
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 21 oct. 2024 13:40, modifié 1 fois.
Raison : Messsage balisé pour faciliter la lecture
libre office 24.8.2 sous windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par jeanmimi »

Bernard30 a écrit : 21 oct. 2024 13:35 rien ne vas plus sous JDBC JRE et Postgresql
Comme le problème ne vient pas de Base et de HSQLDB, je te suggère de chercher par exemple dans le site de developpez.net
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par Dude »

Bernard30 a écrit : 21 oct. 2024 13:35 tout fonctionne bien sous HSQLBD rien ne vas plus sous JDBC JRE et Postgresql
Les tables sont identiques ?
Merci de publier le schéma de ta table sous PostgreSQL
Bernard30
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 11 nov. 2021 16:47

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par Bernard30 »

voici le sql de la base
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
libre office 24.8.2 sous windows 10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17084
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par jeanmimi »

Le code est plus lisible en utilisant les balises :

Code : Tout sélectionner

-- --------------------------------------------------------
-- Hôte:                         127.0.0.1
-- Version du serveur:           PostgreSQL 16.4, compiled by Visual C++ build 1941, 64-bit
-- SE du serveur:                
-- HeidiSQL Version:             12.8.0.6908
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES  */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

-- Listage de la structure de table public. T_Adh
CREATE TABLE IF NOT EXISTS "T_Adh" (
	"Id_Adherent" INTEGER NOT NULL,
	"Nom" VARCHAR(255) NULL DEFAULT NULL,
	"Prenom" VARCHAR(255) NULL DEFAULT NULL,
	"Date_Adh" TIMESTAMP NULL DEFAULT NULL,
	"NaiDAt" TIMESTAMP NULL DEFAULT NULL,
	"Activ_1" VARCHAR(25) NULL DEFAULT NULL,
	"Activ_2" VARCHAR(25) NULL DEFAULT NULL,
	"Activ_3" VARCHAR(25) NULL DEFAULT NULL,
	"Activ_4" VARCHAR(25) NULL DEFAULT NULL,
	"Cotis_23_24" BOOLEAN NULL DEFAULT NULL,
	PRIMARY KEY ("Id_Adherent")
);

-- Listage des données de la table public.T_Adh : 13 rows
/*!40000 ALTER TABLE "T_Adh" DISABLE KEYS */;
INSERT INTO "T_Adh" ("Id_Adherent", "Nom", "Prenom", "Date_Adh", "NaiDAt", "Activ_1", "Activ_2", "Activ_3", "Activ_4", "Cotis_23_24") VALUES
	(1, 'AA', 'V', '2021-10-19 00:00:00', NULL, NULL, NULL, NULL, NULL, 'true'),
	(4, 'AB', 'A', '2020-09-10 00:00:00', '2051-07-26 00:00:00', NULL, NULL, NULL, NULL, 'true'),
	(5, 'AC', 'M', '2023-10-24 00:00:00', '1992-05-06 00:00:00', NULL, NULL, NULL, NULL, 'true'),
	(10, 'AD', 'M', '2021-10-03 00:00:00', '2053-05-02 00:00:00', 'TTT_Activ_C_03', NULL, NULL, NULL, 'true'),
	(21, 'BA', 'G', '2021-11-05 00:00:00', '2059-01-19 00:00:00', 'TTT_Activ_C_09', NULL, NULL, NULL, 'true'),
	(24, 'BB', 'C', '2023-10-03 00:00:00', '2048-07-09 00:00:00', NULL, NULL, NULL, NULL, 'true'),
	(25, 'BC', 'Y', '2023-10-05 00:00:00', '2050-10-25 00:00:00', 'TTT_Activ_C_09', NULL, NULL, NULL, 'true'),
	(28, 'BD', 'G', '2023-09-07 00:00:00', '2051-04-14 00:00:00', 'TTT_Activ_C_01', NULL, NULL, NULL, 'true'),
	(29, 'BE', 'E', '2023-10-12 00:00:00', '1973-06-05 00:00:00', 'TTT_Activ_C_08', NULL, NULL, NULL, 'true'),
	(33, 'BF', 'R', '2023-10-02 00:00:00', '2047-04-21 00:00:00', 'TTT_Activ_S_11', NULL, NULL, NULL, 'true'),
	(43, 'BG', 'M', '2023-10-18 00:00:00', '2061-03-13 00:00:00', 'TTT_Activ_C_02', NULL, NULL, NULL, 'true'),
	(45, 'BD', 'B', '2023-09-21 00:00:00', '2056-03-16 00:00:00', 'TTT_Activ_F_01', 'TTT_Activ_S_10', NULL, NULL, 'true'),
	(48, 'DA', 'M', '2023-08-29 00:00:00', '2046-03-07 00:00:00', 'TTT_Activ_C_03', NULL, NULL, NULL, 'true');
/*!40000 ALTER TABLE "T_Adh" ENABLE KEYS */;

-- Listage de la structure de table public. T_Adh_Act
CREATE TABLE IF NOT EXISTS "T_Adh_Act" (
	"Id_Adh_Act" INTEGER NOT NULL,
	"Id_Adh" INTEGER NULL DEFAULT NULL,
	"Id_Act" VARCHAR(25) NULL DEFAULT NULL,
	PRIMARY KEY ("Id_Adh_Act")
);

-- Listage des données de la table public.T_Adh_Act : 14 rows
/*!40000 ALTER TABLE "T_Adh_Act" DISABLE KEYS */;
INSERT INTO "T_Adh_Act" ("Id_Adh_Act", "Id_Adh", "Id_Act") VALUES
	(3, 1, NULL),
	(5, 4, 'TTT_Activ_S_05'),
	(6, 5, NULL),
	(7, 10, 'TTT_Activ_C_03'),
	(8, 21, 'TTT_Activ_C_09'),
	(9, 24, NULL),
	(10, 25, 'TTT_Activ_C_09'),
	(11, 28, 'TTT_Activ_C_01'),
	(12, 29, 'TTT_Activ_C_08'),
	(13, 33, 'TTT_Activ_S_11'),
	(14, 43, 'TTT_Activ_C_02'),
	(15, 45, 'TTT_Activ_F_01'),
	(16, 45, 'TTT_Activ_S_10'),
	(17, 48, 'TTT_Activ_C_03');
/*!40000 ALTER TABLE "T_Adh_Act" ENABLE KEYS */;

-- Listage de la structure de table public. T_Selection
CREATE TABLE IF NOT EXISTS "T_Selection" (
	"ID_Selection" INTEGER NOT NULL,
	"Selection" VARCHAR(50) NULL DEFAULT NULL,
	PRIMARY KEY ("ID_Selection")
);

-- Listage des données de la table public.T_Selection : 1 rows
/*!40000 ALTER TABLE "T_Selection" DISABLE KEYS */;
INSERT INTO "T_Selection" ("ID_Selection", "Selection") VALUES
	(1, NULL);
/*!40000 ALTER TABLE "T_Selection" ENABLE KEYS */;

/*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;
LibreOffice : Version : 24.8.2 (x64)(10 novembre 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: L'indice de la colonne est hors limite : 1, nombre de colonnes : 0

Message par Dude »

Dude a écrit : 22 oct. 2024 13:17 Les tables sont identiques ?
Les tables ne sont pas identiques :marto:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.