Bonjour tout le monde,
J'ai un problème avec une condition If qui réagit bizarrement
Dans un formulaire, je teste des formats saisis pour les comparer à des formats de machine de manière à ce qu'il n'y ai pas d'erreur
voici le code :
la comparaison au format minimum fonctionne très bien, aucun problème
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Private Sub ft_mini_maxi() 'comparaison avec format mini maxi machine Dim strSql1 As String Dim strSql2 As String Dim strSql3 As String Dim strSql4 As String Dim format_mini_h As Integer Dim format_mini_l As Integer Dim format_maxi_h As Integer Dim format_maxi_l As Integer Dim mon_tirage_hauteur As Integer Dim mon_tirage_largeur As Integer Dim rs1 As DAO.Recordset Dim rs2 As DAO.Recordset Dim rs3 As DAO.Recordset Dim rs4 As DAO.Recordset strSql1 = "SELECT TBL_machine_offset.Ft_min_hauteur, machtps.N° FROM TBL_machine_offset INNER JOIN machtps ON TBL_machine_offset.num_machine_offset = machtps.num_machine WHERE (((machtps.N°)=" & Me.N° & "));" strSql2 = "SELECT TBL_machine_offset.Ft_min_largeur, machtps.N° FROM TBL_machine_offset INNER JOIN machtps ON TBL_machine_offset.num_machine_offset = machtps.num_machine WHERE (((machtps.N°)=" & Me.N° & "));" strSql3 = "SELECT TBL_machine_offset.Ft_max_hauteur, machtps.N° FROM TBL_machine_offset INNER JOIN machtps ON TBL_machine_offset.num_machine_offset = machtps.num_machine WHERE (((machtps.N°)=" & Me.N° & "));" strSql4 = "SELECT TBL_machine_offset.Ft_max_largeur, machtps.N° FROM TBL_machine_offset INNER JOIN machtps ON TBL_machine_offset.num_machine_offset = machtps.num_machine WHERE (((machtps.N°)=" & Me.N° & "));" Set rs1 = CurrentDb.OpenRecordset(strSql1) Set rs2 = CurrentDb.OpenRecordset(strSql2) Set rs3 = CurrentDb.OpenRecordset(strSql3) Set rs4 = CurrentDb.OpenRecordset(strSql4) format_mini_h = rs1("Ft_min_hauteur").Value format_mini_l = rs2("Ft_min_largeur").Value format_maxi_h = rs3("Ft_max_hauteur").Value format_maxi_l = rs4("Ft_max_largeur").Value mon_tirage_hauteur = Me.ft_tirage_haut.Value mon_tirage_largeur = Me.ft_tirage_larg.Value 'comparaison format mini If mon_tirage_hauteur < format_mini_h Or mon_tirage_largeur < format_mini_l _ And mon_tirage_hauteur < format_mini_l Or mon_tirage_largeur < format_mini_h Then MsgBox "le format papier indiqué est plus petit que le format minimum de la machine sélectionnée" & vbCrLf & "veuillez saisir un format approprié", vbOKOnly + vbDefaultButton1 + vbExclamation, "problème de format papier" Me.ft_tirage_haut.SetFocus End If 'comparaison format maxi If mon_tirage_hauteur > format_maxi_h Or mon_tirage_largeur > format_maxi_l _ And mon_tirage_hauteur > format_maxi_l Or mon_tirage_largeur > format_maxi_h Then MsgBox "le format papier indiqué est plus grand que le format maximum de la machine sélectionnée" & vbCrLf & "veuillez saisir un format approprié", vbOKOnly + vbDefaultButton1 + vbExclamation, "problème de format papier" Me.ft_tirage_haut.SetFocus End If rs1.Close Set rs1 = Nothing rs2.Close Set rs2 = Nothing rs3.Close Set rs3 = Nothing rs4.Close End Sub
par contre la comparaison au format maximum délire complètement et je n'y comprends rien.
la machine testée à un format maxi de 520 x 740, je fais le test en indiquant 450 x 640 et la condition se vérifie alors qu'elle ne le devrait pas (voir copie d'écran)
très sincèrement je n'y comprends plus rien et ça commence vraiment à me rendre chèvre.
si quelqu'un avait une idée je serais preneur.
Merci d'avance
Partager