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 :

liaison de données - suite


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut Liaison de données
    Bonjour,
    J'ai un souci pour modifier un code afin d'affecter des observations à deux personnes différentes ; je m'explique :

    J'ai 3 tables :
    - Civilité avec Nom - prénom - adresse ...
    - Suivi avec date - Nom - suivi ...
    - Observation avec date observation ...

    j'ai un formulaire avec un sous formulaire pour la saisie
    Donc en résumé :
    dans le formulaire principal il y a la personne principale (Table civilité)
    Grace à une requète ajout je saisie dans mon sous formulaire des noms d'autres peronnes (table civilité) qui sont liés avec l'autonumber à la personne principale (table civilité).
    En cliquant sur la date du sous formulaire j'ouvre un formulaire qui me permets de saisir des observations (f_observation).
    Ces observations sont lièes à la personne principale par autonumber et à la personne "secondaire" (sous formulaire) par un id-client.

    Mon souci est que lorsque la personne "secondaire" devient la personne "principale" alors à l'inverse quand je clique sur la date j'aimerai qu'apparaisse l'observation saisie précédement.

    donc je voudrais visionner l'observation dans les deux cas de positionnement des personnes.

    Je n'y arrive pas car l'autonumber de ma table civilité est différent pour chaque personne.
    Voici mon code qui lie les observations aux deux personnes (formulaire et sous formulaire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub DATE_Click()
    Dim str As String
    Dim num As String
    Dim ID As String
    ID = Forms!f_abonne!auto_num
    num = Me.N°
    str = "SELECT T_Observation.* FROM T_observation WHERE T_observation.AUTO = " & num & " and T_observation.id_client = " & ID & ""
    DoCmd.OpenForm ("frm_observation")
    Forms!frm_observation.RecordSource = str
    Forms!frm_observation!ID = Me.N°
    End Sub
    Espérant avoir été assez claire
    Merci d'avance
    Mamanhou

  2. #2
    Membre éclairé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Par défaut
    J'ai lu trois fois ton message et ce n'est pas franchement clair dans ma tete.

    Mon souci est que lorsque la personne "secondaire" devient la personne "principale" alors à l'inverse quand je clique sur la date j'aimerai qu'apparaisse l'observation saisie précédement.
    En français, ça donne quoi ?

    En fait, tu ajoutes des personnes dans ta table civilité via ton sous-formulaire et chacune des personnes a un lien avec une autre personne de la table (des sortes de parrainage ?)

    Je n'y arrive pas car l'autonumber de ma table civilité est différent pour chaque personne.
    Oui, c'est le principe de l'autonumber, chaque numéro se doit d'etre différent.

    Ton pb si je le comprends bien, c'est de pouvoir extraire les enregistrements de ta table OBSERVATIONS pour lesquels le numero voulu est a la fois dans le champ AUTO et dans le champ ID ???

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut
    Désolé pour mes explications ... mais c'est pas trés facile ...
    voilà :

    Exemples :

    Monsieur X (autonumber : 001)
    Monsieur Y (autonumber : 002)

    Formulaire principal : Monsieur X
    Sous formulaire : 01/01/2007 - Monsieur Y
    En cliquant sur la date j'ouvre un autre formulaire dans lequel je saisie des observations qui sont relies à Monsieur Y (par id_client = autonumber : 002) et monsieur X par son autonomber : 001.

    Maintenant si j'inverse :

    Formulaire principal : Monsieur Y
    Sous formulaire : 01/01/2007 - Monsieur X
    En cliquant sur la date je voudrais qu'apparaissent les observations saisies dans le cas précédent.
    Mais l'autonumber dans le formulaire principal est 002 et id_client est 001.
    Tout est alors inversé ...
    Je ne sais pas comment faire, il faudrait peut-être que je créé un autre autonumber qui lierait mes deux personnes ???

    Est ce plus clair ?
    Merci pour tout
    Mamanhou

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    bonsoir,
    Citation Envoyé par MAMANHOU
    les observations saisies dans le cas précédent.
    il s'agit de quoi, tes personnes (avec civilité et tout) sont des patients ? ces quoi ces observations sur individu stp ?

    J'ai beau tourner les phrases dans tous les sens, je comprends po
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut
    Pour répondre à ta question,
    Je voudrais extraire les observations avec les deux cas
    Autonumber ou id_client = 001
    id_client ou Autonumber = 002
    001 et 002 étant des autonumbersde la table civilité

    Mamanhou

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    et les criteres where de ta requete marchent pas sur ce cas la ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut
    Non ce sont des vendeurs et des acheteurs ...
    Un acheteur (Monsieur X) achete à un vendeur (monsieur Y) : table (observation)
    Formulaire Monsieur X
    Sous formulaire Monsieur Y
    Autre formulaire : table
    Je voudrais que je sois vendeur ou acheteur savoir ce qui a été acheté ou vendu la table doit être liée à l'acheteur mais aussi au vendeur.

    vous comprenez ??
    Mamanhou

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut
    Le critère where ne marche que dans un sens comment le modifier pour marcher dans les deux sens (voir mon code dans le 1er message) ?
    Mamanhou

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut liaison de données - suite
    Bonjour,
    J'ai pensé que mon problème était résolu mais je viens de m'appercevoir d'un problème.
    Voir historique :
    http://www.developpez.net/forums/sho...d.php?t=379768

    J'ai modifier mon code comme me l'a proposé jpcheck et j'étais contente car toute marche bien jusqu'au moment ou j'ai voulu modifier une observation déjà saisie et là :
    Access ne reconnait plus l'id_client il me met l'autonumber à la place donc cette observation n'est plus liée ...

    Est ce que vous comprenez ?
    Merci pour votre aide
    Mamanhou

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut
    Bonjour,
    Pour mieux vous expliquer mon problème je vous joins un bout de ma bd

    Lorsque vous cliquez sur la date dans le sous formulaire vous voyez les observations notées.
    Lorsque vous cliquez sur le nom dans le sousformulaire, la personne s'affiche en haut dans le formulaire et à l'inverse la personne du haut s'affiche dans le sous formulaire.
    Les observations sont également visibles dans le cas inverse.
    Mais si vous modifier une observation elle n'apparait plus nulle part ...

    Merci d'avance pour votre aide
    Mamanhou

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut
    Bonjour,
    J'ai passé mes vacances sur ce problème sans résultat !!!

    Aprés réflexion, je pense que cela n'est pas possible ...

    Il faudrait peut être que j'essaye de lier mon id et mon id_client à l'autonumber de ma table observation ?
    Qu'en pensez-vous ?

    Merci d'avance
    Mamanhou

  12. #12
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Par défaut
    Je penses que tu as un problème de conception dès le départ.

    Par ailleur, l'idée de la modification sera de conserver l'id existant. Par contre je ne peux te dire comment car j'arrives pas à décompresser ton fichier.

    Qu'est ce que tu fais quand tu saisie une nouvelle observation? et que fais quand tu veux en modifier une?

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut
    Bonjour DMloup
    Je crois que tu as raison sur la conception de ma base ...

    C'est pourquoi je voulais changer mes liaisons, mais je ne sais pas faire.
    Mon modèle de base est trop gros pour le mettre en pièce jointe dans ce forum dis moi si je peux te l'envoyer sur une autre adresse .
    Merci encore
    Mamanhou

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 250
    Par défaut

    Si vous reprenez mon code du départ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub DATE_Click()
    Dim str As String
    Dim num As String
    Dim ID As String
    ID = Forms!f_abonne!auto_num
    num = Me.N°
    str = "SELECT T_Observation.* FROM T_observation WHERE T_observation.AUTO = " & num & " and T_observation.id_client = " & ID & ""
    DoCmd.OpenForm ("frm_observation")
    Forms!frm_observation.RecordSource = str
    Forms!frm_observation!ID = Me.N°
    End Sub
    1er cas : personne saisie dans le formulaire principal comme acheteur (autonumber = 001 : ID) et personne saisie dans le sous formulaire comme vendeur (autonumber = 002 : num)
    2ème cas : personne saisie dans le formulaire principal comme vendeur (autonumber = 002 : ID) et personne saisie dans le sous formulaire comme acheteur (autonumber = 001 : num)

    je saisie dans mon 3ème formulaire mes observations type 1er cas
    Quand je regarde mes observation dans le 2éme cas je n'ai plus rien

    Donc sur les conseils de jpcheck j'ai modifier mon code en rajoutant un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OR (T_observation.AUTO = " & ID & " and T_observation.id_client = " & num & ")
    Cela ne marche plus si je modifie le texte d'une observation.

    C'est pour cela que je pense que c'est l'autonumber de mes observations qui devrait être lié au enregistrement du sous formulaire et du formulaire principal .
    Qu'en pensez-vous ?
    Mamanhou

Discussions similaires

  1. l'expert Liaison de données XML
    Par LN(a) dans le forum Delphi
    Réponses: 1
    Dernier message: 01/12/2006, 18h15
  2. perte de données suite plantage
    Par patbeautifulday1 dans le forum Access
    Réponses: 1
    Dernier message: 21/02/2006, 16h12
  3. Réponses: 13
    Dernier message: 28/07/2005, 13h11
  4. Où est l'Expert Liaison de données XML [BCB6]
    Par Colloc dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/02/2005, 14h33
  5. Liaison de données - formulaires
    Par Bikey dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 21/10/2004, 15h05

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