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

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.

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

Messagepar yggy89 » 21 Mars 2014 14:05

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
Pièces jointes
miseàjour.png
Dernière édition par lawrence le 22 Mars 2014 00:49, édité 5 fois.
Raison: Ajout de la coche verte
LibreOffice 4.1.5.3 sour Win 7 SP1
yggy89
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 21 Mars 2014 13:49

Re: Mise à jour données avec Calc

Messagepar Oukcha » 21 Mars 2014 14:20

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.
                                        
:arrow: A lire avant tout ! Image
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
 
Message(s) : 3086
Inscrit le : 06 Oct 2008 09:03

Re: Mise à jour données avec Calc

Messagepar Dude » 21 Mars 2014 15:29

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.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20914
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: Mise à jour données avec Calc

Messagepar yggy89 » 21 Mars 2014 16:29

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   AgrandirRéduire
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?
LibreOffice 4.1.5.3 sour Win 7 SP1
yggy89
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 21 Mars 2014 13:49

Re: Mise à jour données avec Calc

Messagepar Dude » 21 Mars 2014 17:52

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. :?
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20914
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: Mise à jour données avec Calc

Messagepar Piaf » 21 Mars 2014 18:40

Bonsoir
yggy89 a écrit:
Code : Tout sélectionner   AgrandirRéduire
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   AgrandirRéduire
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   AgrandirRéduire
UPDATE "Clients"
SET "Nom" = (SELECT "Nom" FROM "AjoutClients" WHERE "AjoutClients"."ID" = "Clients"."ID")
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: Mise à jour données avec Calc

Messagepar HRk2o » 21 Mars 2014 19:31

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!
@+
AOO 4.17 et LO 5.47 sous OsX 10.13.6 High Sierra ; Windows 10 sous AOO 4.16 et LibO 5.4.7
HRk2o
Membre cOOnfirmé
Membre cOOnfirmé
 
Message(s) : 243
Inscrit le : 29 Mai 2009 09:51
Localisation : Guyane

Re: Mise à jour données avec Calc

Messagepar yggy89 » 21 Mars 2014 23:08

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!
LibreOffice 4.1.5.3 sour Win 7 SP1
yggy89
Fraîchement OOthentifié
 
Message(s) : 3
Inscrit le : 21 Mars 2014 13:49

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

Messagepar Piaf » 22 Mars 2014 00:24

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+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: Mise à jour données avec Calc

Messagepar Prismx » 13 Sep 2019 10:43

Piaf a écrit:Bonsoir
yggy89 a écrit:
Code : Tout sélectionner   AgrandirRéduire
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   AgrandirRéduire
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   AgrandirRéduire
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
Linux mint debian edition
Libre Office 6.3.2
Prismx
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 28 Août 2019 18:28

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

Messagepar Bidouille » 13 Sep 2019 10:47

Ami fossoyeur,

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

Déterrage = verrouillage
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 10133
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)