Rechercher : dans
Par :

Access problème avec requete delete

Dernière réponse le 24 jun 2008 à 12:56:22 microsoluces, le 13 oct 2006 à 17:55:35 
 Signaler ce message aux modérateurs

Ba encore moi,

Il me manque juste une chose pour finir ma moulinette, pis après j'emm... plus personne :

je voudrait supprimer de ma table PRODUIT tous les articles n'ayant pas été modifiés (champ vide) et dont la quantité en stock est égale à 0. J'ai écrit ça dans une requete SUPPRESSION :

DELETE code FROM produit
WHERE modif="" AND stock=0;


Mais ca ne marche po !

Seul cette requete fonctionne mais ne me convient pas :
DELETE CODE
FROM EBP
WHERE STOCK=0;

Merci d'avance....
(M'énerve cet ACCESS)

1

hssissen, le 13 oct 2006 à 21:03:10

Salut,
Dis nous ce qui se passe quand tu executes ta 1ere requete!

Répondre à hssissen

2

microsoluces, le 14 oct 2006 à 10:06:05

Salut,

Ba en fait il ne se passe rien. La requete me dit 0 objets supprimés.
J ai pensé que MODIF pour un nom de champs pouvait preter à confusion avec un nom de commande, je l 'ai remplacé par XXX, cela n a rien changé. J'ai aussi remplacé ="" par =NULL, puis par =0 cela n a rien changé non plus.

Voici ma requete actuellement :

DELETE CODE
FROM EBP
WHERE XXX=NULL;

code=champs de EBP avec clé primaire
EBP = table produit
XXX=champ qui peut etre vide et sur lequel je fais ma requete...

Merci

Répondre à microsoluces

3

microsoluces, le 16 oct 2006 à 15:50:50

Il semblerait selon mes recherches qu'il est préférable de supprimer l'enregistrement d'une table d'après une requete sur un champ rempli que vide... Surtout si les informations contenues dans cette table proviennent d'importation, même réussie, d'un ficher EXCEL en CSV !

Je vais plutôt importer une table PRODUIT avec le champ XXX contenant "EBP". Si ce champ n'est pas modifié et que le produit n'est pas en stock, alors on devrait pouvoir le supprimer !


A moins que quelqu un puisse m'aider autrement !

Merci...

Répondre à microsoluces

4

blux, le 16 oct 2006 à 16:37:42

Salut,

ton champ modif n'est peut-être pas vide, mais peut-être NULL (il n'a jamais contenu de données)...
Il y a une différence au niveau informatique entre : ne contient rien ("") et n'a jamais été initialisé (NULL, voir undefined pour certains SGBD)...

Avec ACCESS, NULL ne se teste pas en valeur mais avec une fonction

DELETE *
FROM EBP
WHERE isnull(MODIF);
Ca devrait aller mieux...
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux

5

microsoluces, le 17 oct 2006 à 10:14:39

Blux mon sauveuuuuuuuuuuur !

Encore une fois merci !

Répondre à microsoluces

6

jacky, le 24 jun 2008 à 12:48:13

Bonjour,
j'ai rencontré un problème dans l'éxecution de la fonction DELETE de SQL avec plusieurs champs.
en effet voici ma requête telle que saisie:
"DELETE *
FROM BON
WHERE [nom chauffeur]=mbiya;"
merci d'avance pour vos réponses

Répondre à jacky

7

 blux, le 24 jun 2008 à 12:56:22
  • +1

Comme tu n'indiques pas le type d'erreur, on va supposer que c'est parce que [nom chauffeur] est une zone de type alphanumérique et donc il faut mettre des guillemets (ou des quotes) sur la valeur testée...

WHERE [nom chauffeur]='mbiya';
ou
WHERE [nom chauffeur]="mbiya";

A+ Blux           

 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

Répondre à blux
Collection CommentÇaMarche.net