Avoir un numéro de série
omen123123
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour les amis
je vous trouve aujourd’hui hui avec un grand souci ,je vous explique :
j'ai une requête nommé requete99 ,le résultat de cette requête m affiche 7 champs dont un nommé REF_AUTO_GLOBAL
je voudrai que si le resultat de ce champ est :
- vide il renvoie la valeur vide
- si le résultat est vide les nombres identiques renvoie la valeur 1 et les autres 2 .....
dans le cas ci dessous le resultat doit etre comme cella
- les 4 premiers champ seront vides
-les champs 5 et 6 la valeurs 1
- les champs de 7 a 10 la valeurs 2
- les autres la valeur 3

MERCIIIIIIIII
je vous trouve aujourd’hui hui avec un grand souci ,je vous explique :
j'ai une requête nommé requete99 ,le résultat de cette requête m affiche 7 champs dont un nommé REF_AUTO_GLOBAL
je voudrai que si le resultat de ce champ est :
- vide il renvoie la valeur vide
- si le résultat est vide les nombres identiques renvoie la valeur 1 et les autres 2 .....
dans le cas ci dessous le resultat doit etre comme cella
- les 4 premiers champ seront vides
-les champs 5 et 6 la valeurs 1
- les champs de 7 a 10 la valeurs 2
- les autres la valeur 3

MERCIIIIIIIII
Configuration: Windows / Chrome 72.0.3626.119
A voir également:
- Avoir un numéro de série
- Numero prive - Guide
- Numéro père noël whatsapp - Accueil - Messagerie instantanée
- Symbole numero ✓ - Forum Word
- Trouver le numéro de quelqu'un avec son snap - Forum Snapchat
- Numero clavier ✓ - Forum Bureautique
7 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu partager le texte de la requête en format SQL?
j'ai mieux je partage la base si vous le permettez (par mail) ou bien je copie le code vba fourni par un ami :
le seul souci avec ce code c est qui ne permet pas le retour a zero des que je passe a un autre client.
Function fNumeroterSerie()
Dim odb As Database
Dim oRst As Recordset
Dim stRupture As String
Dim lgCompteur As Long
Set odb = CurrentDb
Set oRst = odb.OpenRecordset("RQ_MAJ_REF_AUTO", dbOpenDynaset)
Do Until oRst.EOF
' Rupture sur le code si nul ou même série
If Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") <> stRupture Or IsNull(oRst.Fields("REF_AUTO_GLOBAL")) Then
stRupture = Nz(oRst.Fields("REF_AUTO_GLOBAL"), "")
lgCompteur = lgCompteur + 1
End If
oRst.Edit
oRst.Fields("REF_AUTO_GLOBAL") = lgCompteur
oRst.Update
oRst.MoveNext
Loop
oRst.Close
Set odb = Nothing
End Function
le seul souci avec ce code c est qui ne permet pas le retour a zero des que je passe a un autre client.
rebonjour
1- ci apres le code de la requete :
SELECT IDCE.REF_AUTO_GLOBAL
FROM IDCE
WHERE (((IDCE.CODE_ETAT)="2" Or (IDCE.CODE_ETAT)="4" Or (IDCE.CODE_ETAT)="6") AND ((IDCE.CODE_PRODUIT)<>"W 1003 M"))
ORDER BY IDCE.REF_TIERS, IDCE.REF_AUTO_GLOBAL;
2- le champ client est le champ REF_TIERS
3 ci apres le code en vba basic
1- ci apres le code de la requete :
SELECT IDCE.REF_AUTO_GLOBAL
FROM IDCE
WHERE (((IDCE.CODE_ETAT)="2" Or (IDCE.CODE_ETAT)="4" Or (IDCE.CODE_ETAT)="6") AND ((IDCE.CODE_PRODUIT)<>"W 1003 M"))
ORDER BY IDCE.REF_TIERS, IDCE.REF_AUTO_GLOBAL;
2- le champ client est le champ REF_TIERS
3 ci apres le code en vba basic
Function fNumeroterSerie() Dim odb As Database Dim oRst As Recordset Dim stRupture As String Dim lgCompteur As Long Set odb = CurrentDb Set oRst = odb.OpenRecordset("RQ_MAJ_REF_AUTO", dbOpenDynaset) Do Until oRst.EOF ' Rupture sur le code si nul ou même série If Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") <> stRupture Or IsNull(oRst.Fields("REF_AUTO_GLOBAL")) Then stRupture = Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") lgCompteur = lgCompteur + 1 End If oRst.Edit oRst.Fields("REF_AUTO_GLOBAL") = lgCompteur oRst.Update oRst.MoveNext Loop oRst.Close Set odb = Nothing End Function
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
suggestion:
Function fNumeroterSerie() Dim odb As Database Dim oRst As Recordset Dim stRupture As String, stRuptClient As String Dim lgCompteur As Long Set odb = CurrentDb Set oRst = odb.OpenRecordset("RQ_MAJ_REF_AUTO", dbOpenDynaset) stRuptClient = "" lgCompteur = 0 Do Until oRst.EOF If Nz(oRst!REF_TIERS, "") <> stRuptClient Then ' rupture sur le client lgCompteur = 0 stRuptClient = Nz(oRst!REF_TIERS, "") stRupture = Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") Else ' Rupture sur le code si nul ou même série If Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") <> stRupture Or IsNull(oRst.Fields("REF_AUTO_GLOBAL")) Then stRupture = Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") lgCompteur = lgCompteur + 1 End If End If oRst.Edit oRst.Fields("REF_AUTO_GLOBAL") = lgCompteur oRst.Update oRst.MoveNext Loop oRst.Close Set odb = Nothing End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rebonsoir be
j'ai une erreur au niveau de la ligne 12
j'ai une erreur au niveau de la ligne 12
If Nz(oRst!REF_TIERS, "") <> stRuptClient Then
le texte du message d'erreur peut souvent à déterminer comment éviter l'erreur.
suggestion:
suggestion:
Function fNumeroterSerie() Dim odb As Database Dim oRst As Recordset Dim stRupture As String, stRuptClient As String, reqsql As String Dim lgCompteur As Long Set odb = CurrentDb reqsql = "SELECT IDCE.REF_TIERS, IDCE.REF_AUTO_GLOBAL " _ + " FROM IDCE " _ + " WHERE (((IDCE.CODE_ETAT) = '2' Or (IDCE.CODE_ETAT) = '4' Or (IDCE.CODE_ETAT) = '6') And ((IDCE.CODE_PRODUIT) <> 'W 1003 M')) " _ + " ORDER BY IDCE.REF_TIERS, IDCE.REF_AUTO_GLOBAL " Set oRst = odb.OpenRecordset(reqsql, dbOpenDynaset) stRuptClient = "" lgCompteur = 0 Do Until oRst.EOF If Nz(oRst!REF_TIERS, "") <> stRuptClient Then ' rupture sur le client lgCompteur = 0 stRuptClient = Nz(oRst!REF_TIERS, "") stRupture = Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") Else ' Rupture sur le code si nul ou même série If Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") <> stRupture Or IsNull(oRst.Fields("REF_AUTO_GLOBAL")) Then stRupture = Nz(oRst.Fields("REF_AUTO_GLOBAL"), "") lgCompteur = lgCompteur + 1 End If End If oRst.Edit oRst.Fields("REF_AUTO_GLOBAL") = lgCompteur oRst.Update oRst.MoveNext Loop oRst.Close Set odb = Nothing End Function
rebonsoir be
le code s est débloquer le seul souci qui reste est que j'aimerai si possible que si le champ : REF_AUTO_GLOBAL n'est pas en double je voudrai qu il n'affiche aucun numéro de serie.
je te remercie d avance
le code s est débloquer le seul souci qui reste est que j'aimerai si possible que si le champ : REF_AUTO_GLOBAL n'est pas en double je voudrai qu il n'affiche aucun numéro de serie.
je te remercie d avance