IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Recordset, impact sur les clés autonum lors de jointures ?


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Recordset, impact sur les clés autonum lors de jointures ?
    Bonjour,

    Je me posais la question de l'impact d'une modification (ajout de nouvelles valeurs) dans un recordset basé sur une jointure entre 2 tables liées par une relation 1->n ?

    Je voudrais générer dans une table une suite d'enregistrements dont seul un des paramètres varierait: dans mon cas il s'agirait du numéro de différentes pièces (par pièces, comprendre "chambres, bureaux").

    J'ai des objets identiques qui vont se trouver dans pas mal de pièces: la seule différence sera le numéro de la pièce.

    La table Localisation a des champs du type: [clé Localisation], [numéro pièce], [Caractéristiques]....

    Plutôt que de demander à l'utilisateur de rentrer 30 fois d'affilée les mêmes données rattachées à une pièce, je voudrais récupérer les données et les recopier en changeant simplement le champ numéro pièce (en l'incrémentant entre 2 bornes rentrées par l'utilisateur).

    Clé 12, Pièce: 320 ; Caractéristiques: XXXX
    Clé 13, Pièce: 321 ; Caractéristiques: XXXX
    Clé 14, Pièce: 322 ; Caractéristiques: XXXX
    Clé 15, Pièce: 323 ; Caractéristiques: XXXX
    Clé 16, Pièce: 324 ; Caractéristiques: XXXX
    .
    .
    .
    Clé 45, Pièce: 353 ; Caractéristiques: XXXX

    Je pense que l'usage d'un recordset s'impose (j'ai besoin d'une requête pour exécuter une jointure entre 2 tables et un filtre parmi les données récoltées), mais quel sera l'impact d'un ajout d'une nouvelle entrée sur la clé autonum générée par Access ?

    Est-ce qu'Access va s'y retrouver et incrémenter automatiquement la clé ?

    Merci.

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonjour !

    Je ne comprends pas très bien ta question...
    Peux-tu nous donner plus d'indications quant au contexte (formulaire, sous-form, liste déroulante, etc... )

    Bernard.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Alors...




    Les clés sont des clés autoincrémentées (type autonum) gérées par Access.


    J'ai une table de jonction entre un objet qui peut être dans différentes localisation, et inversement dans une même localisation je peux avoir plusieurs objets.

    D'où une relation n <-> n entre les objets et les localisations.


    "Dans mon "problème", je vais m'intéresser au cas d'un objet donné, donc le numéro de l'objet sera fixé une fois pour toute dans la table de jonction lors de la gestion de mon cas.


    Néanmoins... pour un objet il y aura bien une infinité de localisation: je vais donc réaliser une requête avec jointure portant sur les tables de jonction ET de localisation avec pour critère SQL (Where) la valeur de la clé objet fixée (dans la table de jonction).

    Cette requête sera "la base" de mon recordset.

    Je voudrais insérer dans le recordset ainsi créé de nouvelles valeurs, qui seront quasi-identiques sur tous les champs, à ceci près que le numéro de la pièce (champ "pièce" dans ma table de localisation) sera différent.

    Par exemple, imaginez qu'à un étage donné, vous ayez la même lampe partout dans chaque chambre: vous avez bien un même objet, avec des caractéristiques identiques, mais qu'on retrouve dans divers endroits.

    Comme ce sont des pièces/ bureaux/ chambres, il y a de fortes chances pour qu'à un étage donné, les numéros des chambres se suivent.

    L'idée est donc de demander à l'utilisateur de renseigner les champs de la table localisation (l'objet étant connu, fixé une fois pour toute) puis de donner le numéro de la pièce de départ et le numéro de la pièce "terminale".

    Ensuite, je veux recopier strictement les mêmes données dans de nouveaux enregistrements du recordset en changeant simplement le numéro des pièces (en incrémentant du départ à l'arrivée).

    Je vais donc augmenter la taille de mon recordset... par contre quel sera l'impact sur la clé autonum (et sa petite soeur figurant dans la table de jonction...) de la table dont est issu mon recordset ? Est-ce que Access va incrémenter de lui-même cette clé autonum ? Est-ce que chaque valeur sera aussi recopiée dans la table de jonction ?

    J'espère être un peu plus clair...

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Ma question est stupide ou sans objet avec un recordset ?

  5. #5
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Ben, si j'ai tout bien compris, moi je procéderais différemment :

    Je créerais simplement - dans mon formulaire - un bouton "Dupliquer" puis je modifierais les quelques données nécessaires. (Tu trouves la conception de ce bouton en activant simplement l'assistant)

    Ainsi, pas de problème de numérotation automatique et tu peux répéter à l'envi le nombre de réplique de n'importe quelle pièce. L'avantage est qu'ainsi, chaque enregistrement peut devenir un "modèle"...

    ... si j'ai bien compris
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Je vais voir..

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/01/2008, 07h35
  2. Paginate avec des conditions sur les clés etrangères.
    Par CeDRiC08 dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 03/07/2007, 09h49
  3. Questions sur les clés de registre
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 30/04/2005, 19h12
  4. [Hashtable] Question sur les clés
    Par chabannou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 24/04/2005, 18h40
  5. [C#] Probleme sur les clés primaires composites
    Par stardeus dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/02/2005, 23h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo