Copier et créer enregistrements dans table Access

Copier et créer enregistrements dans table Access - SQL/NoSQL - Programmation

Marsh Posté le 24-03-2006 à 11:30:20    

CBonjour, je ne suis pas un spécialiste des base de données mais je souhaite sous Access.
Créer et ajouter dans une table nommée Gamme des enregistrements.
 
Cette table est constituée comme ci dessous
 
Nom du Champ Type de Données
Compteur Numéro Auto
Référence Text
N° Phase Numerique
Opération Text
Description Mémo
Illustration Objet OLE
 
Dans cette table le champ référence est considéré comme une clé  
Ce que je souhaite faire est de copier tous les enregistrements dont le champ référence est par exemple x en autant d’enregistrements dont le champ référence sera y.
 
Merci pour votre aide
 
sgai2@yahoo.fr
 
Copier et créer enregistrements dans table Access

Reply

Marsh Posté le 24-03-2006 à 11:30:20   

Reply

Marsh Posté le 24-03-2006 à 12:17:11    

Je ne comprends pas bien si la difficulté réside dans la recopie des enregistrements ou dans le changement de la référence. Je ne vois pas non plus très bien si la recopie doit se faire dans une table externe ou dans la même table. Donc, je vais donner deux solutions :
 
1.Copier dans une table externe :
 
Tout d'abord, créer la nouvelle table. Pour cela, on peut faire un copier/coller de la table d'origine, et Access demande un nouveau nom qu'il faut donner (par exemple gamme2).
Puis, faire une requête qui combine Insert et Select ensemble.

INSERT INTO gamme2
SELECT T1.Compteur, T1.Référence, T1.[N° Phase],
       T1.Opération, T1. Description, T1.Illustration
FROM gamme T1
WHERE T1.Référence="x";


 
2. Copier dans la même table en changeant le numéro de référence :
 
Faire une requête qui combine Insert et Select ensemble.

INSERT INTO gamme
SELECT T1.Compteur AS Compteur, "y" AS Référence,
       T1.[N° Phase] AS "N° Phase",
       T1.Opération AS Opération, T1.Description AS Description,
       T1.Illustration AS Illustration
FROM gamme T1
WHERE T1.Référence="x";


J'ai testé ces deux solutions sur des tables simples et ça marche. La seule minuscule incertitude que j'ai, concerne le champ "N° Phase", parce que je ne prends jamais le risque d'avoir des soucis avec les noms qui contiennent des espaces ou des caractères inhabituels tels que le petit rond "°". J'avais eu un message d'erreur de référence circulaire quand je n'avais pas utilisé d'alias pour la table, donc j'ai rajouté "T1". Puis, pour le deuxième exemple, j'avais eu un message d'erreur car il fallait mettre des alias pour les noms des champs, ce que j'ai donc fait.

Reply

Marsh Posté le 24-03-2006 à 14:37:19    

C'est la solution 2 que j'attendais merci.
Par contre il faut dans la requete supprimée le champ concernant le compteur ainsi il s'incremente automatiquement et il n'y a plus de doublons.
Reste une question, ou trouve-t-on la gestion et probleme de violation clé verrou et validation.

Reply

Marsh Posté le 24-03-2006 à 16:00:51    

Oui, c'est vrai pour le compteur, excuse-moi.
 

gestion et problème de violation clé verrou et validation

Qu'entends-tu par là ?
A l'origine, Access a été créé pour une utilisation sur un seul poste. Microsoft vend SQL Serveur pour des besoins multi-ultilisateurs avec tous les systèmes de verrous et de transactions habituels.
Par contre, pour Access, sauf erreur, je crois qu'il n'existe pas grand chose sur la gestion des verrous, mais on devrait pouvoir s'en sortir avec des sémaphores déclarés dans un module global pour l'application.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed