J'ai l'impression que la connection ne se fait pas comme il faudrait,
pourtant j'ai rajouté les deux lignes de connection de dbCompta pour vous
car
moi elle sont dans une autre procedure et dbCompta est public
en remplacant dbCompta par currentdb ca marche (a condition de mettre la
table Ecriture dans la base qui contient le code bien sur)
cette connection a deja servi dans une autre procedure et a fonctionné sans
probleme pourtant :(
voici mon code
Function TrouverNumPiece()
Dim rstNumPiece As Recordset
Dim SQLNumPiece As String
strCheminCompta = "C:\Compta.mdb"
Set dbCompta = Workspaces(0).OpenDatabase(strCheminCompta, False, False)
'ouverture de la base
SQLNumPiece = "SELECT Ecritures.NumeroPiece FROM Ecritures WHERE
(((Ecritures.NumeroPiece)=DMax(" & """Ccur(NumeroPiece)""" & "," &
"""Ecritures""" & "," & """Not IsNull(NumeroPiece) And Not NumeroPiece =" &
" ' ' " & """)));"
Debug.Print SQLNumPiece
Set rstNumPiece = dbCompta.OpenRecordset(SQLNumPiece) 'je mets le resultat
dans rstNumPiece
TrouverNumPiece = rstNumPiece!NumeroPiece 'c'est le plus grand numero de
piece existant
End Function
Si je remplace
Set rstNumPiece = dbCompta.OpenRecordset(SQLNumPiece)
par
Set rstNumPiece = CurrentDb.OpenRecordset(SQLNumPiece)
ca marche
J'avoue ne pas comprendre pourquoi cela ne marche pas si vous pouviez
m'aider
c'est pas que la requete ne renvoie pas de données mais quelle n'a pas le champ NumeroPiece plutot non ?
"Rv" a écrit dans le message de news:
Désolé pour le post précédent. Un cic intempestif! Apparement la requête ne renvoie pas de données. Il faut tester le rstNumPiece.EOF pour en être sûr. if rstNumPiece .EOF then ' Pas d'enregistrement ... else TrouverNumPiece = rstNumPiece!NumeroPiece end if A ta place j'afficherai la requête avec un debug.print puis je ferais un copier coller du texte ainsi affiché dans une requete SQL DIRECT de la base
des écritures pour tester et corriger. Puis quand ça marche, un copier coller dans ton application du texte de la requête!
A+
Rv
"mumu" a écrit dans le message de news:
Ca a l'air de passer j'avais des erreurs de syntaxes et en le refaisant
ca
a
passé sans erreurs mais comment je recupere le nombre le plus grand ?
SQLNumeroPiece = "SELECT Max(Ecritures.NumeroPiece) FROM Ecritures WHERE
(( Not IsNull(NumeroPiece) And Not NumeroPiece =" & """' '""" & "));"
Set rstNumPiece = dbCompta.OpenRecordset(SQLNumeroPiece)
TrouverNumPiece = rstNumPiece!NumeroPiece
A la derniere ligne il me dit que l'element n'est pas trouvé dans la colection La solution ne doit pas etre bien loin mais je trouve pas
Mumu
Tout a fait :
TrouverNumPiece = rstNumPiece(0)
Bonne soirée pour de bon!
Rv
"mumu" <XYZmurenne@hotmail.com> a écrit dans le message de
news:u3T48p0vDHA.556@TK2MSFTNGP11.phx.gbl...
c'est pas que la requete ne renvoie pas de données
mais quelle n'a pas le champ NumeroPiece plutot non ?
"Rv" <herve.pinardPASDESPAM@free.fr> a écrit dans le message de
news:usgL2i0vDHA.2492@TK2MSFTNGP12.phx.gbl...
Désolé pour le post précédent. Un cic intempestif!
Apparement la requête ne renvoie pas de données. Il faut tester le
rstNumPiece.EOF pour en être sûr.
if rstNumPiece .EOF then
' Pas d'enregistrement
...
else
TrouverNumPiece = rstNumPiece!NumeroPiece
end if
A ta place j'afficherai la requête avec un debug.print puis je ferais un
copier coller du texte ainsi affiché dans une requete SQL DIRECT de la
base
des écritures pour tester et corriger. Puis quand ça marche, un copier
coller dans ton application du texte de la requête!
A+
Rv
"mumu" <XYZmurenne@hotmail.com> a écrit dans le message de
news:eXIcqB0vDHA.2448@TK2MSFTNGP09.phx.gbl...
Ca a l'air de passer j'avais des erreurs de syntaxes et en le
refaisant
ca
a
passé sans erreurs
mais comment je recupere le nombre le plus grand ?
SQLNumeroPiece = "SELECT Max(Ecritures.NumeroPiece) FROM Ecritures
WHERE
(( Not IsNull(NumeroPiece) And Not NumeroPiece =" & """' '""" & "));"
Set rstNumPiece = dbCompta.OpenRecordset(SQLNumeroPiece)
TrouverNumPiece = rstNumPiece!NumeroPiece
A la derniere ligne il me dit que l'element n'est pas trouvé dans la
colection
La solution ne doit pas etre bien loin mais je trouve pas
c'est pas que la requete ne renvoie pas de données mais quelle n'a pas le champ NumeroPiece plutot non ?
"Rv" a écrit dans le message de news:
Désolé pour le post précédent. Un cic intempestif! Apparement la requête ne renvoie pas de données. Il faut tester le rstNumPiece.EOF pour en être sûr. if rstNumPiece .EOF then ' Pas d'enregistrement ... else TrouverNumPiece = rstNumPiece!NumeroPiece end if A ta place j'afficherai la requête avec un debug.print puis je ferais un copier coller du texte ainsi affiché dans une requete SQL DIRECT de la base
des écritures pour tester et corriger. Puis quand ça marche, un copier coller dans ton application du texte de la requête!
A+
Rv
"mumu" a écrit dans le message de news:
Ca a l'air de passer j'avais des erreurs de syntaxes et en le refaisant
ca
a
passé sans erreurs mais comment je recupere le nombre le plus grand ?
SQLNumeroPiece = "SELECT Max(Ecritures.NumeroPiece) FROM Ecritures WHERE
(( Not IsNull(NumeroPiece) And Not NumeroPiece =" & """' '""" & "));"
Set rstNumPiece = dbCompta.OpenRecordset(SQLNumeroPiece)
TrouverNumPiece = rstNumPiece!NumeroPiece
A la derniere ligne il me dit que l'element n'est pas trouvé dans la colection La solution ne doit pas etre bien loin mais je trouve pas