Bonjour,
Voici mon cas, j’ai une table client avec pour identifiant N°client en type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE ,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l’intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV pour
identifier d’où vient les clients( soit du programme extérieur, soit
d’access).
J’ai essayé d’utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n’ai pas de donnée
provenant de l’extérieur ou si je n’ai pas DIV2006090001
Ce que je veux obtenir c’est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m’aider.
Bon dimanche
Yannick
Bonjour,
Voici mon cas, j’ai une table client avec pour identifiant N°client en type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE ,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l’intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV pour
identifier d’où vient les clients( soit du programme extérieur, soit
d’access).
J’ai essayé d’utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n’ai pas de donnée
provenant de l’extérieur ou si je n’ai pas DIV2006090001
Ce que je veux obtenir c’est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m’aider.
Bon dimanche
Yannick
Bonjour,
Voici mon cas, j’ai une table client avec pour identifiant N°client en type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE ,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l’intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV pour
identifier d’où vient les clients( soit du programme extérieur, soit
d’access).
J’ai essayé d’utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n’ai pas de donnée
provenant de l’extérieur ou si je n’ai pas DIV2006090001
Ce que je veux obtenir c’est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m’aider.
Bon dimanche
Yannick
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pour
identifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pour
identifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pour
identifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pouridentifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news:175B53C0-23DF-4E39-92A2-9D720EAE612A@microsoft.com...
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pour
identifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pouridentifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pouridentifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news:175B53C0-23DF-4E39-92A2-9D720EAE612A@microsoft.com...
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pour
identifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001, GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pouridentifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pouridentifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news:175B53C0-23DF-4E39-92A2-9D720EAE612A@microsoft.com...
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pour
identifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pouridentifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pouridentifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news: 09C883D8-CA33-4696-83A3-680A2E478C57@microsoft.com...
Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news:175B53C0-23DF-4E39-92A2-9D720EAE612A@microsoft.com...
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pour
identifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3)=
'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe DIV
pouridentifier d'où vient les clients( soit du programme extérieur, soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") & "0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.
J'utilise le bouton Ajout qui me me fait appel à la fonction autonum pour
le
choix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soiréeBonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que
tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message
de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client
en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un
programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe
DIV
pouridentifier d'où vient les clients( soit du programme extérieur,
soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") & "0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.
J'utilise le bouton Ajout qui me me fait appel à la fonction autonum pour
le
choix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soirée
Bonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que
tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news: 09C883D8-CA33-4696-83A3-680A2E478C57@microsoft.com...
Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message
de
news:175B53C0-23DF-4E39-92A2-9D720EAE612A@microsoft.com...
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client
en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un
programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe
DIV
pour
identifier d'où vient les clients( soit du programme extérieur,
soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") & "0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.
J'utilise le bouton Ajout qui me me fait appel à la fonction autonum pour
le
choix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soiréeBonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que
tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message
de
news:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client
en
typede donnée : texte
Cette table est alimentée de deux façon, la première par un
programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe
DIV
pouridentifier d'où vient les clients( soit du programme extérieur,
soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
J'avais fait des test avec des noms de champs que j'ai oublié de remplacer
dans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") & "0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.J'utilise le bouton Ajout qui me me fait appel à la fonction autonum pour
lechoix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soiréeBonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que
turecherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitezpas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message
denews:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client
entypede donnée : texte
Cette table est alimentée de deux façon, la première par un
programmeextérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe
DIVpouridentifier d'où vient les clients( soit du programme extérieur,
soitd'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnéeprovenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
J'avais fait des test avec des noms de champs que j'ai oublié de remplacer
dans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news:67615557-7652-4F17-8571-67DBF56298C0@microsoft.com...
Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") & "0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.
J'utilise le bouton Ajout qui me me fait appel à la fonction autonum pour
le
choix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soirée
Bonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que
tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news: 09C883D8-CA33-4696-83A3-680A2E478C57@microsoft.com...
Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message
de
news:175B53C0-23DF-4E39-92A2-9D720EAE612A@microsoft.com...
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client
en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un
programme
extérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe
DIV
pour
identifier d'où vient les clients( soit du programme extérieur,
soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
J'avais fait des test avec des noms de champs que j'ai oublié de remplacer
dans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName &
"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") & "0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.J'utilise le bouton Ajout qui me me fait appel à la fonction autonum pour
lechoix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soiréeBonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce que
turecherches?
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable", "left([TonChamp],3) > > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitezpas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le message
denews:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant N°client
entypede donnée : texte
Cette table est alimentée de deux façon, la première par un
programmeextérieur en automatique qui ont un N°client qui peut être 00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais pouvoir
rajouter
des clients en automatique dans cette même table avec pour préfixe
DIVpouridentifier d'où vient les clients( soit du programme extérieur,
soitd'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnéeprovenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Merci merci cela fonctionne .
j'ai rajouter des nz , pour tous les cas cela fonctionne,à part le premier
,
bizzare, je vais regarder.
Merci pour tout.J'avais fait des test avec des noms de champs que j'ai oublié de
remplacer
dans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") &
"0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.J'utilise le bouton Ajout qui me me fait appel à la fonction autonum
pour
lechoix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soiréeBonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce
que
turecherches?
Function AutoNum(AutoNumType As AutoType, TableName As String,
Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") &
"0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") &
"0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le
message de
news:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce
code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitezpas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs
qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le
message
denews:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant
N°client
entypede donnée : texte
Cette table est alimentée de deux façon, la première par un
programmeextérieur en automatique qui ont un N°client qui peut être
00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais
pouvoir
rajouter
des clients en automatique dans cette même table avec pour
préfixe
DIVpouridentifier d'où vient les clients( soit du programme extérieur,
soitd'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnéeprovenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Merci merci cela fonctionne .
j'ai rajouter des nz , pour tous les cas cela fonctionne,à part le premier
,
bizzare, je vais regarder.
Merci pour tout.
J'avais fait des test avec des noms de champs que j'ai oublié de
remplacer
dans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news:67615557-7652-4F17-8571-67DBF56298C0@microsoft.com...
Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") &
"0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.
J'utilise le bouton Ajout qui me me fait appel à la fonction autonum
pour
le
choix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soirée
Bonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce
que
tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String,
Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") &
"0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") &
"0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le
message de
news: 09C883D8-CA33-4696-83A3-680A2E478C57@microsoft.com...
Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce
code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs
qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le
message
de
news:175B53C0-23DF-4E39-92A2-9D720EAE612A@microsoft.com...
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant
N°client
en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un
programme
extérieur en automatique qui ont un N°client qui peut être
00001,
GHJKLPE
,
G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais
pouvoir
rajouter
des clients en automatique dans cette même table avec pour
préfixe
DIV
pour
identifier d'où vient les clients( soit du programme extérieur,
soit
d'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnée
provenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Merci merci cela fonctionne .
j'ai rajouter des nz , pour tous les cas cela fonctionne,à part le premier
,
bizzare, je vais regarder.
Merci pour tout.J'avais fait des test avec des noms de champs que j'ai oublié de
remplacer
dans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") &
"0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.J'utilise le bouton Ajout qui me me fait appel à la fonction autonum
pour
lechoix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soiréeBonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce
que
turecherches?
Function AutoNum(AutoNumType As AutoType, TableName As String,
Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") &
"0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") &
"0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le
message de
news:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce
code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitezpas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs
qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le
message
denews:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant
N°client
entypede donnée : texte
Cette table est alimentée de deux façon, la première par un
programmeextérieur en automatique qui ont un N°client qui peut être
00001,
GHJKLPE
,G000053333.
De ce coté ci pas de problème cela fonctionne bien au niveau de
l'intégration dans la base acesss.
Du coté interface access , la deuxième façon, je voudrais
pouvoir
rajouter
des clients en automatique dans cette même table avec pour
préfixe
DIVpouridentifier d'où vient les clients( soit du programme extérieur,
soitd'access).
J'ai essayé d'utiliser la fonction numéro auto
http://officesystem.access.free.fr/ex_numauto_personnel.htm
qui fonctionne bien en numérique (2006090001) si je n'ai pas de
donnéeprovenant de l'extérieur ou si je n'ai pas DIV2006090001
Ce que je veux obtenir c'est ceci :
N°client
00001
GHJKLPE
DIV2006090001
G000053333
DIV2006090002
00002
DIV2006090003
Est-ce faisable ??
Merci pour tous ceux qui voudront bien m'aider.
Bon dimanche
Yannick
Le premier cas ne fonctionne pas car la fonction DMAX renvoie la valeur
GHJKLPE avec les exemples que tu as donnés dans ton premier message.
Et GHJKLPE +1 c'est difficile à calculer !!
Voici la fonction modifiée. Le "Case NumSimple" a été regroupé avec le "Case
Else" car le traitement est le même.
De plus, tu peux lui passer ton préfixe en paramètre.
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro", Optional Prefixe As String) As String
If Prefixe <> "" Then
lgTmp = Nz(Mid(DMax(FieldName, TableName, "Left([" & FieldName & "],
Len(Prefixe))= '" & Prefixe & "'"), Len(Prefixe) + 1), 0)
Else
lgTmp = Nz(DMax(FieldName, TableName), 0)
End If
Select Case AutoNumType
Case Année
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Year(Date) & "00001")
End If
Case Mois
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
If IsNumeric(lgTmp) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & lgTmp & "1"
End If
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Merci merci cela fonctionne .
j'ai rajouter des nz , pour tous les cas cela fonctionne,à part le premier
,bizzare, je vais regarder.
Merci pour tout.J'avais fait des test avec des noms de champs que j'ai oublié de
remplacerdans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") &
"0001")End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.J'utilise le bouton Ajout qui me me fait appel à la fonction autonum
pourlechoix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soiréeBonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce
queturecherches?
Function AutoNum(AutoNumType As AutoType, TableName As String,
OptionalFieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") &
"0001")End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") &
"0001")End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le
message denews:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce
code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitezpas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs
quicommencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le
messagedenews:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant
N°cliententypede donnée : texte
Cette table est alimentée de deux façon, la première par un
Le premier cas ne fonctionne pas car la fonction DMAX renvoie la valeur
GHJKLPE avec les exemples que tu as donnés dans ton premier message.
Et GHJKLPE +1 c'est difficile à calculer !!
Voici la fonction modifiée. Le "Case NumSimple" a été regroupé avec le "Case
Else" car le traitement est le même.
De plus, tu peux lui passer ton préfixe en paramètre.
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro", Optional Prefixe As String) As String
If Prefixe <> "" Then
lgTmp = Nz(Mid(DMax(FieldName, TableName, "Left([" & FieldName & "],
Len(Prefixe))= '" & Prefixe & "'"), Len(Prefixe) + 1), 0)
Else
lgTmp = Nz(DMax(FieldName, TableName), 0)
End If
Select Case AutoNumType
Case Année
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Year(Date) & "00001")
End If
Case Mois
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
If IsNumeric(lgTmp) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & lgTmp & "1"
End If
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news:B263BC38-3512-43CE-84A6-65BF6735F7EE@microsoft.com...
Merci merci cela fonctionne .
j'ai rajouter des nz , pour tous les cas cela fonctionne,à part le premier
,
bizzare, je vais regarder.
Merci pour tout.
J'avais fait des test avec des noms de champs que j'ai oublié de
remplacer
dans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&
"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le message de
news:67615557-7652-4F17-8571-67DBF56298C0@microsoft.com...
Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") &
"0001")
End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.
J'utilise le bouton Ajout qui me me fait appel à la fonction autonum
pour
le
choix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soirée
Bonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce
que
tu
recherches?
Function AutoNum(AutoNumType As AutoType, TableName As String,
Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") &
"0001")
End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") &
"0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le
message de
news: 09C883D8-CA33-4696-83A3-680A2E478C57@microsoft.com...
Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce
code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitez
pas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.
Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs
qui
commencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" <yannick@discussions.microsoft.com> a écrit dans le
message
de
news:175B53C0-23DF-4E39-92A2-9D720EAE612A@microsoft.com...
Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant
N°client
en
type
de donnée : texte
Cette table est alimentée de deux façon, la première par un
Le premier cas ne fonctionne pas car la fonction DMAX renvoie la valeur
GHJKLPE avec les exemples que tu as donnés dans ton premier message.
Et GHJKLPE +1 c'est difficile à calculer !!
Voici la fonction modifiée. Le "Case NumSimple" a été regroupé avec le "Case
Else" car le traitement est le même.
De plus, tu peux lui passer ton préfixe en paramètre.
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro", Optional Prefixe As String) As String
If Prefixe <> "" Then
lgTmp = Nz(Mid(DMax(FieldName, TableName, "Left([" & FieldName & "],
Len(Prefixe))= '" & Prefixe & "'"), Len(Prefixe) + 1), 0)
Else
lgTmp = Nz(DMax(FieldName, TableName), 0)
End If
Select Case AutoNumType
Case Année
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Year(Date) & "00001")
End If
Case Mois
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
If IsNumeric(lgTmp) Then
AutoNum = Prefixe & lgTmp + 1
Else
AutoNum = Prefixe & lgTmp & "1"
End If
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Merci merci cela fonctionne .
j'ai rajouter des nz , pour tous les cas cela fonctionne,à part le premier
,bizzare, je vais regarder.
Merci pour tout.J'avais fait des test avec des noms de champs que j'ai oublié de
remplacerdans la fonction
Function AutoNum(AutoNumType As AutoType, TableName As String, Optional
FieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
Case Année
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&"], 3)= 'div'"), 4)
If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&"], 3)= 'div'"), 4)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Mid(DMax(FieldName, TableName, "Left([" & FieldName
&"], 3)= 'div'"), 4)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = "DIV" & Mid(DMax(FieldName, TableName, "Left([" &
FieldName & "], 3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le message de
news:Bonjour,
je suis en train d'essayer.
Dans la fonction Autonum:
Case Mois
lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(date, "yyyymm") &
"0001")End If
Il se bloque sur lgTmp = Mid(DMax(FieldName, TableName,
"left([FieldName],3)='div'"), 4)
en me mettant le message d'erreur: erreur d'execution 2001 operation
annulée.J'utilise le bouton Ajout qui me me fait appel à la fonction autonum
pourlechoix 3
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
[Forms]![cl_fic].N°client = AutoNum(3, "client", "N°client")
End Sub
D'ou vient cette erreur?
Merci pour votre aide.
Bonne soiréeBonjour,
Est-ce qu'en utilisant cette nouvelle fonction AutoNum tu obtiens ce
queturecherches?
Function AutoNum(AutoNumType As AutoType, TableName As String,
OptionalFieldName As String = "Numéro") As String
Select Case AutoNumType
Case NumSimple
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)If Left(lgTmp, 4) = CLng(Year(Date)) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Year(Date) & "00001")
End If
Case Mois
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyymm") &
"0001")End If
Case Semaine
lgTmp = Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3) > > > > > 'div'"), 4)If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = "DIV" & lgTmp + 1
Else
AutoNum = "DIV" & CLng(Format(Date, "yyyyww") &
"0001")End If
Case Else
AutoNum = "DIV" & Mid(DMax("TonChamp", "TaTable",
"left([TonChamp],3)= 'div'"), 4) + 1
End Select
End Function
Gilbert
"yannick" a écrit dans le
message denews:Bonjour,
je suis completement coincé je n'arrive pas à mettre en forme ce
code:
Private Sub ajout_Click()
DoCmd.OpenForm "CL_fic", acNormal, "", "", acAdd, acNormal
Je dois rechercher la valeur maximale de div*
strSql = "SELECT Max(Mid([N°client],4)) AS valh FROM client WHERE
(((client.N°client) Like 'div*'))"
si la valeur maximale existe alors
[Forms]![cl_fic].N°client = DIV & AutoNum(3, "client", "N°client")
Sinon
Je fais rien.
Fin si
End sub
Avec la fonction AutoNum
Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro") As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(Year(date)) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Year(date) & "00001")
End If
Case mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyymm") & "0001")
End If
Case semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function
Est ce que vous avez compris ce que je cherche à faire? sinon
n'hesitezpas
à me demander, j'essayerai d'etre plus clair.
Merci pour tout et bonne journée.Bonjour,
Je ne suis pas sûr d'avoir bien compris ce que tu veux obtenir.
La requête suivante te donne la valeur la plus élevée des champs
quicommencent par "DIV"
SELECT Max(Mid([TonChamp],4)) AS Expr1 FROM TaTable WHERE
(((TaTable.TonChamp) Like "div*"));
Gilbert
"yannick" a écrit dans le
messagedenews:Bonjour,
Voici mon cas, j'ai une table client avec pour identifiant
N°cliententypede donnée : texte
Cette table est alimentée de deux façon, la première par un