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 :

GoToRecord avec sous formulaire


Sujet :

VBA Access

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    752
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 752
    Points : 206
    Points
    206
    Par défaut GoToRecord avec sous formulaire
    Bonjour,
    Je voudrais exécuter un "Goto Record" avec un sous formulaire et je n'y arrive pas malgré de nombreux essais voilà les noms du formulaire et sous formulaire :
    Formulaire : F_Insert_Clot
    Sous formulaire : F_Insert_Historique
    Sur l'évènement d'une zone de texte du formulaire j'ai écris le code suivant :
    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
    
    
    
    Private Sub Texte67_AfterUpdate()
    Dim bd As DAO.Database
    Dim RecSet, rs As DAO.Recordset
    Dim var_DM As String
    Dim pos As Long
    Set bd = CurrentDb
    Set RecSet = bd.OpenRecordset("TAB_Insertions_Hist", dbOpenDynaset)
    Forms!f_Insert_Clot![F_Insert_Hist].SetFocus
    RecSet.FindFirst "N°Insertion = " & Val(Me.Texte67) & ""
    pos = RecSet.AbsolutePosition
    DoCmd.GoToRecord acDataForm, "Forms!f_Insert_Clot![F_Insert_Hist]", acGoTo, pos + 1
    End Sub
    et à l'exécution j'ai l'erreur formulaire "Forms!f_Insert_Clot![F_Insert_Hist]" pas ouvert.
    Si quelqu'un a une idée MERCI

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Je ferais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Compare Database
    Option Explicit
     
    Private Sub Texte67_AfterUpdate()
       Dim rs As DAO.Recordset
       Set rs = Me.ctnrF_Insert_Hist.Form.RecordsetClone
       rs.findfirst ("N°Insertion=" & Me.Texte67)
         Me.ctnrF_Insert_Hist.Form.Bookmark = rs.Bookmark
       rs.Close
       Set rs = Nothing
    End Sub
    P.-S.

    Lorsqu’un formulaire B est inclus dans un formulaire A, si A est ouvert, B ne l’est pas !
    Pour accéder aux données de B, il faut passer par le container de B
    Forms!A!ContainerDeB.Form.UnePropriétéDeB (par exemple son Recorset)
    ou
    Forms!A!ContainerDeB.Form!UnControleDeB
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    752
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 752
    Points : 206
    Points
    206
    Par défaut
    ***********************************************************
    Merci pour ton aide, j'ai essayé ton code ça marche mais c'est pas tout à fait ce que je voudrais faire car je voudrais ouvrir le sous formulaire en filtrant un seul enregistrement celui saisi dans la zone de texte "Texte67".
    J'ai adapté ton code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim pos As Long
    Dim rs As DAO.Recordset
       Set rs = Me.F_Insert_Hist.Form.RecordsetClone
       rs.FindFirst ("N°Insertion=" & Me.Texte67)
       pos = rs.Bookmark
         Me.F_Insert_Hist.Form.Bookmark = rs.Bookmark
         DoCmd.GoToRecord acDataForm, "Forms!F_Insert_Clot!F_Insert_Hist.Form.rs", acGoTo, pos
       rs.Close
       Set rs = Nothing
    et j'ai l'erreur "Forms!F_Insert_Clot!F_Insert_Hist.Form.rs" n'est pas ouvert .
    Qu'appellles tu "ContainerDeB" ?
    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    ce que je voudrais faire car je voudrais ouvrir le sous-formulaire en filtrant un seul enregistrement celui saisi dans la zone de texte "Texte67".
    J'ignore si c'est possible.

    Qu'appelles-tu "ContainerDeB" ?
    Le contrôle qui enveloppe le sous-formulaire


    Regarde mon exemple : l'enveloppe porte un nom différent de celui du sous-formulaire (par souci de clarté).

    J'ignore comment corriger la syntaxe fautive que tu proposes.

    Pourquoi veux-tu limiter à un seul enregistrement ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    752
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 752
    Points : 206
    Points
    206
    Par défaut
    [QUOTE=ClaudeLELOUP;8986990]Bonjour,



    J'ignore si c'est possible.



    ***************************************
    Si c'est possible je l'ai fais avec le formulaire principal et ça marche :

    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
     
    Private Sub Texte60_AfterUpdate()
    Dim bd As DAO.Database
    Dim RecSet, rs As DAO.Recordset
    Dim var_DM As String
    Dim pos As Long
    Set bd = CurrentDb
    Set RecSet = bd.OpenRecordset("TAB_Insertions", dbOpenDynaset)
    RecSet.FindFirst "N°Insertion = " & Val(Me.Texte60) & ""
    pos = RecSet.AbsolutePosition
    DoCmd.GoToRecord acDataForm, "F_Insert_Clot", acGoTo, pos + 1
    Texte35.Visible = True
    Texte6.Visible = True
    Texte27.Visible = True
    Texte11.Visible = True
    Étiquette37.Visible = True
    Étiquette8.Visible = True
    Modifiable64.Visible = True
    Modifiable64.SetFocus
    End Sub
    J'ai modifié le nom de l'enveloppe comme tu m'as expliqué mais toujours le même problème... (formulaire pas ouvert)
    Pourquoi je veux ouvrir que sur un enregistrement je trouve ça plus clair. Merci à toi

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    752
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 752
    Points : 206
    Points
    206
    Par défaut
    Finalement j'ai trouvé la solution je change le RecordSource du sous formulaire quand je saisie une valeur de n° Insertion dans la zone de texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Texte67_AfterUpdate()
    Me.F_Insert_Hist.Form.RecordSource = "Select * from Tab_Insertions_Hist where Tab_Insertions_Hist.N°Insertion = " & Val(Me.Texte67) & ""
    End Sub
    Et là ça marche il ne m'affiche que la valeur voulue.
    A + et merci pour ton aide

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 16/08/2006, 12h11
  2. [débutant] Pbl sur Etat avec sous formulaire
    Par william_58 dans le forum Access
    Réponses: 5
    Dernier message: 18/07/2006, 23h41
  3. Filtrage : lier comboBox avec sous formulaire
    Par sunvialley dans le forum Access
    Réponses: 7
    Dernier message: 04/05/2006, 17h31
  4. Mettre à jour un controle par dblclik avec sous-formulaire
    Par lagratteCchouette dans le forum Access
    Réponses: 10
    Dernier message: 19/04/2006, 20h47
  5. Réponses: 19
    Dernier message: 26/01/2006, 09h44

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