OVH Cloud OVH Cloud

pb code client

8 réponses
Avatar
ls
Bonjour, je suis allée faire un tour sur MFPA pour voir comment creer un
numéro de "famille utomatique"

J'ai trouvé un code que j'ai essayé d'adapter à ma base mais cela ne
fonctionne pas . Pourriez vous me dire où cela cloche svp . Merci

Table = Parents
champ n° famille= Parents_Code_Famille
champ nom = Parents_Nom_Parent1



Private Sub Parents_Code_Famille_GotFocus()
Numéro = Format(Left(DLast("Parents_Code_Famille", "Parents"), 4) + 1,
"0000") & Me.Parents_Nom_Parent1
End Sub

8 réponses

Avatar
Raymond [mvp]
Bonjour.

Il faut utiliser DMax et non DLast pour être sûr d'avoir le numéro maximum.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ls" a écrit dans le message de
news:40278a3e$0$28152$
Bonjour, je suis allée faire un tour sur MFPA pour voir comment creer un
numéro de "famille utomatique"

J'ai trouvé un code que j'ai essayé d'adapter à ma base mais cela ne
fonctionne pas . Pourriez vous me dire où cela cloche svp . Merci

Table = Parents
champ n° famille= Parents_Code_Famille
champ nom = Parents_Nom_Parent1



Private Sub Parents_Code_Famille_GotFocus()
Numéro = Format(Left(DLast("Parents_Code_Famille", "Parents"), 4) + 1,
"0000") & Me.Parents_Nom_Parent1
End Sub




Avatar
ls
Même en changeant dlast par dmax il n'y a aucun chagement, j'obtiens 0 :-(


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

Il faut utiliser DMax et non DLast pour être sûr d'avoir le numéro
maximum.


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ls" a écrit dans le message de
news:40278a3e$0$28152$
Bonjour, je suis allée faire un tour sur MFPA pour voir comment creer un
numéro de "famille utomatique"

J'ai trouvé un code que j'ai essayé d'adapter à ma base mais cela ne
fonctionne pas . Pourriez vous me dire où cela cloche svp . Merci

Table = Parents
champ n° famille= Parents_Code_Famille
champ nom = Parents_Nom_Parent1



Private Sub Parents_Code_Famille_GotFocus()
Numéro = Format(Left(DLast("Parents_Code_Famille", "Parents"), 4) + 1,
"0000") & Me.Parents_Nom_Parent1
End Sub








Avatar
Raymond [mvp]
tu n'as pas de message d'erreur ? tu devrais obtenir au moins 0000 au lieu
de 0.

as-tu décomposé ta fonction pour vérifier ? on ne peut pas voir grand chose
comme ça. les déclarations de variables et champs sont-elles bonnes ?
numéro est-il bien en string ?
essaie avec ceci:
Numéro = Format(val(Left(DLast("Parents_Code_Famille", "Parents"), 4)) + 1,
......

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ls" a écrit dans le message de
news:4027928d$0$28171$
Même en changeant dlast par dmax il n'y a aucun chagement, j'obtiens 0 :-(


Avatar
ls
Vu que malgré la bonne volonté des mebres de ce forum, je ne comprends pas
ce qui se passe,

Je repose ma question différemment:

J'ai un formulaire F_Parents dans lequel j'ai tous mes champs de la table
parents dont :
Parents_Nom_Parent1
Parents_Code_Famille

J'aimerai que lorsque je rentre le nom de famille, access me créee
automatiquement un "code famille" qui comprend le nom de famille + chiffre
de façon à pouvoir avoir plusieurs personnes du même nom.

Comment dois-je m'y prendre sachant que je ne suis pas un pro d'access ?

(ps: raymond avec ton code j'obtiens un utilisation incorrecte de null)

"Raymond [mvp]" a écrit dans le message de
news:%
tu n'as pas de message d'erreur ? tu devrais obtenir au moins 0000 au lieu
de 0.

as-tu décomposé ta fonction pour vérifier ? on ne peut pas voir grand
chose

comme ça. les déclarations de variables et champs sont-elles bonnes ?
numéro est-il bien en string ?
essaie avec ceci:
Numéro = Format(val(Left(DLast("Parents_Code_Famille", "Parents"), 4)) +
1,

......

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ls" a écrit dans le message de
news:4027928d$0$28171$
Même en changeant dlast par dmax il n'y a aucun chagement, j'obtiens 0
:-(







Avatar
Raymond [mvp]
Sur ton message initial tu indiquais :
Numéro = Format(Left(DLast("Parents_Code_Famille", "Parents"), 4) + 1,
"0000") & Me.Parents_Nom_Parent1

sur ce dernier message tu indiques : qui comprend le nom de famille +
chiffre
c'est exactement le contraire, et ce n'est pas du tout la même procédure, et
c'est normal que ma proposition ne fonctionne pas.
quelle est la bonne numérotation ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ls" a écrit dans le message de
news:40279cec$0$28939$
Vu que malgré la bonne volonté des mebres de ce forum, je ne comprends pas
ce qui se passe,

Je repose ma question différemment:

J'ai un formulaire F_Parents dans lequel j'ai tous mes champs de la table
parents dont :
Parents_Nom_Parent1
Parents_Code_Famille

J'aimerai que lorsque je rentre le nom de famille, access me créee
automatiquement un "code famille" qui comprend le nom de famille + chiffre
de façon à pouvoir avoir plusieurs personnes du même nom.

Comment dois-je m'y prendre sachant que je ne suis pas un pro d'access ?

(ps: raymond avec ton code j'obtiens un utilisation incorrecte de null)



Avatar
ls
Oups je fatigue. Désolé Raymond! en fait peut m'inporte
que ce soit 0001abcdefg ou abcdefg...0001 cela ne me pose pas de pb ...
Pendant ce tps j'essayais de regarder ce que tu m'as envoyé en mettant :
Parents_Code_Famille = Format(Val(Left(DLast("Parents_Nom_Parent1",
"Parents"), 4)) + 1, "0000")
j'obtiens 1 à chaque fois il ne prend ni le nom ni n'incremente le "code
famille"

Là je rame grave.


"Raymond [mvp]" a écrit dans le message de
news:
Sur ton message initial tu indiquais :
Numéro = Format(Left(DLast("Parents_Code_Famille", "Parents"), 4) + 1,
"0000") & Me.Parents_Nom_Parent1

sur ce dernier message tu indiques : qui comprend le nom de famille +
chiffre
c'est exactement le contraire, et ce n'est pas du tout la même procédure,
et

c'est normal que ma proposition ne fonctionne pas.
quelle est la bonne numérotation ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ls" a écrit dans le message de
news:40279cec$0$28939$
Vu que malgré la bonne volonté des mebres de ce forum, je ne comprends
pas


ce qui se passe,

Je repose ma question différemment:

J'ai un formulaire F_Parents dans lequel j'ai tous mes champs de la
table


parents dont :
Parents_Nom_Parent1
Parents_Code_Famille

J'aimerai que lorsque je rentre le nom de famille, access me créee
automatiquement un "code famille" qui comprend le nom de famille +
chiffre


de façon à pouvoir avoir plusieurs personnes du même nom.

Comment dois-je m'y prendre sachant que je ne suis pas un pro d'access ?

(ps: raymond avec ton code j'obtiens un utilisation incorrecte de null)







Avatar
Raymond [mvp]
Tu m'envoies ton formulaire avec le minimum de choses autour pour tourner
( en zip obligatoire) par mail en enlevant XYZ. de devant.
auparavent, regarde la base exemple de numérotation de facture qui est de
même structure à l'adresse :
http://access.seneque.free.fr/telecharger/numerofacture.zip

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"ls" a écrit dans le message de
news:4027a355$0$28923$
Oups je fatigue. Désolé Raymond! en fait peut m'inporte
que ce soit 0001abcdefg ou abcdefg...0001 cela ne me pose pas de pb ...
Pendant ce tps j'essayais de regarder ce que tu m'as envoyé en mettant :
Parents_Code_Famille = Format(Val(Left(DLast("Parents_Nom_Parent1",
"Parents"), 4)) + 1, "0000")
j'obtiens 1 à chaque fois il ne prend ni le nom ni n'incremente le "code
famille"

Là je rame grave.


Avatar
Eric
Bonjour,

Tiens un petit bout de code qui devrait résoudre ton
problème :

Private Sub Parents_Nom_Parent1_AfterUpdate()
Dim temp As String, temp2 As Integer
On Error GoTo TraitementErreur
temp = DMax
("[Parents_Code_Famille]", "Parents", "Parents_Nom_Parent1=
'" & Parents_Nom_Parent1 & "'")
If Err.Number <> 94 Then ' 94 correspond à Utilisation
incorrecte de Null
' car pour le 1er d'une
famille il n'y a pas de n° affecté
temp2 = Val(Right(temp, 4)) + 1
End If
Parents_Code_Famille = Parents_Nom_Parent1 & Format
(temp2, "0000")
' .... suite du traitement
Exit Sub
TraitementErreur:
' à modifier en fonction des autres erreurs pouvant
apparaitre
If Err.Number = 94 Then
temp2 = 1
Resume Next
Else
' ...
End If
End Sub

Attention: le codage est limite car si 2 personnes
homonymes mais n'appartenant pas à la même famille ? Enfin
je n'ai peut-être pas toutes les données du problème.

A+
-----Message d'origine-----


Là je rame grave.