Bonjour
Je m'arrache les cheveux depuis vendredi...
J'ai fait une application qui tourne maintenant depuis=20
environ 2 mois.
J'y apporte encore des am=E9liorations et des ajouts mais=20
dans l'ensemble, =E7a marche, enfin =E7a marchait...
Depuis vendredi, lorsque j'essaie de faire un nouveau bon=20
de commande j'ai une erreur '2486', 'impossible d'ex=E9cuter=20
cette action pour l'instant' qui bloque tout le programme,=20
qui m'oblige =E0 quitter Access (par ctrl+ctrl+del).
J'ai mis un point d'arr=EAt et ex=E9cut=E9 le code pas =E0 pas,=20
surprise dans ce cas l=E0 je n'ai pas de blocage...
J'ai mis le point d'arr=EAt =E0 diff=E9rentes endroits et en ai=20
d=E9duit que le blocage se produit lorsque j'appelle la=20
proc=E9dure suivante, mais o=F9 ? J'ai beau mettre des points=20
d'arr=EAt, tout se passe bien dans ce cas l=E0.
Function NouveauNum=E9ro(Pr=E9nom As String, NomC As String)
' Former un nouveau num=E9ro de commande
' Num=E9ro de commande =3D 'b' & 1i=E8re lettre pr=E9nom & 1i=E8re=20
lettre nom
' & ann=E9e en 2 caract=E8res & mois en 2 caract=E8res
' & num=E9rotation en 2 caract=E8res
Dim Ann=E9e, Mois, DernierNum, DernierMois, Num As String
Dim NumNum As Integer
Dim Rs, con As Object
Ann=E9e =3D Right(CStr(Year(Now)), 2)
Mois =3D CStr(Month(Now))
If Len(Mois) =3D 1 Then
Mois =3D "0" & Mois
End If
Set con =3D Application.CurrentProject.Connection
Set Rs =3D CreateObject("ADODB.Recordset")
Rs.Open "SELECT Max(Right(Boncommande.NummerBB,6)) AS=20
DernierBon FROM Boncommande", con, 1
DernierNum =3D Rs!DernierBon
DernierMois =3D Mid(DernierNum, 3, 2)
If DernierMois <> Mois Then
Num =3D "01"
Else
NumNum =3D CInt(Right(DernierNum, 2))
NumNum =3D NumNum + 1
Num =3D ""
If NumNum > 9 Then
Num =3D CStr(NumNum)
Else
Num =3D "0" & CStr(NumNum)
End If
End If
NouveauNum=E9ro =3D "b" & LCase(Left(Pr=E9nom, 1)) & LCase
(Left(NomC, 1)) _
& Ann=E9e & Mois & Num
Set con =3D Nothing
Set Rs =3D Nothing
End Function
J'esp=E8re avoir =E9t=E9 claire, mais je m'y perds.
Merci =E0 celui ou celle qui pourrait m'aider.
NB : J'ai v=E9rifi=E9 si un virus ne se cachait pas quelque=20
part, mais mon antivirus (=E0 jour) n'a rien trouv=E9.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour.
ta procédure me semble bien compliquée pour créer un nouveau numéro. pour créer un nouveau numéro, on utilise la fonction DMax sur une table et non un recordset. regarde sur la page: http://access.vba.free.fr/numauto_prsonnel.htm ainsi que : http://access.vba.free.fr/compteuralpha.htm ça devrait te donner des idées. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Myriam" a écrit dans le message de news: 27f301c4a9ed$1f44ea90$ Bonjour Je m'arrache les cheveux depuis vendredi... J'ai fait une application qui tourne maintenant depuis environ 2 mois. J'y apporte encore des améliorations et des ajouts mais dans l'ensemble, ça marche, enfin ça marchait... Depuis vendredi, lorsque j'essaie de faire un nouveau bon de commande j'ai une erreur '2486', 'impossible d'exécuter cette action pour l'instant' qui bloque tout le programme, qui m'oblige à quitter Access (par ctrl+ctrl+del). J'ai mis un point d'arrêt et exécuté le code pas à pas, surprise dans ce cas là je n'ai pas de blocage... J'ai mis le point d'arrêt à différentes endroits et en ai déduit que le blocage se produit lorsque j'appelle la procédure suivante, mais où ? J'ai beau mettre des points d'arrêt, tout se passe bien dans ce cas là.
Function NouveauNuméro(Prénom As String, NomC As String) ' Former un nouveau numéro de commande ' Numéro de commande = 'b' & 1ière lettre prénom & 1ière lettre nom ' & année en 2 caractères & mois en 2 caractères ' & numérotation en 2 caractères
Dim Année, Mois, DernierNum, DernierMois, Num As String Dim NumNum As Integer Dim Rs, con As Object Année = Right(CStr(Year(Now)), 2) Mois = CStr(Month(Now)) If Len(Mois) = 1 Then Mois = "0" & Mois End If Set con = Application.CurrentProject.Connection Set Rs = CreateObject("ADODB.Recordset") Rs.Open "SELECT Max(Right(Boncommande.NummerBB,6)) AS DernierBon FROM Boncommande", con, 1 DernierNum = Rs!DernierBon DernierMois = Mid(DernierNum, 3, 2) If DernierMois <> Mois Then Num = "01" Else NumNum = CInt(Right(DernierNum, 2)) NumNum = NumNum + 1 Num = "" If NumNum > 9 Then Num = CStr(NumNum) Else Num = "0" & CStr(NumNum) End If End If NouveauNuméro = "b" & LCase(Left(Prénom, 1)) & LCase (Left(NomC, 1)) _ & Année & Mois & Num Set con = Nothing Set Rs = Nothing End Function
J'espère avoir été claire, mais je m'y perds. Merci à celui ou celle qui pourrait m'aider. NB : J'ai vérifié si un virus ne se cachait pas quelque part, mais mon antivirus (à jour) n'a rien trouvé.
Myriam
Bonjour.
ta procédure me semble bien compliquée pour créer un nouveau numéro.
pour créer un nouveau numéro, on utilise la fonction DMax sur une table et
non un recordset.
regarde sur la page: http://access.vba.free.fr/numauto_prsonnel.htm
ainsi que : http://access.vba.free.fr/compteuralpha.htm
ça devrait te donner des idées.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Myriam" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 27f301c4a9ed$1f44ea90$a301280a@phx.gbl...
Bonjour
Je m'arrache les cheveux depuis vendredi...
J'ai fait une application qui tourne maintenant depuis
environ 2 mois.
J'y apporte encore des améliorations et des ajouts mais
dans l'ensemble, ça marche, enfin ça marchait...
Depuis vendredi, lorsque j'essaie de faire un nouveau bon
de commande j'ai une erreur '2486', 'impossible d'exécuter
cette action pour l'instant' qui bloque tout le programme,
qui m'oblige à quitter Access (par ctrl+ctrl+del).
J'ai mis un point d'arrêt et exécuté le code pas à pas,
surprise dans ce cas là je n'ai pas de blocage...
J'ai mis le point d'arrêt à différentes endroits et en ai
déduit que le blocage se produit lorsque j'appelle la
procédure suivante, mais où ? J'ai beau mettre des points
d'arrêt, tout se passe bien dans ce cas là.
Function NouveauNuméro(Prénom As String, NomC As String)
' Former un nouveau numéro de commande
' Numéro de commande = 'b' & 1ière lettre prénom & 1ière
lettre nom
' & année en 2 caractères & mois en 2 caractères
' & numérotation en 2 caractères
Dim Année, Mois, DernierNum, DernierMois, Num As String
Dim NumNum As Integer
Dim Rs, con As Object
Année = Right(CStr(Year(Now)), 2)
Mois = CStr(Month(Now))
If Len(Mois) = 1 Then
Mois = "0" & Mois
End If
Set con = Application.CurrentProject.Connection
Set Rs = CreateObject("ADODB.Recordset")
Rs.Open "SELECT Max(Right(Boncommande.NummerBB,6)) AS
DernierBon FROM Boncommande", con, 1
DernierNum = Rs!DernierBon
DernierMois = Mid(DernierNum, 3, 2)
If DernierMois <> Mois Then
Num = "01"
Else
NumNum = CInt(Right(DernierNum, 2))
NumNum = NumNum + 1
Num = ""
If NumNum > 9 Then
Num = CStr(NumNum)
Else
Num = "0" & CStr(NumNum)
End If
End If
NouveauNuméro = "b" & LCase(Left(Prénom, 1)) & LCase
(Left(NomC, 1)) _
& Année & Mois & Num
Set con = Nothing
Set Rs = Nothing
End Function
J'espère avoir été claire, mais je m'y perds.
Merci à celui ou celle qui pourrait m'aider.
NB : J'ai vérifié si un virus ne se cachait pas quelque
part, mais mon antivirus (à jour) n'a rien trouvé.
ta procédure me semble bien compliquée pour créer un nouveau numéro. pour créer un nouveau numéro, on utilise la fonction DMax sur une table et non un recordset. regarde sur la page: http://access.vba.free.fr/numauto_prsonnel.htm ainsi que : http://access.vba.free.fr/compteuralpha.htm ça devrait te donner des idées. -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Myriam" a écrit dans le message de news: 27f301c4a9ed$1f44ea90$ Bonjour Je m'arrache les cheveux depuis vendredi... J'ai fait une application qui tourne maintenant depuis environ 2 mois. J'y apporte encore des améliorations et des ajouts mais dans l'ensemble, ça marche, enfin ça marchait... Depuis vendredi, lorsque j'essaie de faire un nouveau bon de commande j'ai une erreur '2486', 'impossible d'exécuter cette action pour l'instant' qui bloque tout le programme, qui m'oblige à quitter Access (par ctrl+ctrl+del). J'ai mis un point d'arrêt et exécuté le code pas à pas, surprise dans ce cas là je n'ai pas de blocage... J'ai mis le point d'arrêt à différentes endroits et en ai déduit que le blocage se produit lorsque j'appelle la procédure suivante, mais où ? J'ai beau mettre des points d'arrêt, tout se passe bien dans ce cas là.
Function NouveauNuméro(Prénom As String, NomC As String) ' Former un nouveau numéro de commande ' Numéro de commande = 'b' & 1ière lettre prénom & 1ière lettre nom ' & année en 2 caractères & mois en 2 caractères ' & numérotation en 2 caractères
Dim Année, Mois, DernierNum, DernierMois, Num As String Dim NumNum As Integer Dim Rs, con As Object Année = Right(CStr(Year(Now)), 2) Mois = CStr(Month(Now)) If Len(Mois) = 1 Then Mois = "0" & Mois End If Set con = Application.CurrentProject.Connection Set Rs = CreateObject("ADODB.Recordset") Rs.Open "SELECT Max(Right(Boncommande.NummerBB,6)) AS DernierBon FROM Boncommande", con, 1 DernierNum = Rs!DernierBon DernierMois = Mid(DernierNum, 3, 2) If DernierMois <> Mois Then Num = "01" Else NumNum = CInt(Right(DernierNum, 2)) NumNum = NumNum + 1 Num = "" If NumNum > 9 Then Num = CStr(NumNum) Else Num = "0" & CStr(NumNum) End If End If NouveauNuméro = "b" & LCase(Left(Prénom, 1)) & LCase (Left(NomC, 1)) _ & Année & Mois & Num Set con = Nothing Set Rs = Nothing End Function
J'espère avoir été claire, mais je m'y perds. Merci à celui ou celle qui pourrait m'aider. NB : J'ai vérifié si un virus ne se cachait pas quelque part, mais mon antivirus (à jour) n'a rien trouvé.