Page 1 sur 1

[Résolu] Mise à jour données avec Calc

Publié : 21 mars 2014 13:05
par yggy89
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

Re: Mise à jour données avec Calc

Publié : 21 mars 2014 13:20
par Oukcha
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.

Re: Mise à jour données avec Calc

Publié : 21 mars 2014 14:29
par Dude
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.

Re: Mise à jour données avec Calc

Publié : 21 mars 2014 15:29
par yggy89
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...

Code : Tout sélectionner

UPDATE "RELEVE", "table1"
SET "RELEVE"."M3 PAR SEC" = "table1"."M3 PAR SEC"
WHERE "RELEVE"."ID" = "table1"."ID"
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?

Re: Mise à jour données avec Calc

Publié : 21 mars 2014 16:52
par Dude
yggy89 a écrit :je suis donc obligé de passer par les commandes SQL ?
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 :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).
Non, la clé primaire est obligatoire.
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

Publié : 21 mars 2014 17:40
par Piaf
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"
HSQLDB Guide a écrit :UPDATE

Code : Tout sélectionner

UPDATE table SET colonne = Expression [, ...] [WHERE Expression]
Modifie des données d'une table de la base de données.
Exemple de commande à saisir en SQL direct :

Code : Tout sélectionner

UPDATE "Clients" 
SET "Nom" = (SELECT "Nom" FROM "AjoutClients" WHERE "AjoutClients"."ID" = "Clients"."ID")
A+

Re: Mise à jour données avec Calc

Publié : 21 mars 2014 18:31
par HRk2o
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;
8) 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!
@+

Re: Mise à jour données avec Calc

Publié : 21 mars 2014 22:08
par yggy89
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!

Re: [Résolu] Mise à jour données avec Calc

Publié : 21 mars 2014 23:24
par Piaf
Bonsoir
yggy89 a écrit :il faut utiliser la syntaxe qu'il a mis dans son message
pas trop dur à trouver c'est le premier lien dans la section Base.
Et avec la coche avant le [Résolu] ça le fera encore mieux :)
A+

Re: Mise à jour données avec Calc

Publié : 13 sept. 2019 09:43
par Prismx
Piaf a écrit :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"
HSQLDB Guide a écrit :UPDATE

Code : Tout sélectionner

UPDATE table SET colonne = Expression [, ...] [WHERE Expression]
Modifie des données d'une table de la base de données.
Exemple de commande à saisir en SQL direct :

Code : Tout sélectionner

UPDATE "Clients" 
SET "Nom" = (SELECT "Nom" FROM "AjoutClients" WHERE "AjoutClients"."ID" = "Clients"."ID")
A+

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

Re: [Résolu] Mise à jour données avec Calc

Publié : 13 sept. 2019 09:47
par Bidouille
Ami fossoyeur,

Merci de ne pas déterrer des questions datant de plus de 5 ans.

Déterrage = verrouillage