Bonjour
Dans un formulaire permettant l’ouverture d’une facture, j’ai plusieurs possibilités à l’ouverture, par le choix d’une liste déroulante (liste clients) :
- J’ouvre une nouvelle facture avec l’inscription des données client connues dans la table client. Puis je positionne le curseur sur un champ « produit » d’un sous formulaire de la facture.
-J’ouvre une nouvelle facture avec l’inscription d’un nouveau client, suite à une option retenue de création de nouvelle fiche client après introduction d’un nouveau client absent d’une liste déroulante. Et dans ce cas, je souhaite positionner le curseur sur le champ ‘client’ (qui s’appelle en fait ‘NomSociété’ dans le code) sur lequel vient de s'inscrire le nouveau client.
Visiblement, la variable utilisée pour mémoriser la manière d’accéder ne fonctionne pas, elle doit rester à ‘true’. C’est la première fois que j’utilise une variable (j’allais dire ‘dans ce but’, mais en fait, c’est la première fois tout court).
Où ais-je mer…. ?
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 Private Sub Liste_client_Click() 'Ouvre une nouvelle facture avec le nom du client de la liste 'Met le sablier durant l'opération DoCmd.Hourglass True DoCmd.Echo False, "" ' Ouvre le formulaire de création de facture DoCmd.OpenForm "Facture", acNormal ' Ouvre une nouvelle facture DoCmd.GoToRecord acForm, "Facture", acNewRec ' Affiche la facture en plein écran DoCmd.Maximize ' Affiche pour accès le champ "code client" Forms!Facture![Client sur facture].Visible = True ' Accède au controle "N° de client" sur facture DoCmd.GoToControl "Client sur facture" ' Inscrit le N° du client dans la facture Forms!Facture![Client sur facture] = Forms![Sélection Client]![liste client] ' Cache le Sous formulaire "détail commande" (avec remise) Forms!Facture![Sous-formulaire Détails factures].Visible = False ' Affiche le Sous formulaire "détail commande sans remise" Forms!Facture![Sous-formulaire Détails factures sans remise].Visible = True ' Accède au sous formulaire "détail facture" DoCmd.GoToControl "Sous-formulaire Détails factures sans remise" ' Met le curseur sur le champ "Produit" DoCmd.GoToControl "RéfProduit" ' Cache le champ "code client" Forms!Facture![Client sur facture].Visible = False ' Ferme le formulaire d'ouverture facture "sélection client" DoCmd.Close acForm, "Sélection Client" DoCmd.Echo True, "" DoCmd.Hourglass False ' Si ouverture par le forcage d'un nouveau client Dim nouveauclient As Boolean If nouveauclient = True Then ' Accède au controle "société" DoCmd.GoToControl "nomSociété" ' réinitialise la variable "nouveauclient" nouveauclient = False Else End If End Sub Private Sub Liste_client_NotInList(NewData As String, Response As Integer) ' Ouvre la bddg afin de proposer l'entrée d'un nouveau client dans la table clientèle If MsgBox(" Le client que vous avez inscrit n'existe pas dans votre base." & Chr(13) & Chr(13) _ & "Voulez-vous ajouter ' " & NewData & " ' à la liste de vos clients ?", _ vbYesNo + vbQuestion + vbDefaultButton2, "Ajout ?") = vbYes Then DoCmd.RunSQL "INSERT INTO clientèle ( société ) SELECT """ & NewData & """;" Response = acDataErrAdded ' mémorise l'opération pour positionner le curseur sur le champ "client/ nomSociété" à l'ouverture de la facture Dim nouveauclient As Boolean nouveauclient = True ' Si plutôt erreur de saisie Else Response = acDataErrContinue Liste_client.Undo End If End Sub
Partager