{Access} supprimé des enregistrements
Résolu
hutchy33
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
CaPiT Messages postés 609 Date d'inscription Statut Membre Dernière intervention -
CaPiT Messages postés 609 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà j'ai un souci avec une table de ma base de données: ma table comporte 14 champs dont un appelé "phone".
Je dois sortir de cette table tous les enregistrements dont le champs "phone" n'a pas 10 chiffres, ou ne commence pas par 01,02,03,04,05. Donc au final je dois bien avoir ma table avec mes 14 champs mais dont les enregistrements avec un mauvais numéro supprimés. Voilà se que j'ai essayé d'utilisé, mais dois-je faire ça et rajouté mes 14 champs à la suite? Non il doit y avoir plus simple quand même!!! Quelqu'un peut-il m'aider please?
SELECT Table1.N°, Table1.nom, Table1.phone, .......
FROM Table1
WHERE
(
(
(Table1.phone) like "0[1-9]########"
)
);
Voilà j'ai un souci avec une table de ma base de données: ma table comporte 14 champs dont un appelé "phone".
Je dois sortir de cette table tous les enregistrements dont le champs "phone" n'a pas 10 chiffres, ou ne commence pas par 01,02,03,04,05. Donc au final je dois bien avoir ma table avec mes 14 champs mais dont les enregistrements avec un mauvais numéro supprimés. Voilà se que j'ai essayé d'utilisé, mais dois-je faire ça et rajouté mes 14 champs à la suite? Non il doit y avoir plus simple quand même!!! Quelqu'un peut-il m'aider please?
SELECT Table1.N°, Table1.nom, Table1.phone, .......
FROM Table1
WHERE
(
(
(Table1.phone) like "0[1-9]########"
)
);
A voir également:
- {Access} supprimé des enregistrements
- Recuperer message whatsapp supprimé - Guide
- Message supprimé whatsapp - Guide
- Comment supprimer un fichier qui refuse d'être supprimé - Guide
- Comment retrouver un numero supprimé - Accueil - Android
- Acer quick access ✓ - Forum PC portable
20 réponses
Bonjour,
DELETE FROM Table1 WHERE Table1.phone NOT IN(
SELECT Table1.phone
FROM Table1
WHERE (Table1.phone) LIKE "0[1-9]########");
Essaie ça ;)
DELETE FROM Table1 WHERE Table1.phone NOT IN(
SELECT Table1.phone
FROM Table1
WHERE (Table1.phone) LIKE "0[1-9]########");
Essaie ça ;)
c'est cool ça marche bien merci, mais sur chaque ligne de la table qui a été supprimé, il y a maintenant écrit supprimé à chaque champs. Comme enlever ça please? Et petite question subsidiaire, chaque enregistrement que je supprime de cette table je voudrai les renseigné dans un fichier excel de façon automatique, c à d que dans le code VBA il faudrait rajouté une ligne pour qu'une fois la suppression faite de la table, je récupère les enregistrements pour les mettre dans un fichier Excel. Merci pour votre aide c'est très important.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour ce qui est de "supprimé" à chaque ligne je ne vois pas trop pourquoi il te fait ça.
Concernant ta question subsidiaire tu peux effectivement enregistrer tes données supprimées dans un fichier Excel en utilisant du code VBA. Je n'ai pas de base de données Access là donc je ne peux pas te guider.
Tu peux retrouver des exemples comme ici : https://cafeine.developpez.com/access/tutoriel/excel/#LVII
mais c'est assez compliqué.
Par contre je pourrais te suggérer de les enregistrer dans une autre table à part, en faisant un INSERT INTO ( SELECT....) de l'autre table avant le DELETE.
Puis après pourquoi pas exporter la table dans un fichier Excel ou encore la synchroniser avec ce dit fichier :)
Concernant ta question subsidiaire tu peux effectivement enregistrer tes données supprimées dans un fichier Excel en utilisant du code VBA. Je n'ai pas de base de données Access là donc je ne peux pas te guider.
Tu peux retrouver des exemples comme ici : https://cafeine.developpez.com/access/tutoriel/excel/#LVII
mais c'est assez compliqué.
Par contre je pourrais te suggérer de les enregistrer dans une autre table à part, en faisant un INSERT INTO ( SELECT....) de l'autre table avant le DELETE.
Puis après pourquoi pas exporter la table dans un fichier Excel ou encore la synchroniser avec ce dit fichier :)
Capit,
Effectivement j'ai lu le tutoriel que tu m'as proposé, c'est bien compliqué. La deuxième solution que tu me propose me parrait très bien, surtout si on peut faire une synchronisation entre Table et fichier Excel. Sauf que je suis vraiment débutant en VB et je ne sais pas koi mettre après ton INSERT INTO (SELECT....). Je sais ke tu n'as pas de base dispo avec toi mais en mettant des termes générique tu peux peut etre me guidé un peu plus.
Vraiment je te remercie beaucoup, tu vas me sauver et me faire gagné bcp de temps.
Effectivement j'ai lu le tutoriel que tu m'as proposé, c'est bien compliqué. La deuxième solution que tu me propose me parrait très bien, surtout si on peut faire une synchronisation entre Table et fichier Excel. Sauf que je suis vraiment débutant en VB et je ne sais pas koi mettre après ton INSERT INTO (SELECT....). Je sais ke tu n'as pas de base dispo avec toi mais en mettant des termes générique tu peux peut etre me guidé un peu plus.
Vraiment je te remercie beaucoup, tu vas me sauver et me faire gagné bcp de temps.
Tout d'abord comment s'exécute ta requête DELETE?
C'est en cliquant sur un bouton de ton formulaire?
Si oui, c'est fait via du VBA (je pense) donc fait moi un copier/coller du code concerné.
Si non explique moi en détail comment la requête DELETE est appellée/utilisée ;)
C'est en cliquant sur un bouton de ton formulaire?
Si oui, c'est fait via du VBA (je pense) donc fait moi un copier/coller du code concerné.
Si non explique moi en détail comment la requête DELETE est appellée/utilisée ;)
pour l'instant c'est une requête que j'utilise en double clicke dessus, par la suite il faudra que j'automatise un certain nombre de taches à l'aide d'un "module". Mais pour l'instant je veux comprendre chaque taches donc je fais tout en manuel. Voici le code qui est pour l'instant en place:
DELETE *
FROM Import
WHERE Import.phone NOT IN(
SELECT Import.phone
FROM Import
WHERE (Import.phone) LIKE "0[1-9]########");
ceci est donc le début du code, là ou je supprime les enregistrements dont le champ "phone" n'est pas utilisable, mais je voudrai que ces enregistrements soient renseignés dans un fichier Excel.
DELETE *
FROM Import
WHERE Import.phone NOT IN(
SELECT Import.phone
FROM Import
WHERE (Import.phone) LIKE "0[1-9]########");
ceci est donc le début du code, là ou je supprime les enregistrements dont le champ "phone" n'est pas utilisable, mais je voudrai que ces enregistrements soient renseignés dans un fichier Excel.
Dans ce cas là dans la même requête SQL tu mets :
INSERT INTO NouvelleTable (
SELECT *
FROM Import
WHERE Import.phone NOT IN(
SELECT Import.phone
FROM Import
WHERE (Import.phone) LIKE "0[1-9]########"));
DELETE *
FROM Import
WHERE Import.phone NOT IN(
SELECT Import.phone
FROM Import
WHERE (Import.phone) LIKE "0[1-9]########");
Comm d'hab, j'ai pas testé donc c'est peut être faux ;)
INSERT INTO NouvelleTable (
SELECT *
FROM Import
WHERE Import.phone NOT IN(
SELECT Import.phone
FROM Import
WHERE (Import.phone) LIKE "0[1-9]########"));
DELETE *
FROM Import
WHERE Import.phone NOT IN(
SELECT Import.phone
FROM Import
WHERE (Import.phone) LIKE "0[1-9]########");
Comm d'hab, j'ai pas testé donc c'est peut être faux ;)
T'as bien créer la nouvelle table ou les valeurs vont s'enregistrer? Avec exactement les même nom de champs que l'autre. Seul le nom de la nouvelle table est à changer.
De plus faut que tu remplace "NouvelleTable" dans le INSERT INTO par le nouveau nom ;)
De plus faut que tu remplace "NouvelleTable" dans le INSERT INTO par le nouveau nom ;)
à ok la requète ne peut pas créer d'elle-même cette nouvelle table en récupérant tous les champs de la table Import?
Non, enfin si mais ça voudrait dire qu'a chaque exécution de la dit requête, ta table est recréée.
Et j'imagine que ce n'est pas ça que tu souhaites.
Donc créer ta table manuellement (tu fais un copier/coller de l'autre en changeant de nom et tu la vide).
Et j'imagine que ce n'est pas ça que tu souhaites.
Donc créer ta table manuellement (tu fais un copier/coller de l'autre en changeant de nom et tu la vide).
Bon c'est fait mais j'ai eu le meme résultat soit : erreur de syntaxe dans l'instruction INSERT INTO
J'ai cherché un peu dans des tuto sur SQL et j'ai remarqué que certain mettent des guillemet avant le nom de la table après INSERT INTO et là j'ai ça comme erreur: Erreur de syntaxe dans la requête. La clause de la requête est incomplète.
Je vois pas d'où est le souci mais je suis sur que tu es pas loin.
J'ai cherché un peu dans des tuto sur SQL et j'ai remarqué que certain mettent des guillemet avant le nom de la table après INSERT INTO et là j'ai ça comme erreur: Erreur de syntaxe dans la requête. La clause de la requête est incomplète.
Je vois pas d'où est le souci mais je suis sur que tu es pas loin.
Non normalement la syntaxe de ma requête est correcte.
Essaies de mettre la requête INSERT dans une autre requête Access, histoire de séparer les 2.
Par contre il faudra que tu doubles clique sur la requête 1 et ensuite la requête 2 et tu auras ce que tu cherches.
Essaies de mettre la requête INSERT dans une autre requête Access, histoire de séparer les 2.
Par contre il faudra que tu doubles clique sur la requête 1 et ensuite la requête 2 et tu auras ce que tu cherches.
Je ne mettrais pas de parenthèses avant le select...
A+ Blux
INSERT INTO NouvelleTable SELECT * FROM Import WHERE Import.phone NOT IN( SELECT Import.phone FROM Import WHERE (Import.phone) LIKE "0[1-9]########");--
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
Punaise Blux merci c t juste cette histoire de parenthèses!!!! c boules!
Bon ben la suite maintenant c'est d'exporté cette table vers un fichier Excel mais en plus que ce fichier soit en synchro avec la table. Tous ça biensur c'est le code sql qui me faudrait.
Merci bcp encore une fois, j'ai cru ne jamais m'en sortir.
Bon ben la suite maintenant c'est d'exporté cette table vers un fichier Excel mais en plus que ce fichier soit en synchro avec la table. Tous ça biensur c'est le code sql qui me faudrait.
Merci bcp encore une fois, j'ai cru ne jamais m'en sortir.