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 80 81 82 83 84 85 86
|
SuppressionForm "Grille"
DoCmd.CopyObject , "Grille", acForm, "FrmA"
DoCmd.OpenForm "Grille", acDesign, , , , acHidden
...
' iRst est le recordset qui renvoie les données à afficher.
' La partie droite des noms des champs du recordset indique le format du champ et s'il faut l'afficher ou nom.
Set mdl = Forms("Grille").Module
For Each Fl In iRst.Fields
'Créer le contrôle k
If InStr(iRst.Fields(k).Name, "INVISIBLE") <> 0 Or right(iRst.Fields(k).Name, 4) = "DATE" Then
iInt_Code = iInt_Code + 1
ReDim Preserve iStr_Code(iInt_Code)
iStr_Code(iInt_Code) = "redim preserve iStr_Param(iInt_Param) : iStr_Param(iInt_Param) = """ & iRst.Fields(k).Name & "$"" & Me![" & iRst.Fields(k).Name & "].Value : iInt_Param = iInt_Param + 1"
End If
If InStr(iRst.Fields(k).Name, "INVISIBLE") = 0 Then
Set Controle = CreateControl("Grille", acTextBox)
With Controle
If right(iRst.Fields(k).Name, 3) = "REF" Then
.Name = Left(iRst.Fields(k).Name, Len(iRst.Fields(k).Name) - 3)
.Tag = "REF" '
ElseIf right(iRst.Fields(k).Name, 4) = "DATE" Then
.Name = Left(iRst.Fields(k).Name, Len(iRst.Fields(k).Name) - 4)
.Tag = "DATE"
Else
.Name = iRst.Fields(k).Name
End If
.Left = 1200
.Top = 100 + j
.ControlSource = iRst.Fields(k).Name
iStr_NomChamp = Controle.Name
End With
End If
If InStr(iRst.Fields(k).Name, "POURCENTAGE") > 0 Then
With Controle
.Format = "0%"
.DecimalPlaces = 2
.Name = Left(iRst.Fields(k).Name, Len(iRst.Fields(k).Name) - 11)
iStr_NomChamp = Controle.Name
End With
ElseIf InStr(iRst.Fields(k).Name, "NOMBRE") > 0 Then
With Controle
.Format = "0"
.DecimalPlaces = 2
.Name = Left(iRst.Fields(k).Name, Len(iRst.Fields(k).Name) - 6)
iStr_NomChamp = Controle.Name
End With
End If
If InStr(iRst.Fields(k).Name, "INVISIBLE") = 0 And right(iRst.Fields(k).Name, 3) <> "REF" And right(iRst.Fields(k).Name, 4) <> "DATE" Then
iStr = iStr_NomChamp
iStr_NomChamp = Replace(iStr_NomChamp, " ", "_")
iStr_NomChamp = Replace(iStr_NomChamp, "-", "_")
iStr_NomChamp = Replace(iStr_NomChamp, "<", "Ctl_")
iStr_NomChamp = Replace(iStr_NomChamp, ">", "Ctl_")
iStr_NomChamp = Replace(iStr_NomChamp, "%", "Ctl_")
If Left(iStr_NomChamp, 1) >= "0" And Left(iStr_NomChamp, 1) <= "9" Then
iStr_NomChamp = "ctl" & iStr_NomChamp
End If
'MsgBox iStr & " => " & iStr_NomChamp
iLng_Retour = mdl.CreateEventProc("DblClick", Replace(iStr_NomChamp, " ", "_"))
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, "Dim ctl As Control"
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, "Dim iStr_Param() As string"
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, "Dim iInt_Param As integer"
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, vbTab & "redim preserve iStr_Param(iInt_Param) : iStr_Param(iInt_Param) = ""TypeDate$" & lstChoixDate.Value & """ : iInt_Param = iInt_Param + 1"
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, vbTab & "redim preserve iStr_Param(iInt_Param) : iStr_Param(iInt_Param) = ""Valeur$"" & Me![" & iStr & "].Value : iInt_Param = iInt_Param + 1"
If iInt_Code > -1 Then
For iInt_Code = 0 To UBound(iStr_Code)
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, vbTab & iStr_Code(iInt_Code)
Next
End If
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, vbTab & "redim preserve iStr_Param(iInt_Param) : iStr_Param(iInt_Param) = ""KPI$" & iRst.Fields(k).Name & """ : iInt_Param = iInt_Param + 1"
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, vbTab & "gStr_NomFormAppelant = cStr_NomFormClose"
iLng_Retour = iLng_Retour + 1: mdl.InsertLines iLng_Retour, vbTab & "OuvertureDetailDossier iStr_Param"
End If
j = j + 320
k = k + 1
Next
Set Formul = Forms.item("Grille")
Formul.RecordSource = "tblCCMResultat"
DoCmd.Close acForm, "Grille", acSaveYes
Application.Echo True
DoCmd.OpenForm "Resultat"
Set Formul = Forms.item("Resultat")
Formul.Caption = lStr_Titre
Formul.Controls("etiTitre").Caption = lStr_Titre |
Partager