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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ACCESS] Est il possible de faire un TRUNCATE ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ACCESS] Est il possible de faire un TRUNCATE ?

n°1446442
Alphajet
Faites le vous-même!
Posté le 22-09-2006 à 18:08:21  profilanswer
 

Bonjour,
 
Je me demandais s'il existait en Access un équivalent de la commande TRUNCATE (qu'on trouve sous MySQL par exemple).
 
En fait je voudrais pouvoir vider une table pour la remplir à nouveau, mais Access bloque la suppression du fait des références vers d'autres tables avec un DELETE *
 
Merci !


---------------
Bien joué! Mais une brique ne rend jamais les coups.
mood
Publicité
Posté le 22-09-2006 à 18:08:21  profilanswer
 

n°1446551
seniorpapo​u
Posté le 23-09-2006 à 11:20:34  profilanswer
 

Bonjour,
a la main?
ouvrir la table, clic droite sur le carré en haut à gauche, supprimer l'enregistrement
 
sinon:
recordset.Delete AffectRecords  
 
voir : Méthode Delete (objet ADO Recordset)
 
Cordialement


Message édité par seniorpapou le 23-09-2006 à 11:36:22
n°1446721
moi23372
Posté le 24-09-2006 à 11:17:21  profilanswer
 

DELETE CASCADE

n°1447170
MagicBuzz
Posté le 25-09-2006 à 15:19:50  profilanswer
 

Ouh là là...
 
La méthode de seniorpapou fera la même erreur que le simple DELETE. Deplus, passer par un record de sélection pour faire une suppression, c'est jouer avec le feu (on ne peut pas garantir qu'entre le moment où les lignes sont flaguées dans le recordset et le moment où elles sont effacées, il n'y a pas eu de nouvelle insertion de données dans la table).
 
La méthode de moi23372 est la meilleure solution pour viter la base entière sans trop avoir compris ce qu'il s'est passé.
 
Non, faut pas faire comme ça.
 
Et il n'y a en effet pas de TRUNCATE dans Access.
 
La meilleure solution consiste donc à supprimer toutes les clés étrangères, puisqu'Access ne permet pas de les désactiver (c'est ce que fait le TRUNCATE).
Il faut mieux aussi supprimer les éventuels index de la table, puisqu'à nouveau on ne peut pas les désactiver (ce que fait le TRUNCATE aussi) car sinon le delete et la repopulation seront très lents.
Une fois ces clés supprimées, on peut sans problème effectuer le DELETE * (sans CASCADE, qui est extrêment dangereux et à banir autant que possible).
Une fois la table repopulée, on pourra remettre les clés et les index sur la table.
 
Attention toutefois : si les données sont incohérentes, la re-création des clés et des index échouera.

n°1447385
seniorpapo​u
Posté le 26-09-2006 à 07:42:46  profilanswer
 

Bonjour,
Tout à fait en phase avec tes remarques.
 

Citation :


(on ne peut pas garantir qu'entre le moment où les lignes sont flaguées dans le recordset et le moment où elles sont effacées, il n'y a pas eu de nouvelle insertion de données dans la table).
 


 
 
Ceci suppose-t-il qu'il est en réseau?
Si oui, on peu admettre qu'avant une manip de ce genre il ouvre sa base en mode exclusif sinon bonjour les dégats..
 
Il est vrai qu'Alphajet n'a pas précisé le contexte dans lequel il travaillait: est-ce une version opérationnelle ou bien une phase de tests?
Attendons..
 
Cordialement
 

n°1447503
Alphajet
Faites le vous-même!
Posté le 26-09-2006 à 11:54:16  profilanswer
 

Bonjour et avant tout merci pour vos réponses  
 
Le cadre est une base Access partagée pour une dizaine de personnes.
Cette procédure est destinée à être utilisée environ 1 fois par an, lors de la mise à jour d'informations sur des pays.
 
Pour faciliter la vie des personnes du service statistiques, je crée un formulaire qui va récupérer les données depuis un fichier Excel. Comme ça une fois par an, elles pourront remettre à jour leur fichier Excel, puis cliquer sur l'importation de leur fichier Excel
 
L'objectif étant de pouvoir vider la table et réinsérer les données tout s'assurant que les liens avec d'autres tables sont toujours actifs. J'aurais pu faire un UPDATE, cependant si l'on veut retirer ou ajouter un pays dans la liste, c'est moins évident.


---------------
Bien joué! Mais une brique ne rend jamais les coups.

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

  [ACCESS] Est il possible de faire un TRUNCATE ?

 

Sujets relatifs
[ACCESS] + [VBA] selectionner toutes les lignes[Access] Faire défiler un menu déroulant avec la flèche du clavier
Requete SQL ds Access[Business Objects] Afficher tous les cas possibles
[Access][VBA] Construction d'un lien HTML fonction de plusieurs champs[Access] Affichage des nombres dans les reports Access [Résolu]
pb de requete SQL (enfin je crois) dans access [résolu][systeme de paiement PHP] Es ce possible et à quel prix?
est ce possible?Connexion à une base Access
Plus de sujets relatifs à : [ACCESS] Est il possible de faire un TRUNCATE ?


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