Bonjour à tous,
je suis confonté à un problême un peu bizarre.
J'ai un formulaire frmCreatePipingClass qui contient un sous-formulaire sfrmPipingClass en mode continue, me permettant d'affecter plusieurs enregsitrements au formulaire principal grâce à un bouton Select.
Lorsque j'appuie sur Select j'effectue la procédure suivante me permettant d'afficher une liste en enlevant les enregsitrements deja présent dans mon sous-formulaire (en ajoutant de nouvelles exclusions)
lorsque je selectionne un élément de la liste pour le transferer dans mon sous formulaire je lui réinialise ma requete avec le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Dim stDocName As String Dim stLinkCriteria As String Dim rcs As DAO.Recordset Dim qdf As DAO.QueryDef Dim compare1 As String Dim compare2 As String Dim strSQL As String Dim db As DAO.Database Set db = CurrentDb Set qdf = db.QueryDefs("QryMatPCDropDown") strSQL = qdf.SQL compare1 = "((tlkpMaterialStd.Validated)=Yes)" Set rcs = Me.RecordsetClone rcs.MoveFirst Do While Not (rcs.EOF) compare2 = compare1 & " AND ((tlkpMaterialStd.MaterialStdID)<>" & rcs.Fields(1).Value & ")" strSQL = Replace(strSQL, compare1, compare2) compare1 = compare2 rcs.MoveNext Loop rcs.Close Set rcs = Nothing qdf.SQL = strSQL stDocName = "frmSelectMaterialPipingClass" DoCmd.OpenForm stDocName, , , stLinkCriteria
Jusque la tout va bien, sauf lorsque je veux relancer la procédure pour ajouter un nouvel élément de la liste, il ne rajoute plus aucune exclusion en fait il ne modifie pas la requete il l'a laisse en état réinitialisé. sauf lorsque j'apporte une modifcation qqconque à mon event form_Close
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub Form_Close() Dim strSQL As String Dim db As DAO.Database Dim qdf As QueryDef Dim strSQL1 As String Set db = CurrentDb Set qdf = db.QueryDefs("QryMatPCDropDown") strSQL1 = "SELECT tlkpMaterialStd.MaterialStdID, tlkpMaterialStd.SegmentDesc, tblEnd1.EndID, tblName.NameID, tblSize1.SizeID, TblBOFDiscipline.BOFDisciplineID, tlkpMaterialStd.Validated" & _ " FROM tblSize1 RIGHT JOIN (tblName RIGHT JOIN (tblEnd1 RIGHT JOIN (TblBOFDiscipline RIGHT JOIN tlkpMaterialStd ON TblBOFDiscipline.BOFDisciplineID=tlkpMaterialStd.Discipline) ON tblEnd1.EndID=tlkpMaterialStd.End1) ON tblName.NameID=tlkpMaterialStd.Name) ON tblSize1.SizeID=tlkpMaterialStd.Dimension1" & _ " WHERE (((tlkpMaterialStd.Validated) = Yes))" & _ " ORDER BY tlkpMaterialStd.SegmentDesc;" qdf.SQL = strSQL1 qdf.Close End Sub
Je ne comprends pas pourquoi si quelqun a une solution pour qu'il me prenne en compte à chaque fois ma requête je suis preneur
Merci beaucoup
Partager