[Résolu] Mise à jour données avec Calc
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.
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.
[Résolu] Mise à jour données avec Calc
Bon, excusez moi si cette question a déjà été posé...J'ai quand même pas mal recherché depuis hier matin, et je ne suis pas encore tombé sur ma solution. D'où ma requête à la communauté du forum!
J'ai crée une base de donnée sous Base avec quelques données (enfin quelques milliers...).
Le souci, c'est que certains enregistrements n'ont pas leur champs encore renseignés, mais je les ai quand même intégré à la base de données, espérant pouvoir faire une mise à jour future.
Le fait est que j'aimerais éviter de mettre à jour ces enregistrements à la main, car la base de données n'étant mise à jour qu'une fois l'an, il s'agit de plusieurs centaines d'enregistrements dont le champ est à remplir. Ici, il s'agit d'un relevé journalier donc les mesures ne sont pas encore là, mais l'enregistrement, lui, est bien présent. Il faudra alors mettre à jour le champ de la mesure quand j'aurai la donnée.
Ayant déjà pas mal de relevés, j'ai pu créer la table en l'important de Calc par copier-coller, rajoutant ensuite un ID pour la clé primaire dans l'assistant de base, je l'ai également mis en AutoValeur pour l'import de nouveaux relevés, il n'y a pas de soucis.
Comment faire pour mettre à jour un ensemble de relevés directement sans le faire un à un via un formulaire ou directement dans la table par exemple ? Sous Calc, par exemple, avec F4, je peux copier les données de la table dans Calc, mais pas la mettre à jour.
J'ai également essayé de ré-importer ces enregistrements avec cette fois, la valeur de la mesure renseignée, et en gardant le même ID, mais la base refuse de les importer sous prétexte de duplication...
Si vous avez des idées
Merci d'avance
P.S : sur l'imprim écran de ma table, c'est la dernière colonne que je voudrais mettre à jour en la remplissant rapidement
J'ai crée une base de donnée sous Base avec quelques données (enfin quelques milliers...).
Le souci, c'est que certains enregistrements n'ont pas leur champs encore renseignés, mais je les ai quand même intégré à la base de données, espérant pouvoir faire une mise à jour future.
Le fait est que j'aimerais éviter de mettre à jour ces enregistrements à la main, car la base de données n'étant mise à jour qu'une fois l'an, il s'agit de plusieurs centaines d'enregistrements dont le champ est à remplir. Ici, il s'agit d'un relevé journalier donc les mesures ne sont pas encore là, mais l'enregistrement, lui, est bien présent. Il faudra alors mettre à jour le champ de la mesure quand j'aurai la donnée.
Ayant déjà pas mal de relevés, j'ai pu créer la table en l'important de Calc par copier-coller, rajoutant ensuite un ID pour la clé primaire dans l'assistant de base, je l'ai également mis en AutoValeur pour l'import de nouveaux relevés, il n'y a pas de soucis.
Comment faire pour mettre à jour un ensemble de relevés directement sans le faire un à un via un formulaire ou directement dans la table par exemple ? Sous Calc, par exemple, avec F4, je peux copier les données de la table dans Calc, mais pas la mettre à jour.
J'ai également essayé de ré-importer ces enregistrements avec cette fois, la valeur de la mesure renseignée, et en gardant le même ID, mais la base refuse de les importer sous prétexte de duplication...
Si vous avez des idées
Merci d'avance
P.S : sur l'imprim écran de ma table, c'est la dernière colonne que je voudrais mettre à jour en la remplissant rapidement
Dernière modification par lawrence le 22 mars 2014 00:49, modifié 5 fois.
Raison : Ajout de la coche verte
Raison : Ajout de la coche verte
LibreOffice 4.1.5.3 sour Win 7 SP1
Re: Mise à jour données avec Calc
Bonjour et bienvenue,
Vous avez illustré votre question avec des fichiers en provenance d'un site tiers. Or, souvent ces sites n'assurent aucune pérennité sur les données qu'ils hébergent.
C'est pour cela que nous préférerons que vous utilisiez notre service de pièce-jointe dont le lien est mentionné en bas lorsque vous écrivez votre message : -comment-joindre-un-fichier-sur-ce-forum.html
Veuillez corriger votre message en utilisant le bouton "Editer" (situé à droite) et en mettant en ligne votre fichier correctement.
Vous en remerciant par avance.
Vous avez illustré votre question avec des fichiers en provenance d'un site tiers. Or, souvent ces sites n'assurent aucune pérennité sur les données qu'ils hébergent.
C'est pour cela que nous préférerons que vous utilisiez notre service de pièce-jointe dont le lien est mentionné en bas lorsque vous écrivez votre message : -comment-joindre-un-fichier-sur-ce-forum.html
Veuillez corriger votre message en utilisant le bouton "Editer" (situé à droite) et en mettant en ligne votre fichier correctement.
Vous en remerciant par avance.
Pour tout savoir sur le fonctionnement de ce forum À lire avant tout !
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Mise à jour données avec Calc
Salut,
D'abord merci de suivre ce que te demande le modo pour continuer à recevoir des réponses.
Qu'est ce qui t'empêche d'importer ta feuille dans une table temporaire ?
Il suffit ensuite de faire une requête UPDATE entre les deux tables.
D'abord merci de suivre ce que te demande le modo pour continuer à recevoir des réponses.
Qu'est ce qui t'empêche d'importer ta feuille dans une table temporaire ?
Il suffit ensuite de faire une requête UPDATE entre les deux tables.
Re: Mise à jour données avec Calc
Ok, souci de pièce jointe réparé!
Merci pour ta réponse rapide Dude, je suis donc obligé de passer par les commandes SQL ?
J'ai essayé avec des données que j'ai récupéré en faisant F4 dans Calc et en copiant collant des nouvelles mesures dans la colonne M3 PAR SEC,
je copie-colle ensuite ces données (avec leur en-tête) dans Base pour créer une nouvelle table avec, appelée Table1(pour suivre ta démarche de créer une table temporaire, si j'ai bien compris )
Par contre, il faut que je la crée sans clé primaire (car il y en a déjà une, celle qui va permettre de mettre à jour les enregistrements de la première table RELEVE).
Ensuite, j'ai, de nouveau, les champs à réenseigner de façon à ce qu'ils soit numérique ou de texte.
Puis, je vais faire ma requête! Cependant, je dois mal l'écrire...
J'ai essayé avec des double-cotes mais sans plus de succès!
Merci pour votre aide, ou si il y a d'autres solutions?
Merci pour ta réponse rapide Dude, je suis donc obligé de passer par les commandes SQL ?
J'ai essayé avec des données que j'ai récupéré en faisant F4 dans Calc et en copiant collant des nouvelles mesures dans la colonne M3 PAR SEC,
je copie-colle ensuite ces données (avec leur en-tête) dans Base pour créer une nouvelle table avec, appelée Table1(pour suivre ta démarche de créer une table temporaire, si j'ai bien compris )
Par contre, il faut que je la crée sans clé primaire (car il y en a déjà une, celle qui va permettre de mettre à jour les enregistrements de la première table RELEVE).
Ensuite, j'ai, de nouveau, les champs à réenseigner de façon à ce qu'ils soit numérique ou de texte.
Puis, je vais faire ma requête! Cependant, je dois mal l'écrire...
Code : Tout sélectionner
UPDATE "RELEVE", "table1"
SET "RELEVE"."M3 PAR SEC" = "table1"."M3 PAR SEC"
WHERE "RELEVE"."ID" = "table1"."ID"
Merci pour votre aide, ou si il y a d'autres solutions?
LibreOffice 4.1.5.3 sour Win 7 SP1
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Mise à jour données avec Calc
Je ne vois pas d'autres solutions à ton problème alambiqué de passage par Calc pour faire des mises à jour de données.yggy89 a écrit :je suis donc obligé de passer par les commandes SQL ?
Non, la clé primaire est obligatoire.yggy89 a écrit :Par contre, il faut que je la crée sans clé primaire (car il y en a déjà une, celle qui va permettre de mettre à jour les enregistrements de la première table RELEVE).
Et la mise à jour peut très bien se faire sur un autre identifiant.
Et comme d'habitude, la boule de cristal a des limites qu'un fichier joint peut résoudre.
Re: Mise à jour données avec Calc
Bonsoir
yggy89 a écrit :Code : Tout sélectionner
UPDATE "RELEVE", "table1" SET "RELEVE"."M3 PAR SEC" = "table1"."M3 PAR SEC" WHERE "RELEVE"."ID" = "table1"."ID"
A+HSQLDB Guide a écrit :UPDATEModifie des données d'une table de la base de données.Code : Tout sélectionner
UPDATE table SET colonne = Expression [, ...] [WHERE Expression]
Exemple de commande à saisir en SQL direct :Code : Tout sélectionner
UPDATE "Clients" SET "Nom" = (SELECT "Nom" FROM "AjoutClients" WHERE "AjoutClients"."ID" = "Clients"."ID")
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Re: Mise à jour données avec Calc
Bonjour,
je procéderais comme ceci à partir d'une copie de fichier (au cas où):
1)Sélection par requête du champ à mettre à jour, je suppose le champ vide par rapport à une date;
2) tri > et Glisser/déposer la sélection dans Calc ;
3) Vous avez donc les 'Id' de chaque donnée, et Faire la màj du champ concerné "M3 par SEC";
4) Retournez dans Base et Supprimez la sélection idoine;
5) Faire en mode SQL direct: ALTER TABLE "la table concernée" ALTER COLUMN " ID concerné"(nom de clé primaire") RESTART WITH 1
CHECKPOINT DEFRAG
SHUTDOWN COMPACT
6) Quittez la base
7) Rouvrir la Base;
Copier dans Calc la sélection des données màj;
9) Coller dans la table concernée, ce qui provoquera l'ouverture de l'assistant "Ajout de données"
10) Réordonnez les colonnes face à face et Validez
Ça devrait se faire, à mon avis!
@+
je procéderais comme ceci à partir d'une copie de fichier (au cas où):
1)Sélection par requête du champ à mettre à jour, je suppose le champ vide par rapport à une date;
2) tri > et Glisser/déposer la sélection dans Calc ;
3) Vous avez donc les 'Id' de chaque donnée, et Faire la màj du champ concerné "M3 par SEC";
4) Retournez dans Base et Supprimez la sélection idoine;
5) Faire en mode SQL direct: ALTER TABLE "la table concernée" ALTER COLUMN " ID concerné"(nom de clé primaire") RESTART WITH 1
CHECKPOINT DEFRAG
SHUTDOWN COMPACT
6) Quittez la base
7) Rouvrir la Base;
Copier dans Calc la sélection des données màj;
9) Coller dans la table concernée, ce qui provoquera l'ouverture de l'assistant "Ajout de données"
10) Réordonnez les colonnes face à face et Validez
Ça devrait se faire, à mon avis!
@+
AOO 4.1.14 et LO 7.3.7.2 sous OsX 10.13.6 High Sierra ; Windows 10 sous AOO 4.1.14 et LibO 7.3.7.2
Re: Mise à jour données avec Calc
Merci pour toutes vos infos! J'ai réussi mon opération en utilisant la solution de Piaf!
Pour que cela fonctionne, il faut utiliser la syntaxe qu'il a mis dans son message et le faire via Outils > SQL...
Merci à vous tous!
Pour que cela fonctionne, il faut utiliser la syntaxe qu'il a mis dans son message et le faire via Outils > SQL...
Merci à vous tous!
LibreOffice 4.1.5.3 sour Win 7 SP1
Re: [Résolu] Mise à jour données avec Calc
Bonsoir
Et avec la coche avant le [Résolu] ça le fera encore mieux
A+
pas trop dur à trouver c'est le premier lien dans la section Base.yggy89 a écrit :il faut utiliser la syntaxe qu'il a mis dans son message
Et avec la coche avant le [Résolu] ça le fera encore mieux
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Re: Mise à jour données avec Calc
Piaf a écrit :Bonsoiryggy89 a écrit :Code : Tout sélectionner
UPDATE "RELEVE", "table1" SET "RELEVE"."M3 PAR SEC" = "table1"."M3 PAR SEC" WHERE "RELEVE"."ID" = "table1"."ID"
A+HSQLDB Guide a écrit :UPDATEModifie des données d'une table de la base de données.Code : Tout sélectionner
UPDATE table SET colonne = Expression [, ...] [WHERE Expression]
Exemple de commande à saisir en SQL direct :Code : Tout sélectionner
UPDATE "Clients" SET "Nom" = (SELECT "Nom" FROM "AjoutClients" WHERE "AjoutClients"."ID" = "Clients"."ID")
Bonjour.
Cette solution fonctionne très bien effectivement.
Par contre ca nécessite qu'il y ai un champ ID qui correspondent.
Si ce champ n'existe pas comment faire pour le remplir automatiquement dans la table qui reçoit l'update svp.
Personnellement je n'avais que 20 lignes mais si il y en avait eu des milliers ? Merci
Mageia 7
libre office 6.2.8.2-1.mga7
libre office 6.2.8.2-1.mga7
- Bidouille
- RespOOnsable forum
- Messages : 12196
- Inscription : 08 nov. 2005 17:23
- Localisation : Caen, France
- Contact :
Re: [Résolu] Mise à jour données avec Calc
Ami fossoyeur,
Merci de ne pas déterrer des questions datant de plus de 5 ans.
Déterrage = verrouillage
Merci de ne pas déterrer des questions datant de plus de 5 ans.
Déterrage = verrouillage