Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2220 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Access refuse !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Access refuse !

n°1819702
eglantine ​cent
Posté le 01-12-2008 à 08:02:59  profilanswer
 

bonjour
décidément access m'en veut
 
je pose une requête qui n'aboutit jamais
 
UPDATE salaires SET salaires.[SomAB]="A"+"B",salaires.[SomABC]="A"+"B"+"C";
 
le traitement se fait et le message de réponse est :
 
Access n'arrive pas a mettre à jour tous les enregistrements avec la requête mise a jour  
0 enregistrement du a l'échec de conversion de type
0 enregistrement à la suite de violations de clé
0 enregistrement à la suite de violation de verrou
et 0 enregistrement à la suite de la règle de validation
 
A 3 reprises ca ne marche pas  !    help
 
merci
 
 

mood
Publicité
Posté le 01-12-2008 à 08:02:59  profilanswer
 

n°1819720
olivthill
Posté le 01-12-2008 à 09:46:10  profilanswer
 

Access signale un problème de conversion de type.
 
Est-ce que vous ne chercheriez pas à transférer des données alphanumériques dans des champs numériques, ou des données nulles dans des champs non nuls ? Pour y remédier il faudrait utiliser les instructions de conversions dont le nom commencent par la lettre "C", comme CStr, CInt, etc., et gérer les éventuelles valeurs nulles.
 
Bon courage !

n°1820211
eglantine ​cent
Posté le 01-12-2008 à 20:36:08  profilanswer
 

merci de ta réponse
j'ai vérifie il s'agit bien de données numériques dans des champs numériques sans le statut null
je ne sais plus quoi faire

n°1820589
olivthill
Posté le 02-12-2008 à 13:08:36  profilanswer
 

S'il s'agit de données numériques, il ne devrait pas y avoir de guillemets. Ou alors le code indiqué (UPDATE ...) a été changé substantiellement.

n°1821024
eglantine ​cent
Posté le 03-12-2008 à 02:05:05  profilanswer
 

bonjour
je ne comprends pas quand tu dis le code indique a été change substantiellement ?  comment cela peut se faire et comment y remedier si c'est le cas
excuse moi de t'ennuyer mais je nage beaucoup

n°1821062
kao98
...
Posté le 03-12-2008 à 09:38:14  profilanswer
 

olivthill a écrit :

Access signale un problème de conversion de type.


Mais où est-ce que tu as vu qu'il y avait un problème de conversion de type de données !?
 
Moi, j'ai l'impression que ce que tu cherches à faire, c'est mettre à jour une requête, et que les champs que tu souhaites mettre à jour sont des zone calculées qu'il est impossible à mettre à jour.
 
C'est quoi [SomAB] ? Ca vient d'où ? D'une table ? D'une requête ?
Et, grand dieu, pourquoi souhaite tu concerver en BDD un champ calculé, surtout aussi simple que celui-ci ?


Message édité par kao98 le 03-12-2008 à 09:40:11

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1821063
olivthill
Posté le 03-12-2008 à 09:39:36  profilanswer
 

C'est juste que je vois des guillemets autour de A et de B sur la ligne :
 
UPDATE salaires SET salaires.[SomAB]="A"+"B",salaires.[SomABC]="A"+"B"+"C";  
 
"A" est une chaine de caractères contenant la lettre A
Par contre, si A était écrit sans guillemets, alors ce serait une variable nommée A, pouvant contenir une chaine de caractères ou un nombre.

n°1821064
kao98
...
Posté le 03-12-2008 à 09:41:26  profilanswer
 

Mais access ne signale aucun problème de conversion de type de donnée comme tu le dis !
 
Pis, cf mon edit juste au dessus.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1821068
olivthill
Posté le 03-12-2008 à 09:53:00  profilanswer
 

Il y a une ambiguité dans le message suivant (si le message était en anglais il serait plus clair) :
 
0 enregistrement du a l'échec de conversion de type  
 
J'ai compris que cela indiquait qu'il n'y a eu zéro enregistrement d'inséré à cause d'une conversion de type.
Mais peut-être qu'il signifie qu'il n'y aurait eu zéro erreur de conversion de type. Dans ce cas, je me suis trompé et je m'en excuse. Néanmoins, il parait étrange de mettre des chaines de caractères, "A"+"B", dans un champ nommé SomAB, dont le nom semble indiqué qu'il contient une somme, donc un nombre. De plus, l'opérateur de concaténation de chaîne n'est pas le signe plus, "+", mais le et commercial "&". Donc, je ne comprends pas cette syntaxe "A" + "B". Pour moi il devrai y avoir A + B ou "A" & "B".

n°1821113
kao98
...
Posté le 03-12-2008 à 10:52:48  profilanswer
 

Nan mais elle sait pas ce qu'elle fait, c'est tout.
 
Et pour le message d'access, ben faut connaître, c'est vrai que ça aurait pu porter à confusion. Mais la suite du message d'erreur, qu'elle donne, aurait dû te mettre la puce à l'oreille non ?
 
Enfin, spa grave. Conseille lui plutôt de revoir ses bases !


Message édité par kao98 le 03-12-2008 à 10:53:12

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
mood
Publicité
Posté le 03-12-2008 à 10:52:48  profilanswer
 

n°1821194
eglantine ​cent
Posté le 03-12-2008 à 12:17:24  profilanswer
 

je vous remercie d'essayer de m'aider ,mais ce n'est pas facile je vois.
j'essaie de mettre a jour un champ avec la valeur 1 (numérique) avec une requête ajout simple qui calcule par exemple ( where champ A +champ B <100 ) champ A et B sont des champs numériques (vérifié )
Autre problème pour des costauds car la je plane grave :
je copie ma base 1 en une base 2  ( simple copie ) dans lesquelles je n'ai laisse qu' 1 seule table ( avec les mêmes enregistrements , même caractéristiques des champs ,levé toutes les requêtes ) j'obtiens une base l'une de  668 440 K et l'autre de  2 095 332 K  !!!!!  c'est pour moi l'énigme du grand sphinx !     (sos) (help) ²  

n°1821381
smilaou
Posté le 03-12-2008 à 15:27:17  profilanswer
 

Je pense qu'il faut que tu fasses une procedure stockée avec un curseur...
 
Dans ton update il y a un truc que j'aime pas c'est  
UPDATE salaires SET salaires.[SomAB]="A"+"B",salaires.[SomABC]="A"+"B"+"C";  
 
Il faudrait si je comprends bien  
UPDATE salaires SET salaires.[SomAB]=salaires.[A]+salaires.[B],salaires.[SomABC]=salaires.[A]+salaires.[B]+salaires.[C] where xxx;
 
Dans ce cas je ne vois pas de moyen de créer la clause where sauf en passant pas une procedure stockée.  
 
Compacte ta deuxième base...

n°1821398
kao98
...
Posté le 03-12-2008 à 15:46:16  profilanswer
 

smilaou a écrit :

Je pense qu'il faut que tu fasses une procedure stockée avec un curseur...


:pfff:
 
C'est Access là ! Pas Oracle !!!
 
Eglantine: ouvre un bon bouquin Access, ou trouve des cours sur Internet, et revoit les bases d'access, des requêtes, toussa.


Message édité par kao98 le 03-12-2008 à 15:47:21

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1821481
smilaou
Posté le 03-12-2008 à 16:48:00  profilanswer
 

kao98 j'ai jamais utilisé access. Je donne des pistes. Les procédures stockées et les curseurs n'existent pas que sous Oracle...
 
eglantine cent Tu peux passer par une autre table pour faire ces calculs...
 
insert into table2(id_salaires,A,B,C, SomAB,SomABC) select id_salaires,A,B,C ,salaires.[A]+salaires.[B] as SomAB ,salaires.[A]+salaires.[B]+salaires.[C] SomABC from SALAIRES
 
Ou bien une méthode qui plaira plus à kao98, tu crées une vue.
 
create view SALAIRESUM as select id_salaires,A,B,C ,salaires.[A]+salaires.[B] as SomAB ,salaires.[A]+salaires.[B]+salaires.[C] SomABC from SALAIRES


Message édité par smilaou le 03-12-2008 à 16:48:50
n°1821499
kao98
...
Posté le 03-12-2008 à 17:04:59  profilanswer
 

Tu sais quoi, si tu n'as jamais travaillé avec Access et que tu ne le connais pas, et que tu te base sur une expérience "serveur de BDD comme Oracle, postgres ou autre", tu devrais t'abstenir. Vraiment.
C'est gentil à toi, tu veux aider, mais Access est très limité ! Pas de vue, pas de procédure stockée, ... pas grand chose à vrai dire. Et on est loin de l'esprit "serveur sql".
 
Eglantine: pour ton second problème, cherches dans les menus (je ne sais plus où exactement) un élément genre "compacter la base de données".
Pour ton premier problème, je ne comprend toujours pas ce que tu veux faire, mais ça me semble tordu (et inutile aussi peut-être).


Message édité par kao98 le 03-12-2008 à 17:05:38

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1822897
eglantine ​cent
Posté le 06-12-2008 à 16:14:42  profilanswer
 

je crée une requête qui plante et qui ne me donne pas de solution
 
UPDATE mesure(table) INNER JOIN donns (table) ON mesure.num=donns.num SET mesure.groupe1=1
WHERE((donns.v1=mesure.p1)AND(donns.v2=mesure.p2));
 
il me repond 0 enregistrement a mettre a jour alors que la requête devrait parcourir les 500 enregistrement de la table donns

n°1822899
LePhasme
Les Belges domineront le monde
Posté le 06-12-2008 à 16:23:56  profilanswer
 

si tu fais un select * from mesure, donns where donns.v1 = mesure.p1 AND donns.v2 = mesure.p2 ça te retourne bien les enregistrements qui devraient être mis à jour ?


---------------
Instagram - Mon PVT en Australie.
n°1822932
eglantine ​cent
Posté le 06-12-2008 à 17:26:15  profilanswer
 

il faut que je mettes a jour un champ "groupe1" de la table "mesure" avec 1 a partir des 500 enregistrements de la table "donns"
la table "mesure" comprend environ 60000 enregistrements
il doit manquer une instruction à ma requete
tu vois laquelle ?  
merci de ta réponse

n°1823897
eglantine ​cent
Posté le 09-12-2008 à 00:13:01  profilanswer
 

le probleme qui se pose est lorsque je cree cette commande la reponse est  0 enregistrement mis a jour !
UPDATE Table EFFECTIF INNER JOIN Table VERSEMENTS ON Table EFFECTIF.NUM = Table VERSEMENTS.NUM SET Table EFFECTIF.Totalcritere = 1
WHERE (((Table VERSEMENTS.Q1)=[A]) AND ((Table VERSEMENTS.Q2)=[B]) AND ((Table VERSEMENTS.Q3)=[C]) AND ((Table VERSEMENTS.Q4)=[D]));
 
quelqu'un peut il m'aider ?   merci

n°1823982
olivthill
Posté le 09-12-2008 à 10:02:16  profilanswer
 

Comme dit précédemment, il devrait être intéressant de tester cette requête avec un select au lieu d'un update pour mieux voir ce qui se passe.  Il faudrait modifier les critères de sélection ou la jointure jusqu'à ce que ça marche. Il n'existe pas d'outil de débuggage des requêtes SQL. On est donc obligé de procéder par essais et erreurs. Bon courage !

n°1828261
SuppotDeSa​Tante
Aka dje69r
Posté le 16-12-2008 à 23:05:10  profilanswer
 

Bonsoir
 
Essaie d'envoyer la base pour qu'on zieute. Parceque la tu as une requete ou rien ne correspond a ce que tu en decris le post precedent... Tu mets des "Table" ou des "(table)" un peu partout...
Mon mail est dns mon profil
 
Pour la premiere requete :
UPDATE mesure INNER JOIN donns ON mesure.num = donns.num SET mesure.groupe1 = 1 WHERE (((donns.v1)=[mesure].[p1]) AND ((donns.v2)=[mesure].[p2]));
 
Seconde requete :
UPDATE EFFECTIF INNER JOIN VERSEMENTS ON EFFECTIF.NUM = VERSEMENTS.NUM SET EFFECTIF.Totalcritere = 1 WHERE (((VERSEMENTS.Q1)=[A]) AND ((VERSEMENTS.Q2)=[B]) AND ((VERSEMENTS.Q3)=[C]) AND ((VERSEMENTS.Q4)=[D]));  
 
Sinon, si ca te renvoit 0 enregistrement c'est peut etre aussi que ta clause where fait que tu as 0 enregistrement qui corresponde.
 
Cordialement


Message édité par SuppotDeSaTante le 16-12-2008 à 23:18:19

---------------
Soyez malin, louez entre voisins !
n°1842515
eglantine ​cent
Posté le 24-01-2009 à 15:42:56  profilanswer
 

bonjour
je coince sur un probleme de compactage de base access
ma version 2000 possede juste une commande "compactage " sans possibilite autre et lorsque je tente de compacter une base un message annonce  " il existe deja une table TableSysaccess.." et je suis concée
 
sos help  merci

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Access refuse !

 

Sujets relatifs
Pb base de donnée sous accessdistribuer une application access sous réseau
Affichage de champs de plusieurs tables ds formulaire [ACCESS/VBA]Erreur 3197 Driver ODBC MySQL & Access en frontal
Réduction de la fenêtre Access dès le démarrageConcatenation de fichiers excel de même format dans une base access
[VB.Net2003-2005+SQL-Access] Commandes et Syntaxes pour travail de BDDJAVA + NETBEANS + ACCESS
Listage + compactage access 97Synchronisation de deux bases de données (Access 2003)
Plus de sujets relatifs à : Access refuse !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR