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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Copier et créer enregistrements dans table Access

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Copier et créer enregistrements dans table Access

n°1331567
sgai2
Posté le 24-03-2006 à 11:30:20  profilanswer
 

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

mood
Publicité
Posté le 24-03-2006 à 11:30:20  profilanswer
 

n°1331629
olivthill
Posté le 24-03-2006 à 12:17:11  profilanswer
 

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.

n°1331748
sgai2
Posté le 24-03-2006 à 14:37:19  profilanswer
 

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.

n°1331836
olivthill
Posté le 24-03-2006 à 16:00:51  profilanswer
 

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.


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

  Copier et créer enregistrements dans table Access

 

Sujets relatifs
[ACCESS]Changer (Null interdit) sous Acces?[VBS] Créer un OU s'il n'éxiste pas (Active Directory)
[lazarus] créer un lien vers une page webCréer une méthode qui renvoie un vector à deux dimensions.
Date de dernière modification d'une table DB2boucle while: table de multiplication
[INFO/PHP] créer sa boutique e- avec un livreCréer un site web pour des entreprises ?
[PHP-MYSQL] Accès au bon champ d'une tablePrendre la main depuis un formulaire Access?
Plus de sujets relatifs à : Copier et créer enregistrements dans table Access


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