Sinsitrus
Messages postés849Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention21 août 2015
-
20 juin 2008 à 00:03
Sinsitrus
Messages postés849Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention21 août 2015
-
25 juin 2008 à 02:20
Salut !
J'avais déjà posé cette question dans le forum et on m'a donné ce code ci :
Private Sub Command1_Click()
T_Num.Text = Format(Val(T_Num.Text) + 1, "0000")
End Sub
Mais en fait, il y'a un élément qui manque...
Je voudrais qu'au load, le Text1 soit supérieur d'un point du dernier enregistrement suivit d'un texte "RE8" dont le 8 est le chiffre de l'année en cours... puis RE9 pour l'an 2009 et 10 pour 2010.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 juin 2008 à 01:35
salut,
euh... na moi pas comprendre la question
le Text1 soit supérieur d'un point du dernier enregistrement
> 1 point? un point de quoi? de quel enregistrement?
suivit d'un texte "RE8" dont le 8 est (...)
çà ok
T_Num.Text = "RE8" & (...)
ouai c'est sur que si çà commence par "RE"..., tu n'auras pas ton "+1 point" avant....
Dim sYear As String
sYear = Format$(Date, "YY") ' "08" ou "10" ou
autre
If LeftB$(sYear, 2) = "0" Then sYear = RightB$(sYear, 2) ' si commence par zéro, on ne prend
que le 2e carac
T_Num.Text = "Ton +1 point qui vient de je ne sais où " & _
"RE" & sYear
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 juin 2008 à 13:22
sinitrus -> tu fais vraiment pas d'effort. t'essayes même pas de comprendre ni le code ni les conseils.
sans compter que ton énoncé n'était pas bien expliqué. soudainement ton "compteur" se trouve à la fin, tu disais au début !
Text1 soit supérieur d'un point du dernier enregistrement suivit d'un texte "RE8"
bref !
Private Sub Command1_Click()
Dim iPosSlash As Integer
Dim lVal As Long
Dim sYear As String
' on récupère la
valeur. soit il y a REX/VAL, soit j'en sais rien.
' VAL nous renvoie la valeur. donc si çà commence par RE, on
aura toujours Val renvoyant 0
' on va donc
récupérer la droite du slash!
iPosSlash = InStr(1, T_Num.Text, "/")
' si cette position est 0,
il n'y en a pas. sinon on récupère la valeur
If iPosSlash = 0 Then
lVal = 0&
Else
lVal = Val(Mid$(T_Num.Text, iPosSlash +
1))
End If
' dernier chiffre (sur
1 ou 2 carac) de l'année en cours
sYear = Format$(Date, "YY") ' "08" ou "10" ou
autre
If LeftB$(sYear, 2) = "0" Then sYear = RightB$(sYear, 2) ' si commence par zéro, on ne prend
que le 2e carac
' on
affiche
T_Num.Text = "RE" & sYear & "/" & Format$(lVal + 1, "0000")
End Sub
bon copier/coller...
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Sinsitrus
Messages postés849Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention21 août 2015 20 juin 2008 à 13:40
Salut !
PCPT, la question n'est pas sur l'effort que je donne ici mais sur ce qui se passe avec moi sur ma machine...
Quand tu m'a donné le code pour le RE, quelque soit l'emplacement je me suis dis que c'est pareil, fo juste que le RE soit avant ou après...
Puis pour le numéro automatique, j'ai fouillé mais le code que j'ai eu dans la premiere question (sur un autre topique que celu- ci) et d'ailleur mais j'ai trouvé plus simple celui là...
J'ai fais plusieurs test mais sans aucun resultat... et enfin les explications donné sur le RE sont "bien entrés dans ma tit tête".
Quand Mortalino m'a dit d'enlever le 0 du T_Num... là ça m'a été bizarre ^o)
Enfin bref, merci a tous pour le coup de main, je sais que souvent je suis lourd mais croyez moi, je cherche aussi à comprendre plutot qu'a coder en automate (copy/past)
Sinsitrus
Messages postés849Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention21 août 2015 20 juin 2008 à 23:13
Salut !
looool
nn je faisais allusion a un bug dans le code que tu m'as donné :D
Je ne sais pas si je n'arrives pas a expliquer dans le bon ordre mais voilà, je vais essayer encore et désolé pour ça.
RE8/0001 est le code du "Reçu Espèce"
Il signifie REcu de l'an 2008/
puis vient s'ajouter le numéro du recu 0001 qui sera a chaque load, à +1
donc j'aurai pour 5 enregistrements ceci :
RE8/0001
RE8/0002
RE8/0003
RE8/0004
RE8/0005
Le code que tu as donné plus haute :
Dim
sYear
As String
sYear =
Format
$(
Date
,
"YY"
)
If
LeftB
$(sYear,
2
) =
"0"
Then
sYear =
RightB
$(sYear,
2
)
T_Num.Text =
"RE"
& sYear " &
"/"
Est parfaitement bien opérationnel.
Mais après, les numéro 0001 ne se suivent pas. Voilà où même le code que tu viens de me donner ne fonctionne pas.
Private Sub Command1_Click()
Dim
iPosSlash
As Integer
Dim
lVal
As Long
Dim
sYear
As String
iPosSlash =
InStr
(
1
, T_Num.Text,
"/"
)
If
iPosSlash =
0
Then
lVal =
0&
Else
lVal =
Val
(
Mid
$(T_Num.Text, iPosSlash +
1
))
End If
If
LeftB
$(sYear,
2
) =
"0"
Then
sYear =
RightB
$(sYear,
2
)
Donc ici en fait, il refuse et ne me met que RE8/0001 a chaque enregistrement.
Je me suis laissé dire que si je met un Data qui appel le dernier enregistrement et le fait afficher dans le T_Num puis rajoute 1 au 4 derniers caractères de gauche, ca pourait fonctionner. Mais cette fois, dans le load :
Private Sub Form_Load()
Dim sYear As String
sYear = Format$(Date, "YY")If LeftB$(sYear, 2) "0" Then sYear RightB$(sYear, 2)
Alors :
Il affiche le RE
Il recupère les derniers chiffres de l'année en ométant les 0
Il affiche le /
Il compact le RE + 8 + /
Il ajoute au dernier enregistrement un point (+1)
J'arrive ici donc avec recuperer le tout y compris le dernier enregistrement, mais une fois intégré du RE8/ il refuse de continuer le compteur.
Par contre si je supprime et laisse ceci :
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 20 juin 2008 à 23:37
j'me plainds qu'à moitié, me doutais bien que quand tu avais utilisé le terme "enregistrement" au tout départ çà nous cachait quelquechose...
cf : le Text1 soit supérieur d'un point du dernier enregistrement
ton "pseudo-bug" n'a rien à voir avec le moment d'execution (chargement ou LOAD)
si ta zone est attachée à un champ de DB (database) tout le reste est faussé...
pas plus compliqué
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Sinsitrus
Messages postés849Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention21 août 2015 25 juin 2008 à 02:20
Salut !
J'ai fais plus simple...
J'ai recuperer le RE8/ dans un textbox et le 0001 dans un second texte box et rassemblé le tout dans un troisième textbox
Tout les 3 enregistrés dans la BD, je peux utiliser dont le textbox 3 pour définir le numéro de mes Reçus.
Merci a tous pour ces codes importants, ils m'on vraiment servit et merci encore a toi PCPT pour ton aide. J'espère que tu m'excusera ^^