none
[Access 10] Transfert de données d'un formulaire à un autre formulaire RRS feed

  • Question

  • Bonjour,

    Je suis débutant sous Access et j'aimerais faire la chose suivante :

    Je pars d'un formulaire Accueil où l'utilisateur peut choisir à partir d'un ComboBox un projet. En validant ce choix (avec un bouton) on arrive à un formulaire Projet où j'aimerais connaitre le projet choisi dans la ComboBox par l'utilisateur pour pouvoir effectuer des requêtes sur les tables correspondantes à ce projet.

    En gros j'aimerais transférer des variables d'un formulaire à un autre (car selon le projet je ne requêterai pas les mêmes tables..)

    Est ce clair ?

    Merci en tout cas de vos aides !

    Pascal
    mardi 12 avril 2011 13:16

Toutes les réponses

  • Bonjour,

    Il y a deux cas de figure possible dans votre situation...

    1. Vous pouvez ouvrir le second formulaire avec une condition WHERE qui prendra la valeur de l'élément sélectionné dans le combobox :

      DoCmd.OpenForm "", , , "[IDProjet]=" & Me!MaCombobox, acFormEdit, acDialog
      
    2. Vous pouvez aussi exploiter l'argument OpenArgs de la méthode OpenForm :
      DoCmd.OpenForm "", , , , acFormEdit, acDialog, Me!MaCombobox
      
      
      Dans ce cas, il vous appartient de faire en sorte que la propriété RecordSource de votre formulaire soit conséquente de l'argument passé, soit par exemple :
    Private Sub Form_Load()
    Const REQUETE                     As String = "SELECT * FROM Tbl_Projets"
    
    Dim vArg                        As Variant
      'Affecte l'argument à la variable
      vArg = Me.OpenArgs
      'Vérifie la nullité
      If IsNull(vArg) Then
        'Si null alors on ouvre avec tous les projets
        Me.RecordSource = REQUETE
      Else
        'Sinon, on ouvre avec le projet sélectionné en amont
        Me.RecordSource = REQUETE & " WHERE IDProjet = " & vArg
      End If
    End Sub
    

    Argy
    mardi 12 avril 2011 14:16
    Modérateur
  • Merci mais ce n'est pas exactement ce que je veux faire :

    Admettons, j'ai des tables liées à des projets :

    Prix_ProjetA

    Prix_ProjetB

    Magasin_ProjetA

    Magasin_ProjetB

     

    Ensuite je veux un formulaire ou l'on va pouvoir cliquer sur ProjetA ou ProjetB.

    Ce choix ouvrirait un second formulaire où des requêtes seraient disponibles (via des boutons ?) et iraient chercher les infos dans les bonnes tables... A si j'ai choisi Projet A, B si Projet B, etc...

    Ok ?

    Peut être que mon archi est foireuse et pas adaptée à Access...

    Pascal

    mardi 12 avril 2011 14:42
  • Bonjour pcayrol

    Déjà, il me semble voir un problème de conception de la base :
    Vous ne devez (pouvez) pas faire une table par projet et même élément de projet.
    Vous devez rationaliser avec une table Tbl_Projets qui contiendra vos projets, et fort probablement une ou +sieurs autres tables avec les détails.

    un peu de lecture :
    http://mhubiche.developpez.com/Access/cours/bases/
    http://office.microsoft.com/fr-fr/access-help/concepts-de-base-sur-la-conception-d-une-base-de-donnees-HA001224247.aspx

    Cdt,
    Blaise

    <pcayrol> a écrit dans le message de news: 727332b9-e871-43f3-b39b-6ed368df69e4@communitybridge.codeplex.com...

    Merci mais ce n'est pas exactement ce que je veux faire :

    Admettons, j'ai des tables liées à des projets :

    Prix_ProjetA

    Prix_ProjetB

    Magasin_ProjetA

    Magasin_ProjetB



    Ensuite je veux un formulaire ou l'on va pouvoir cliquer sur ProjetA ou ProjetB.

    Ce choix ouvrirait un second formulaire où des requêtes seraient disponibles (via des boutons ?) et iraient chercher les infos dans les bonnes tables... A si j'ai choisi Projet A, B si Projet B, etc...

    Ok ?

    Peut être que mon archi est foireuse et pas adaptée à Access...

    Pascal

    mardi 12 avril 2011 15:16
  • C'est bien ce qu'il me semblait !

    Merci.

    mercredi 13 avril 2011 07:59