Bonjour à tous,
Dans un formulaire , j'utilise une liste de choix et un sous-formulaire au format feuille de données.
Lorsque je sélectionne une valeur dans la liste de choix, le sous-formulaire se met à jour via une procédure vba.
Mon soucis est que déjà, en ouvrant le formulaire, la liste de choix met quelques secondes à s'ouvrir. Les valeurs de cette liste sont issues d'une requête via une requête SQl:
SELECT DISTINCT [Prix - PN].[FiguTitle] FROM [Prix - PN] ORDER BY [Prix - PN].[FiguTitle] ;
qui se trouve dans le champs Contenu des propriétés.
Puis, après sélection de la valeur dans le liste de choix, une procédure s'exécute :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Private Sub TitreFigure_AfterUpdate()
Dim strSQL As String, strTitre As String
If TitreFigure.Text <> "" Then
strTitre = Me!TitreFigure.Text
' Création de la requête source en SQL
strSQL = "SELECT [Prix - PN].[PN], [Prix - PN].[Désignation], [Prix - PN].[Prix] "
strSQL = strSQL & "FROM [Prix - PN] WHERE [Prix - PN].[FiguTitle]= '"
strSQL = strSQL & strTitre
strSQL = strSQL & "'"
' Affectation de la requête SQL au sous-formulaire
SousForm.Form.RecordSource = strSQL
SousForm.Requery
End If
End Sub |
Et donc là, c'est au niveau des lignes en gras (en rouge) que ça prend trop de temps à s'exécuter.
Est-ce que quelqu'un aurait une solution pour alléger tout cette exécution?!
Merci de vore aide
Partager