A voir également:
- Open form access from ctrl onglet add ou edit
- Rouvrir onglet fermé - Guide
- Cool edit - Télécharger - Édition & Montage
- Open office francais - Télécharger - Suite bureautique
- Win setup from usb - Télécharger - Utilitaires
- Open core legacy patcher - Accueil - MacOS
1 réponse
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
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