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 :

Ouvrir un form sur double-click, suite


Sujet :

IHM

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut Ouvrir un form sur double-click, suite
    Bonjour,

    Je re-poste à nouveau suite au rollback.
    J'avais un souci, celui de faire en sorte que, au Dbl-clk sur une ligne d'une feuille de données intégrée dans un onglet sous forme de sous formulaire, cela puisse m'ouvrir un autre onglet sur lequel il y a autre sous-forme, sur l'enregistrement désignée en amont par le dbl-click. J'ai été bcp aidée par psykomarteau

    Mais nous n'arrivions pas à comprendre pour quoi avec le code suivant, ça n'ouvrait pas sur l'enregistrement souhaité. On a essayé plusieurs syntaxes (la dernière étant celle ci-après) qui ne fonctionnent pas. Le bug est au niveau du rec.FindFirst :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_DblClick(Cancel As Integer)
    Form_HOME.ACTUALISATION.Visible = True
    Form_HOME.ACTUALISATION.SetFocus
    Form_HOME.ACCUEIL.Visible = False
     
    Dim rec As Recordset
    Set rec = Form_HOME.consult.Form.Recordset
    rec.FindFirst ("Réfdossier = " & CNum(Form_HOME.expiration.Réfdossier) & )
    Set rec = Nothing
    End Sub
    Juste avant, j'avais ce rec.FindFirst
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec.FindFirst ("Réfdossier = '" & Form_HOME.Aujourdhui.[Réfdossier] & "'")
    qui me basculait bien sur l'onglet en question mais pas sur l'enregistrement à consulter.

    Merci pour votre précieuse aide

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je pense que le bug pourrait venir du & devant la dernière parenthèse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec.FindFirst (Réfdossier = " & CNum(Form_HOME.expiration.Réfdossier)
    Je n'ai pas testé !
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    bah je vais le faire....

    Chose faite ! Il bug quand même en disant 'séparateur de liste ou)"

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut Jeannot45 (et oui encore moi ) et Nessie37... Nessie37 oui mais c'est bien toi... je t'avais pas reconnu tu as tellement de pages à ton actif d'habitude... :p

    y a un truc qui me chagrine dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec.FindFirst ("Réfdossier = " & CNum(Form_HOME.expiration.Réfdossier) & )
    ps: Jeannot45 l'idée y est mais avec Nessie37 il faut être rigoureux.
    CNum() ca doit servir à convertir en nombre? puis et & sert à concaténer s'il y a un numérique il le transforme en texte?
    alors question:
    .CNum c'est une fonction de ton cru? parce que mon access il connait pas: la conversion c'est Val()
    .Réfdossier c'est un texte ou un nombre?
    parceque si c'est un texte c'est plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec.FindFirst ("Réfdossier = '" & Form_HOME.expiration.Réfdossier & "'")
    sinon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec.FindFirst ("Réfdossier =" & Form_HOME.expiration.Réfdossier)
    cela dis je promets pas qu'il y a pas d'autres surprises...

  5. #5
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    LE CNum c'est un truc à moi et ca marche plutôt bien avec mon Access. Nessie peux me rappeler le code et l'intituler de l'erreur qui se produit, svp? Si je me souvient le probleme vient du fait qu'il ne reconnais pas Form_HOME.expiration.Réfdossier comme étant une valeur. Peux-tu essayer Form_HOME.expiration.Réfdossier.Value

    Cordialement,

    Désolé pour cette longue absence j'ai pris un peu de vacances.
    Etant philosophe, j'ai un problème pour chaque solution. [R. Zend]

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bonjour tout le monde !
    Longue absence, bcp de boulot par ailleurs. désolée. Non je ne poste pas pour ensuite déserter les forums. J'étais juste pas dans access mais dans mon corps de métier.
    D'ailleurs, à revenir 30 ans après sur mes bases, je me perds ...
    Vodiem, T pas gentil avec moi ! . A cause de toi je n'ose même plus poster.

    Psyko, faut que je me remette dedans pour te rappeler les codes !

    Vodiem, oui le refdossier est entièrement numérique

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bon alors....

    J'ai refait le code que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_DblClick(Cancel As Integer)
     
    Form_HOME.ACTUALISATION.Visible = True
    Form_HOME.ACTUALISATION.SetFocus
    Form_HOME.ACCUEIL.Visible = False
     
    Dim rec As Recordset
    Set rec = Form_HOME.ACTU.Form.Recordset
    rec.FindFirst ("Réfdossier =" & Form_HOME.expiree.Réfdossier.Value)
    Set rec = Nothing
     
    End Sub
    Bug sur réfdossier avec comme message d'erreur :
    Erreur de compilation
    Membre de méthode ou de données introuvable


    Je rappelle que ce que je souhaite faire c'est au dblclk d'une ligne (sur une feuille de données placée sur l'onglet HOME) que ça m'ouvre un autre onglet ACTUALISATION (sur lequel il y a un ss-form ACTU qui est un truc de consultation en fait), pil poil sur le refdossier sur lequel j'ai dblcliqué en HOME...

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    J'ai trouvéééééééééééééééééééé !!!!!!!!!!!!!!!!
    En tout cas je n'ai plus de bug
    Le bon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Form_DblClick(Cancel As Integer)
    ........
     
    Dim rec As Recordset
    Set rec = Form_HOME.ACTU.Form.Recordset
    rec.FindFirst ("Réfdossier =" & Form_HOME.expiree.Form.Réfdossier.Value)
    Set rec = Nothing
    
    End Sub
    J'avais oublié de mettre .form juste avant Réfdossier. DOnc quand je double clique, ça m'ouvre bien mon onglet sur l'enregistrement voulu.

    Mais ! (car il y a toujours un mais avec moi) PROBLEME :
    Même quand il n'y a pas de refdossier ça m'ouvre l'onglet sur un enregistrement

    une idée ?

  9. #9
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut psykodumarteau, Jeannot45 et Nessie37,

    Citation Envoyé par Nessie37
    Vodiem, T pas gentil avec moi ! . A cause de toi je n'ose même plus poster.
    tu sais bien que je te taquine et que j'apprécie ta persévérance.

    essaie avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim rec As Recordset
    Set rec = Form_HOME.ACTU.Form.Recordset
    rec.FindFirst ("Réfdossier =" & Form_HOME.expiree.Form.Réfdossier.Value)
    IF not rec.NoMatch THEN
        Form_HOME.ACTUALISATION.Visible = True
        Form_HOME.ACTUALISATION.SetFocus
        Form_HOME.ACCUEIL.Visible = False
    END IF
    Set rec = Nothing

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Salut Vodiem !

    Merci pour ce message
    D'ailleurs à ce propos, je tiens à m'excuser encore pour tout le travail que je vous donne !

    Pour revenir à ta proposition, je l'ai fait et ça ouvre quand même sur l'onglet avec une erreur 3077 'erreur de syntaxe (opérateur absent) dans l'expression'.

    Je suppose que je dois revoir la syntaxe comme c'est dit mais pour quoi ça l'ouvre quand même ?

  11. #11
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    ne sachant pas qu'elle est le control onglet, je ne saurais pas te dire en plus si c'est ce bout de code qui est en cause...

    le plus simple est que tu passes en débogage: point d'arrêt, exécution pas à pas pour voir où se trouve le code incriminé: ouverture onglet+erreur
    et poste celui ci si entre temps tu n'as pas trouvé la solus.

    Citation Envoyé par Nessie37
    D'ailleurs à ce propos, je tiens à m'excuser encore pour tout le travail que je vous donne !
    moi s'il y a le choisir, je préfère des remerciements aux excuses. ;p
    merci pour la compassion.

  12. #12
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Je bug sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rec.FindFirst ("Réfdossier =" & Form_HOME.expire.Form.Réfdossier.Value)
    J'avais oublié de le noter, désolée.

  13. #13
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    tu as une erreur lorsque "Form_HOME.expire.Form.Réfdossier.Value" n'a pas de valeur?
    il te faut donc simplement faire un test préalablement dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF Not IsNull(Form_HOME.expire.Form.Réfdossier.Value) THEN
    ... FindFirst ...
    END IF
    enfin, cela dépend du type de .Value: cela pourrait être aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF Form_HOME.expire.Form.Réfdossier.Value <>"" THEN

  14. #14
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bonjour et merci.

    Voici ce que j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Form_DblClick(Cancel As Integer)
    
    If Not IsNull(Form_HOME.expire.Form.Réfdossier.Value) Then
    Form_HOME.ACTUALISATION.Visible = True
    Form_HOME.ACTUALISATION.SetFocus
    Form_HOME.ACCUEIL.Visible = False
     
    Dim rec As Recordset
    Set rec = Form_HOME.ACTU.Form.Recordset
    rec.FindFirst ("Réfdossier =" & Form_HOME.expire.Form.Réfdossier.Value)
    
    End If
    Set rec = Nothing
    End Sub
    => Erreur 2427, expression sans paramètre, sur ce que j'ai mis en gras.
    Je ne suis même pas sûre de l'avoir mis au bon endroit.
    Mon ancien code était :

    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
    Private Sub Form_DblClick(Cancel As Integer)
     
    Form_HOME.ACTUALISATION.Visible = True
    Form_HOME.ACTUALISATION.SetFocus
    Form_HOME.ACCUEIL.Visible = False
     
    Dim rec As Recordset
    Set rec = Form_HOME.ACTU.Form.Recordset
    rec.FindFirst ("Réfdossier =" & Form_HOME.expire.Form.Réfdossier.Value)
     
    If Not rec.NoMatch Then
        Form_HOME.ACTUALISATION.Visible = True
        Form_HOME.ACTUALISATION.SetFocus
        Form_HOME.ACCUEIL.Visible = False
     
    End If
    Set rec = Nothing
    End Sub

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par vodiem Voir le message
    enfin, cela dépend du type de .Value: cela pourrait être aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF Form_HOME.expire.Form.Réfdossier.Value <>"" THEN
    Eh bien j'ai testé ça aussi car si je ne me trompe pas, c'est pour les cas où il n'y a rien du tout dans le champ concerné...

    Et toujours débogage.

    J'ai retourné le code ainsi :
    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
    Private Sub Form_DblClick(Cancel As Integer)
     
    If Form_HOME.expire.Form.Réfdossier.Value <> "" Then
    Form_HOME.ACTUALISATION.Visible = False
    Form_HOME.ACCUEIL.SetFocus
    Form_HOME.ACCUEIL.Visible = True
     
    Else
    Form_HOME.ACTUALISATION.Visible = True
    Form_HOME.ACTUALISATION.SetFocus
    Form_HOME.ACCUEIL.Visible = False
     
    Dim rec As Recordset
    Set rec = Form_HOME.ACTU.Form.Recordset
    rec.FindFirst ("Réfdossier =" & Form_HOME.expire.Form.Réfdossier.Value)
     
    End If
    Set rec = Nothing
    End Sub
    et toujours rien, même erreur 2427 sur la même ligne....

  16. #16
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    après avoir récupéré la base et avoir regardé rapidement ou cela se trouvait, je n'arrive pas à produire l'erreur.

    pourrais tu décrire la manipulation qui conduit à ces erreurs?

  17. #17
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Aucune ? Je double click juste sur le premier ss-form "expire" en HOME et j'ai erreur 2427. quand je fais le débogage (pas à pas etc...). Bah c'est toujours la même erreur, sur le même ligne...

  18. #18
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    tu as l'erreur car il n'y a pas d'enregistrement.
    il faut controler le compte d'enregistrement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_DblClick(Cancel As Integer)
    If Form_HOME.expire.Form.Recordset.RecordCount <> 0 Then
        Form_HOME.ACTUALISATION.Visible = True
        Form_HOME.ACTUALISATION.SetFocus
        Form_HOME.ACCUEIL.Visible = False
     
        Dim rec As Recordset
        Set rec = Form_HOME.ACTU.Form.Recordset
        rec.FindFirst ("Réfdossier =" & Form_HOME.expire.Form.Réfdossier.Value)
        Set rec = Nothing
    End If
    End Sub

  19. #19
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    T un mec génial (je dis ça mais je n'ai même pas encore essayé ! lol ! Je taquine )
    Je vais regarder ça rapidement et te tiens au courant.
    Je gère en ce moment mon cas d'ajustement automatique des ss-form.

    Merci encore Vodiem.

  20. #20
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Rien en se passe avec ce code.
    Dis moi, <> 0 veut dire quoi ?
    Car le truc c'est si pas de refdossier, donc rien, sinon ça va chercher dans l'onglet ACTUALISATION.
    Or, j'ai l'impression que là c'est l'inverse (tu me diras je me trompe sûrement)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/02/2014, 16h49
  2. [AC-2003] ouvrir une ligne spécifique d'un formulaire sur double click
    Par louismaz dans le forum IHM
    Réponses: 2
    Dernier message: 05/02/2010, 08h54
  3. Réponses: 11
    Dernier message: 10/01/2008, 20h27
  4. Ouvrir un Form sur la date d'aujourd'hui
    Par Technicien dans le forum Access
    Réponses: 3
    Dernier message: 04/07/2006, 19h17
  5. Question sur double click
    Par cjacquel dans le forum MFC
    Réponses: 2
    Dernier message: 30/04/2005, 11h53

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