Bonjour, je reviens vers vous, car je suis confronté à une problème dont je ne vois pas l'issue.

J'ai une formulaire "encodage commande". J'aimerai pouvoir effectuer 3 opérations (si le cas se présente) tout en restant dans mon document.
1) l'article existe, mais codebarre inexistant. -> J'ouvre mon page ChangementProduit (ça fonctionne)

2) le prix existant dans la bdd est erroné et le client choisi à le modifié -> j'ouvre la même page, mais qqe champs sont occulté -> la ça ne fonctionne pas, j'ai une message erreur.

L'erreur ce produit indépendamment si le codebarre existe ou n'existe pas dans la fiche article.

Pour appeler ma page, via Open Args en cas 1 voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 If Me.Codebarre_EAN_13 = "" Or IsNull(Me.Codebarre_EAN_13) Then
    ChoixClient = 1
    DoCmd.OpenForm "frmProduitsChangeCode", , , , acFormEdit, , Me.IdProduit.Value
  End If
je fait pareil pour cas 2, sauf qu'il y à une msgbox avant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Response = MsgBox("Voulez vous modifier le prix dans la base de données?", vbYesNo)
If Response = vbYes Then
ChoixClient = 2
  DoCmd.OpenForm "frmProduitsChangeCode", , , , acFormEdit, , Me.IdProduit.Value
End If
A l'arrivée la page produit s'ouvre.
Dans le cas 1 sur le record demandé (pe la 48eme),
dans le cas 2 il se positionne sur la première ligne.

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
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
Sub Form_Open(Cancel As Integer)
'On Error GoTo GestionErreur
 
Me.IdProduit.Enabled = True
Me.CodeFournisseur.Enabled = False
Me.CodeIdentifient.Enabled = False
Me.Description.Enabled = False
Me.Couleur.Enabled = False
Me.btnEtiquette.Visible = False
Me.btnFirst.Enabled = False
Me.btnLast.Enabled = False
Me.btnNext.Enabled = False
Me.btnNewRecord.Enabled = False
Me.btnRecherche.Enabled = False
 
Select Case ChoixClient
Case 1
Me.PrixAchat.Visible = False
Me.PrixMoyen.Visible = False
Me.PrixVenteHTVA.Visible = False
Me.Texte48.Visible = False
Me.PrixVenteTvac.Visible = False
Me.TVA.Visible = False
Me.chxPreCollect.Visible = False
Me.Étiquette59.Visible = False
Me.prixZINhtva.Visible = False
Me.Étiquette60.Visible = True
Me.CodebarreCode.Visible = True
Me.Codebarre_EAN_13_Bijschrift.Visible = True
Me.Codebarre_EAN_13.Visible = True
Me.Codebarre_EAN_13.SetFocus
 
Case 2
Me.PrixAchat.Visible = True
Me.PrixMoyen.Visible = True
Me.PrixVenteHTVA.Visible = True
Me.Texte48.Visible = True
Me.PrixVenteTvac.Visible = True
Me.TVA.Visible = True
Me.chxPreCollect.Visible = True
Me.Étiquette59.Visible = True
Me.prixZINhtva.Visible = True
Me.Étiquette60.Visible = False
Me.CodebarreCode.Visible = False
Me.Codebarre_EAN_13_Bijschrift.Visible = False
Me.Codebarre_EAN_13.Visible = False
Me.PrixAchat.SetFocus
End Select
 
 
 
    If Not IsNull(Me.OpenArgs) Then
        strRecherche = Me.OpenArgs
        strRecherche = Val(strRecherche)
        Dim RS As DAO.Recordset
        Set RS = Me.RecordsetClone
        RS.FindFirst "IdProduit = " & strRecherche
        If Not RS.NoMatch Then
          Me.Bookmark = RS.Bookmark
        End If
    End If
 
GoTo Fin
 
GestionErreur:
'If Err.Number = 2046 Then
'rien faire
'Else
  strErreur = DLookup("[DescriptionFrench]", "tbl_Errors", "[ErrorID] = " & Err.Number)
    If strErreur = "" Or IsNull(strErreur) Then
      strErreur = DLookup("[DescriptionEnglish]", "tbl_Errors", "[ErrorID] = " & Err.Number)
    End If
  MsgBox ("") & Err.Number & "  " & strErreur, vbCritical, "Gestion Stock Zumbawear Assymetric"
 
Set oFSO = New Scripting.FileSystemObject
    Set oTxt = oFSO.OpenTextFile(CurrentProject.Path & "\Gestion Stock Assymetric.log", ForAppending)
 
    With oTxt
     strErrTexte = (Now & "  " & Err.Number & "  " & strErreur & "  sub Form_Load() - frmProduitsChangeCode")
     .WriteLine strErrTexte
    End With
    oTxt.Close
'End If
Fin:
End Sub
Est-ce que qqn vois que je fais mal dans mon code? Pq ceci ne fonctionne que à moitie?

bien à vous

Hans