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

Access Discussion :

Cas de champ à entrées multiples issues d'une même source [AC-2003]


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Cas de champ à entrées multiples issues d'une même source
    Bonjour,

    Dans le cadre de mon activité et sous AC2003, je dois créer une base de données regroupant des informations stratigraphiques. Le but dans ce cas est d’identifier l’interaction des couches entre elles (qui est au dessus de qui et inversement). Comme vous pourrez le voir sur l’image jointe, j’ai des cas d’entrées multiples dans mes futurs champs « Sur » et « Sous » et même des égalités partielles (cf. 1.15).
    J’aurai à rendre possible ce genre d’enregistrement depuis mon formulaire :

    N° us : 1.11 Sur : 1.12 Sous : 1.10
    1.16

    Nom : Exemple01s.jpg
Affichages : 148
Taille : 107,5 Ko

    J’ai cru comprendre que je devrai « dupliquer » ma table US qui deviendra une US_1 et lier les deux par une table de Jonction comprenant des champs Sur et Sous. A partir de là je ne vois hélas plus. Requêtes ? modules ? par SQL ?

    Tbl_Us ---- Jonc_Sur_Sous ---- Tbl_US_1

    Votre aide me serait précieuse.

    Merci d’avance,

    Arnox

  2. #2
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 465
    Points : 549
    Points
    549
    Par défaut
    Bonjour,

    Avoir deux données dans un même champ complique le problème.
    Vous est-il possible de séparer ces données ?
    Est-il imaginable d'avoir quelque chose comme ceci ?
    Pièce jointe 150209

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Si tu n'as que deux cas de valeur haut et bas, tu peux peut être faire des champs Sous1, Sous2...

    Si tu en as plus à rentrer, tu pourrais faire une table Sous et une table Sur qui serait reliée à ta table principale décrivant l'objet.
    Tu pourrais alors la remplir avec un formulaire classique et deux sous formulaire en mode tableur. Reste ton "Zone 1" à pas oublier.

    Après si c'est plus rare, tu peux peut-être faire des manipulations de chaines de caractère pour te ressortir ce que tu veux au bon endroit au bon moment, en rentrant tes infos dans le même champs.

    Ce serait bien que tu nous décrivent un peu plus ce que tu veux faire de tout ça.

    Tu arrives sur un terrain tu sondes et tu énumères les différentes couches que tu croisent dans une carotte ? Tu veux en faire quoi exactement de cette donnée relevée ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour et merci pour vos réponses,

    @ PipoWill : Je ne peux hélas pas créer de nouvelles entrées de cette façon. Chacun Us (unité stratigraphique) correspond à un enregistrement de terrain, relevé papier prise de vue et donnée géographique. De plus les formats de numéros US vont beaucoup varier d’un rapport de fouille à l’autre : 1XX, 1.X, comme ici etc.

    @fredjvet : L’exemple fourni ne comporte que deux entrées mais je vais être amené à en gérer bien plus (8 à 10 entrées, parfois plus). D’où l’importance du lien relationnel Sur/Sous pour pouvoir s’y retrouver.

    Je dois en fait élaborer une BDD dans laquelle j’intégrerai les données issues de rapports de fouilles (passés ou à venir). Avant de les intégrer à un SIG (en passant par un export excel).

    Chaque site comprend des sondages dans lesquels on relève des logs de la stratigraphie (superposition des US entre autre).

    Une de mes collègues m’a laissé entrevoir la solution que j’ai tenté de décrire plus haut.

    De ce que j’ai pu voir sur la fenêtre de relations : on a une Table
    « FicheUS » et sa copie «FicheUS_1 »
    ainsi qu’une table de jonction « Jonc_AntéPost » comportant les champs
    PostérieureA
    AntérieureA

    J’ai pu identifier également, 2 requêtes :
    Rec_Anté
    SELECT DISTINCT Jonc_AntéPost.AntérieureA AS US, RecupPost(AntérieureA) AS Sous
    FROM Jonc_AntéPost;
    Rec_Post
    SELECT DISTINCT Jonc_AntéPost.PostérieureA AS US, RecupAnté(PostérieureA) AS Sur
    FROM Jonc_AntéPost;
    Ainsi que 2 modules :
    RegroupAnté :
    Public Function RecupAnté(AntérieureA As String) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'Selectionne les projet du partcipant
    'chr(34) correspond a des guillemets pour encadrer le texte
    SQL = "SELECT PostérieureA FROM Jonc_AntéPost WHERE AntérieureA=" & AntérieureA
    Set res = CurrentDb.OpenRecordset(SQL)
    'Concatene les différents enregistrement
    While Not res.EOF
    RecupAnté = RecupAnté & res.Fields(0).Value & ";"
    res.MoveNext
    Wend
    'Enleve le dernier ;
    'libere la mémoire
    Set res = Nothing
    End Function
    RegroupPost :
    Public Function RecupPost(PostérieureA As String) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'Selectionne les projet du partcipant
    'chr(34) correspond a des guillemets pour encadrer le texte
    SQL = "SELECT AntérieureA FROM Jonc_AntéPost WHERE PostérieureA=" & PostérieureA
    Set res = CurrentDb.OpenRecordset(SQL)
    'Concatene les différents enregistrement
    While Not res.EOF
    RecupPost = RecupPost & res.Fields(0).Value & ";"
    res.MoveNext
    Wend
    'Enleve le dernier ;
    'libere la mémoire
    Set res = Nothing
    End Function
    De manière pratique la zone du formulaire de l’US relative à la strati est ainsi :
    Nom : Formul01.jpg
Affichages : 135
Taille : 88,9 Ko

    Cela semblait fonctionner dans l’ensemble. J’ai tenté de reproduire la chose mais j’avoue être novice en SQL.

  5. #5
    Candidat au Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Petit complément à mon explication alambiquée :Je cherche à réaliser une relation Plusieurs à Plusieurs sur la même table (ici la table Us).

  6. #6
    Candidat au Club
    Homme Profil pro
    Archéologue
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Archéologue
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    J'ai finalement réussi à résoudre mon problème.

    Notamment en appliquant le process de concaténation trouver sur le site.
    http://access.developpez.com/sources/?page=Requete

    Merci encore pour vos réponses et à bientôt,

    Arnox

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/05/2015, 12h31
  2. Différence entre 1 même champ sur 2 enregistrements d'une même table
    Par manulemalin dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 11/02/2008, 09h47
  3. Transfert entre 2 dd d'une même partition
    Par alafu dans le forum Windows XP
    Réponses: 9
    Dernier message: 10/07/2007, 19h23
  4. Réponses: 11
    Dernier message: 30/06/2007, 04h34
  5. Foreign key entre 2 schémas d'une même BD?
    Par mona dans le forum Oracle
    Réponses: 2
    Dernier message: 14/10/2005, 19h58

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