Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme connection en DAO

21 réponses
Avatar
mumu
bonjour

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

merci beaucoup

Mumu

1 réponse

1 2 3
Avatar
Rv
Tout a fait :
TrouverNumPiece = rstNumPiece(0)

Bonne soirée pour de bon!

Rv

"mumu" a écrit dans le message de
news:
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










1 2 3