Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2011, 09h31   #1
Invité de passage
 
Inscription : avril 2006
Messages : 10
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : avril 2006
Messages : 10
Points : 0
Points : 0
Par défaut Comment définir n° personnalisé automatique selon critere

Bonjour à tous,

J'espere que je poste dans le bon forum.
Voila mon probleme, j'ai trouvé d'ici de la des infos pour créer des N° personnalisé , par contre je n'arrive pas à comprendre comment on peut définir un N° par rapport à des criteres spécifiques.

Je vous explique :
j'ai créé un formulaire qui contient un sous formulaire, une liste deroulante ("Distributeur") sur le formulaire fait apparaitre les données dans le sous formulaire.
Je dois pour chaque "Distributeur" passé une commande de plusieurs articles via le sous formulaire et donc je voudrais définir un N° de commande pour ce fournisseur.
Puis quand je selectionne un nouveau "Distributeur" via la liste déroulante qu'il me créer un nouveau N° de commande dés que je commence à saisir la commande.

Malheureusement je n'arrive pas à faire cela, le N° de commande s'increment de +1 à chaque fois que je valide une ligne de la commande du sous formulaire.

Je vous met un petit screen si ca peut aider
Images attachées
Type de fichier : jpg ScreenShot007.jpg (215,5 Ko, 10 affichages)
Malach est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 14h25   #2
Membre à l'essai
 
Inscription : mai 2009
Messages : 26
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 26
Points : 20
Points : 20
Le champ "n° de commande" est-il indépendant ou lié à un champ du formulaire ?
Quel est le code d'incrémentation de commande ? A quel évènement est-il associé ? (Modification du menu déroulant, autre bouton "création de commande"...)
anthurBB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 15h51   #3
Invité de passage
 
Inscription : avril 2006
Messages : 10
Détails du profil
Informations personnelles :
Âge : 39

Informations forums :
Inscription : avril 2006
Messages : 10
Points : 0
Points : 0
Le champ N° de commande est lié au sous formulaire, c est à dire que pour chaque article saisie un N° de commande est associé MAIS tant que je n'ai pas terminé la commande totale du Distributeur , le N° ne doit pas changer

Cet evenement est associé a un bouton click (bouton validé en vert sur mon screen) sur chaque article.

Je te donne le code utiliser pour incrementer le N°
Code :
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
' ---
' NUMEROTATION AUTOMATIQUE PERSONNALISEE
' ---
' Entrée : strTable  <- Nom de la table.
'          strField  <- Nom du champ contenant le numéro
'          strFormat <- Gabarit décrivant comment formater
'                       le numéro.
'          intDigits <- Nombre de caractères pour le
'                       numéro proprement dit.
'          dtDate    <- Date de référence pour le calcul
'                       de l'année, du mois...
'
Function AutoNumber( _
  ByVal strTable As String, _
  ByVal strField As String, _
  Optional ByVal strFormat As String = "", _
  Optional ByVal intDigits As Integer = 4, _
  Optional ByVal dtDate As Date = #1/1/100#)
 
' Quelques variables...
On Error GoTo AutoNumberErr
Dim varMarkers As Variant, varMark As Variant
Dim strCriteria As String
Dim strNum As String, lngNum As Long, strPart As String
 
' Quelques retraitements...
If dtDate = #1/1/100# Then dtDate = Now()
strField = "[" & strField & "]"
strFormat = Replace(strFormat, "'", "''")
 
' Marqueurs à remplacer
varMarkers = Array("YYYY", "YY", "Q", "MM", "WW", "DD")
For Each varMark In varMarkers
  ' Formater la date et l'injecter dans le template
  strPart = Format(dtDate, varMark, vbMonday, vbFirstFourDays)
  strFormat = Replace(strFormat, "[" & varMark & "]", _
    Format(strPart, String(Len(varMark), "0")))
Next
 
' On cherche la valeur maximale déjà employée dans la table
strCriteria = strField & " LIKE '" & strFormat & "*'"
strNum = Nz(DMax(strField, strTable, strCriteria), "")
 
' On crée le nouveau numéro
lngNum = IIf(strNum = "", 1, Val(Mid(strNum, Len(strFormat) + 1)) + 1)
strFormat = strFormat & Format(lngNum, String(intDigits, "0"))
 
' Valeur finale
AutoNumber = strFormat
Exit Function
 
AutoNumberErr:
  MsgBox "Erreur : " & Err.Description, vbCritical
  AutoNumber = ""
  Exit Function
End Function
Malach est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h56.


 
 
 
 
Partenaires

Hébergement Web