Open form access from ctrl onglet add ou edit

thiefer -  
 thiefer -
Bonjour,

désolé pour le titre en gb, il ne rentrait pas en français :-(((

Je souhaite depuis un controle onglet effectuer l'ouverture d'un même formulaire :
une fois en mode ajout :
(DoCmd.OpenForm "F_gl", , , , acFormAdd)
l'autre fois en mode édition sur double click d'un champ liste de résultat :
(DoCmd.OpenForm "F_gl", acNormal)

Ma difficulté, ces codes n'apparaissent pas en événements puisque l'ouverture du mon formulaire est activé depuis le contrôle onglet, ou alors, en bon débutant qui se respecte, je n'ai simplement pas réussi à trouver ces lignes de codes.

Quelqu'un saurait m'indiquer de quelle façon m'y prendre svp ?

Mille mercis par avance

cdlt

TF
Configuration: Windows XP
Firefox 3.0.1

1 réponse

  1. thiefer
     
    Up ! Up ! Up !

    Bonjour à tous et désolé pour ce up mais je sèche vraiment complètement sur cette question.
    Voici donc en plus détaillé la majeure partie du code que j'utilise, mon problème restant d'ouvrir un formulaire unique une fois en allowadd, l'autre fois en allowedit.

    Je dispose d'un formulaire f_principal composé d'un contrôle à 5 onglets dont voici un extrait du code traitement on_change :

    Private Sub CtlTab0_Change()
    ' On récupère l'indice de l'onglet actif
    Select Case Me.CtlTab0
    Case 0 ' Rechercher
    Me.lbl_No_Onglet.Caption = Me.CtlTab0
    ...
    Case 2 ' Ajouter un enregistrement
    Me.lbl_No_Onglet.Caption = Me.CtlTab0
    Me.AllowAdditions = True
    Me.AllowDeletions = False
    Me.AllowEdits = False
    Case 3 ' Modifier, Supprimer
    Me.lbl_No_Onglet.Caption = Me.CtlTab0
    Me.AllowAdditions = False
    Me.AllowDeletions = True
    Me.AllowEdits = True
    ...
    End Select
    End Sub


    Ce formulaire fait donc appel à un formulaire de gestion de mes tables principale (f_gl) et secondaire (cette dernière en sf_competitions)

    Les propriétés de f_gl sont définies comme suit :

    Filtrage autorisé = Oui
    Modif autorisée = Oui
    Suppr autorisée = Oui
    Ajout autorisé = Oui
    Entrée données = Oui


    J'ai fait le test avec les trois types de recordset :
    - les deux en feuille de réponse dynamique font que en case 2 & 3, j'arrive sur un formulaire ouvert en saisie (1 seul enregistrement vide)
    - le mode "instantané" affiche mon formulaire en case 2 & 3 en mode visu (487 enregistrement consultables mais non modifiables)

    Je ne sais plus par quel bout prendre le problème !!!

    Ce que je cherche à faire :
    a ) en Case 0, je suis sur mon formulaire de recherche
    J'ai une zone de liste lst_resultats pour tous les enregistrements que j'ai sélectionné
    En double cliquant sur l'un des enregistrements, je souhaite pouvoir y accéder dans l'onglet Case 3 : formulaire f_gl en mode Modification / Suppression

    Mon code actuel que je n'arrive pas à adapter ouvre une fenêtre popup par DoCmd.OpenForm en me positionnant par strCriteria :

    Private Sub lst_resultat_DblClick(Cancel As Integer)

    Dim rst As Recordset
    Dim strCriteria As String

    Set rst = CurrentDb.OpenRecordset("tbl_TempLstFrm", dbOpenSnapshot)
    ' recherche les informations de la table
    rst.FindFirst ("Table='" & Me.cbo_table & "'")

    If rst.NoMatch Then ' non trouvé
    MsgBox "Cette table ne possède pas de formulaire. Veuillez renseigner la table des paramètres.", _
    vbCritical + vbOKOnly, "formulaire de Recherche"
    Exit Sub
    Else ' trouvé
    If lf_GetTypeField(Me.cbo_table, rst.Fields("Champ")) = dbText Then 'la clef est Texte
    strCriteria = rst.Fields("Champ") & "='" & Me.lst_resultat & "'"
    Else 'la clef est numérique
    strCriteria = rst.Fields("Champ") & "=" & Me.lst_resultat
    End If
    DoCmd.OpenForm rst.Fields("Formulaire"), acNormal, , strCriteria, , acDialog
    End If

    End Sub


    b ) Lorsque je clique sur l'onglet Case 2, comment ouvrir f_gl en mode Ajout ?

    J'espère avoir été suffisamment précis dans mes explications,
    Merci par avance de votre aide

    TF
    0