1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
Private Sub BTNSRC_Click()
Dim MDBG As Boolean
Dim answer As Integer
' non pertinent : le bouton SRC n'est affiché qu'en mode Debug
' la récupération du champ MODEDBGm donnera donc toujours la meme valeur
' a savoir vrai
' If IsNull(Me![MODEDBGm]) Then Me![MODEDBGm] = False 'initialisation s'il est vide
' MDBG = Me![MODEDBGm]
' ces deux instructions sont remplacées par une question posée via une MsgBox
'
answer = MsgBox("Afficher la requete source en mode verveux ?", vbYesNo + vbDefaultButton2, "[SRC] Verbose ?")
If answer = vbYes Then
MDBG = True
Else
MDBG = False
End If
If MDBG Then MsgBox " Sub BTNSRC_Click() ", vbExclamation, "procédure évènementielle"
FORMSRC Me, MDBG
End Sub
Public Sub FORMSRC(ByRef frm As Form, MDBG As Boolean)
'Affiche le source de la requete associée à ce formulaire
' Me.Calcule_Independent_NomForm = Forms(Me.CurrentView).Name
Dim txtmsg As String
Dim ListForm As String
Dim NomFormCurrent As String
Dim SRCFormCurrent As String
Dim TypouvertureFormCurrent As Integer
If MDBG Then MsgBox " Sub FORMSRC(ByRef frm As Form) ", vbExclamation, "procédure"
If MDBG Then MsgBox " formulaire transmis : frm.name " & frm.Name, vbOKOnly, "procédure"
'Pour lister les formulaires ouverts en mode formulaire (CurrentView=1; 0 ouvert en création, 2 ouvert en feuille de données)
For Each MonForm In Application.Forms
If MonForm.CurrentView = 1 Then
' si le formulaire est ouvert en mode formulaire
i = i + 1
If i = 1 Then
ListForm = MonForm.Name
Else
ListForm = ListForm & "; " & MonForm.Name
End If
If MonForm.Name = frm.Name Then 'Donc là je ne teste plus Currentview qui n'a rien à voir avec ce que je cherchais mais je teste par son nom
' si le formulaire de la collection coresspond bien à celui ouvert dans lequel j'ai cliqué sur [SRC]
' on ne recupère que les propriété du formulaire ayant appelé cette procedure
NomFormCurrent = MonForm.Name
SRCFormCurrent = MonForm.RecordSource
TypouvertureFormCurrent = MonForm.CurrentView
End If
End If
Next
'syntaxe MsgBox (prompt, btn mode vbokonly, title,helpfile, context as vbmsgboxresult)
If MDBG Then MsgBox ListForm, , "ListForm ouvert en mode fenetre-formulaire"
If MDBG Then MsgBox (CStr(Me.CurrentView) & " versus " & CStr(frm.CurrentView)), vbOKOnly, "CStr(Me.CurrentView) versus CStr(frm.CurrentView)"
If MDBG Then
Debug.Print Me.Name
' aussi :
MsgBox Forms(Me.Name).RecordSource, vbOKOnly, "Forms(Me.Name).RecordSource"
End If
txtmsg = "Formulaire actif Nom : " & NomFormCurrent & Chr(13) & Chr(10)
txtmsg = txtmsg & "Type d'ouverture (0 dev, 1 fenetre, 2 tabulaire) : " & CStr(TypouvertureFormCurrent) & Chr(13) & Chr(10)
txtmsg = txtmsg & Chr(13) & Chr(10)
txtmsg = txtmsg & "DATASOURCE" & Chr(13) & Chr(10)
txtmsg = txtmsg & "==========" & Chr(13) & Chr(10)
txtmsg = txtmsg & SRCFormCurrent
MsgBox txtmsg, vbInformation, NomFormCurrent & " => DATASOURCE code requete associée"
End Sub |
Partager