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

IHM Discussion :

Problème de passage entre deux formulaires


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut Problème de passage entre deux formulaires
    Bonjour,
    Voici mon problème :
    J'ai deux pages : Accueil et SuiviDossier

    Dans la page d'Accueil :
    Lorsque je clique sur la liste de type de dossier, il me met à jour le Numéro de dossier puis, avec le bouton Valider, il m'envoye vers la page de Suivi de Dossier ou je voudrais que les informations soit en lien avec le numéro de dossier.

    Voici mes codes pour cette page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Private Sub TypeDossier_Change()
         Me.NumDossier.RowSource = "SELECT NumDossier FROM Dossier WHERE TypeDossier ='" & TypeDossier.Value & "'"
    End Sub
     
    Private Sub NumDossier_AfterUpdate()
    'Code pour mettre à jour la liste des numéros de dossiers en fonction du type
        Me.Filter = "NumDossier ='" & Me!NumDossier & "'"
        Me.FilterOn = True
    End Sub
     
    Private Sub CmdValider_Click()
        requete = "SELECT VueSuiviDossier.*"
        requete = requete + " FROM VueSuiviDossier, VueAccueil"
        requete = requete + " WHERE VueAccueil.NumDossier = VueSuiviDossier.NumDossier"
        requete = requete + " AND VueSuiviDossier.NumDossier = '" & NumDossier.Value & "'"
        'requete = requete + " AND VueSuiviDossier.";"
     
        'DoCmd.Close
        Application.DoCmd.OpenForm "FormSuividossier", , requete, , , , Me.NumDossier
    [...]
    End Sub
    Puis, Dans la page de Suivi de Dossier:
    Tout les champs devrait être en lien avec le Numéro de Dossier de la page d'Accueil, or il n'y a que le champ Numéro de dossier qui est en lien.

    Voici mes codes pour cette page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Form_Load()
        If IsNull(Me.OpenArgs) Then
            'rien à faire
            Else
                Me.[NumDossier] = CLng(Me.OpenArgs)
        End If
    End Sub
    Voila, en espérant avoir clairement exposé mon problème et que vous puissiez m'aidez car ça commence à m'énervé, ça fait plusieurs jours de recherche dans les forums, les faq et les tuto ...

  2. #2
    Membre averti
    Avatar de The_Super_Steph
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 445
    Points : 359
    Points
    359
    Par défaut
    Bonjour,

    Tu devrais aller voir ceci :

    http://access.developpez.com/faq/?page=TAZdt#RenvVal

    Peut-être cela peut-il t'aider (pour afficher des valeurs dans une zone en fonction d'une autre).

    Espérant que cela t'aidera,

    Steph
    Blonde, d'origine belge et gauchère... et alors !
    "N'est stupide que la stupidité"

    Quand il n'y a pas de solution, c'est qu'il n'y a pas de problème

    (\ _ /)
    (='.'=)
    Voici Lapinou, le lapin crétin-Rasta. Aidez le à conquérir le monde
    (")-(") en le reproduisant !

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    Merci, j'ai essayé mais cela marche pour une textbox mais pas pour deux...

    Voici ma requete SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT NumDossier, NomDmd, E_NumAgent
    FROM dbo.VueSuiviDossier
    GROUP BY NumDossier, NomDmd, E_NumAgent
    Et mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Lst_NumDossier_AfterUpdate()
        Txt_NomDmd = Lst_NumDossier.Column(1) 
        Txt_E_NumAgent = Lst_NumDossier.Column(2)
    End Sub

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Load()
        If IsNull(Me.OpenArgs) Then
            'rien à faire
            Else
                Me.[NumDossier] = CLng(Me.OpenArgs)
        End If
    End Sub
    Ce code modifie la valeur du champs Numdossier de l'enregistrement affiché, il ne fait pas de sélection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        requete = "SELECT VueSuiviDossier.*"
        requete = requete + " FROM VueSuiviDossier, VueAccueil"
        requete = requete + " WHERE VueAccueil.NumDossier = VueSuiviDossier.NumDossier"
        requete = requete + " AND VueSuiviDossier.NumDossier = '" & NumDossier.Value & "'"
    Les vues source de ta requete filtre ne sont pas liées (pas de join ni même de clause WHERE...) normal?

    Pourquoi utiliser un filtre? une condition Where devrait suffire.
    QQ chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Docmd.openForm "FormSuividossier", , ,"NumDossier='" " & NumDossier.Value & "'", , , Me.NumDossier

    Merci, j'ai essayé mais cela marche pour une textbox mais pas pour deux...
    Je ne vois pas le rapport avec le premier message...
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par mout1234
    Les vues source de ta requete filtre ne sont pas liées (pas de join ni même de clause WHERE...) normal?
    Ma vue est déjà créé et liée à mes tables.

    Citation Envoyé par mout1234
    Pourquoi utiliser un filtre? une condition Where devrait suffire.
    Je n'utilise pas de filtre.

    Citation Envoyé par mout1234
    QQ chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.openForm "FormSuividossier", , ,"NumDossier='" " & NumDossier.Value & "'", , , Me.NumDossier
    Reviens à ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application.DoCmd.OpenForm "FormSuividossier", , requete, , , , Me.NumDossier
    End Sub

    Citation Envoyé par mout1234
    Je ne vois pas le rapport avec le premier message...
    Cela concernait le tuto que m'avais envoyé The_Super_Steph.

  6. #6
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par the_tiger85
    Ma vue est déjà créé et liée à mes tables.
    Je ne parlais de "lien" entre la vue et les tables mais de relations type INNER JOIN entre les sources de ta requête ... mais je n'avais pas repéré ta clause WHERE.


    Citation Envoyé par the_tiger85
    Je n'utilise pas de filtre.
    Si! L'argument utilisé dans ton OpenForm est une forme de filtre.


    Citation Envoyé par the_tiger85
    Reviens à ce que j'ai fait :
    Non, regardes bien le nombre de virgules dans l'appel de OpenForm, ce n'est pas le même argument.
    l'argument filtre diffère de celui de la clause Where que je t'ai proposé d'utiliser.
    Avec l'argument filtre, il te faut définir une instruction SELECT complète interprétable comme filtre à appliquer au formulaire ouvert.
    Avec l'argument condition Where, tu ne définis qu'une clause where appliquée à la source existante du formulaire à ouvrir.
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par mout1234
    Non, regardes bien le nombre de virgules dans l'appel de OpenForm, ce n'est pas le même argument.
    l'argument filtre diffère de celui de la clause Where que je t'ai proposé d'utiliser.
    Oui, le code change mais cela fait la même chose au niveau de mes champs...

    Citation Envoyé par mout1234
    Avec l'argument filtre, il te faut définir une instruction SELECT complète interprétable comme filtre à appliquer au formulaire ouvert.
    Avec l'argument condition Where, tu ne définis qu'une clause where appliquée à la source existante du formulaire à ouvrir.
    Je n'ai pas tout compris... J'ai un peux de mal en vba.

  8. #8
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Autrement dit, au lieu de faire comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CmdValider_Click()
        requete = "SELECT VueSuiviDossier.*"
        requete = requete + " FROM VueSuiviDossier, VueAccueil"
        requete = requete + " WHERE VueAccueil.NumDossier = VueSuiviDossier.NumDossier"
        requete = requete + " AND VueSuiviDossier.NumDossier = '" & NumDossier.Value & "'"
        'requete = requete + " AND VueSuiviDossier.";"
     
        'DoCmd.Close
        Application.DoCmd.OpenForm "FormSuividossier", , requete, , , , Me.NumDossier
    [...]
    End Sub
    Tu fais seulement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.openForm "FormSuividossier", , ,"NumDossier='" & NumDossier.Value & "'"
    ton formulaire FormSuiviDossier ayant pour source la requête
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT VueSuiviDossier.*
    FROM VueSuiviDossier , VueAccueil
    WHERE VueAccueil.NumDossier = VueSuiviDossier.NumDossier

    voire de préférence
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT VueSuiviDossier.*
    FROM VueSuiviDossier INNER JOIN VueAccueil
    ON VueAccueil.NumDossier = VueSuiviDossier.NumDossier
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Intégratrice Web
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Intégratrice Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 34
    Points
    34
    Par défaut
    Bonjour,
    Maintenant cela marche, de plus, j'ai créé mon bouton valider en utilisant l'assistant et j'ai mis la "fonction" : Ouvrir le formulaire et trouver les informations spécifiques à afficher, puis j'ai liée mes deux champs NumDossier de mon formulaire d'accueil et celui de Suivi de Dossier.

    Voici le code de mon bouton valider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        stDocName = "FormSuiviDossier"
        stLinkCriteria = "[NumDossier]=" & Me![NumDossier]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    Et celui du "Form_Load" du formulaire SuiviDossier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If IsNull(Me.OpenArgs) Then
            'rien à faire
            Else
                Me.NumDossier = CLng(Me.OpenArgs)
        End If
    Voila !! Merci pour tout pour votre aide !!

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

Discussions similaires

  1. [MySQL] Passage d'info entre deux formulaires
    Par megapacman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/05/2006, 14h52
  2. Passage de parametre entre deux formulaires
    Par Rcanada dans le forum Access
    Réponses: 3
    Dernier message: 28/04/2006, 11h05
  3. Problème de compatibilité entre deux scripts
    Par frutix dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2006, 14h24
  4. [MySQL] Problème transfert donnees entre 2 formulaires php.
    Par pgil dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/01/2006, 15h00
  5. reprendre un enchainement de code entre deux formulaires.
    Par scully2501 dans le forum Access
    Réponses: 2
    Dernier message: 05/10/2005, 16h11

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