Pb de requete avec access

Résolu
damiendu56 Messages postés 51 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 juillet 2006 - 3 mai 2005 à 13:54
cs_pjour Messages postés 4 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 5 août 2005 - 4 déc. 2005 à 16:17
Bonjour, g un pb avec ma partie de code en gras ci-dessous, en fait je veux recuperer le numero le plus gran de mon champ 'Identifiant'. la requete a l'air de passer mais quan je fai " i = rst![Identifiant] " , ca menvoi une erreur "impossible de trouver l'objet dans la collection correspondant au nom ou a la réference ordinale demandé"

Le code :

Dim cnx As New ADODB.Connection
cnx.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\bd1.mdb"
Dim rst As New ADODB.Recordset
rst.Open "SELECT Max(Identifiant) FROM stockPal", cnx, adOpenDynamic, adLockOptimistic
rst.MoveFirst
Dim i As Integer
i = rst![Identifiant]
rst.Close
rst.Open "SELECT * FROM stockPal", cnx, adOpenDynamic, adLockOptimistic
rst.AddNew
rst![Identifiant] = txtIdentifiant.Text
rst![Cod_Pal] = listCod_Pal.Text
rst![NbColis] = listNbColis.Text
rst.Update
rst.Close
cnx.Close

Merci davance ...

5 réponses

alexsimps2002 Messages postés 91 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 22 juillet 2006 4
3 mai 2005 à 14:30
Salut,
le fait de faire un max te crée une expression, c pour ça qu'il l'appelle expr1000. Si tu veux le modifier, tu fais select max(identifiant) as Identifiant from .... et ça marchera quand tu fera rst![Identifiant].
Voila, c pas plus compliqué que ça

Alexsimps
La vie ne vaut rien mais rien ne vaut la vie
3
damiendu56 Messages postés 51 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 juillet 2006 1
3 mai 2005 à 14:24
nan ca marche pas meme en rajoutant ca. en fait g trouvé . g tapé ma requete directement sous access, la requete est bonne mais la valeur maximale recuperee n'est pas stockée dans un champ " Identifiant " mais dans un champ " Expr1000 ".

Donc apres ca marche quand je fais :
" i rst![Expr1000] " au lieu de " i rst![Identifiant] "

Donc quelqun peu mexpliquer pourqoi ca stock dan un champ " Expr1000 " ????????????
1
colibrialuile Messages postés 25 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 3 mai 2005
3 mai 2005 à 14:11
c'est tout bete il fau mettre Microsoft Excel 9.0 object library en intermediaire
0
damiendu56 Messages postés 51 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 juillet 2006 1
3 mai 2005 à 14:34
ok, en effet c tout simple et ca marrange autant de retrouver le resultat dans un champ "Identifiant" plutot que dans un champ "Expr1000" . Merci bocou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pjour Messages postés 4 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 5 août 2005
4 déc. 2005 à 16:17
bjr, je veux effectuer une modification dans une base access à travers mon appli vb.
J'effectue déjà une insertion sans pb.

pour la modif, je souhaiterai coder de la façon suivante:

1/ on dblclick sur le champ afficher pour ouvrir une nouvelle forme avec le contenu des zones à modifier. L'opération fonctionne, l'erreur arrive avec la connection à la base
2/ on modifie et on update.
J'ai codé la connection à la base access dans le form_load de la form à afficher qui servira à modifier le champ. J'ai le code suivant:

Set cnmodifMaDb1 = New ADODB.Connection
Set rsmodifMaDb1 = New ADODB.Recordset
Set rsmodifMaDb1 = New ADODB.Recordset
MamodifDb1 = "C:\projetvbcourrier\courrier.mdb"
' construction de la chaîne de connection
cnmodifStr1 = "driver={Microsoft Access Driver (*.mdb)};dbq=" & MamodifDb1
' ouverture de la base de données avec cette connexion
cnmodifMaDb1.Open cnmodifStr1
' ouverture du recordset avec la requête SQL intégrée
' rsMaDb.Open "SELECT max(COMPTEUR) as maxcompteur ,compteur,NOM,PRENOM,APPARTEMENT,ARCHIVE,ETAGE,DATECREATION FROM courrier group by nom,prenom,appartement,etage,archive,datecreation,compteur;", cnMaDb, adOpenKeyset, adLockBatchOptimistic
' MsgBox varcompteur
rsmodifMaDb1.Open "SELECT compteur, nom, prenom FROM courrier where compteur like '" & varcompteur & "' ;, cnmodifMaDb1, adOpenKeyset, adLockBatchOptimistic"
à l'éxécution j'ai l'erreur '3709'
impossible d'effectuer cette connexionpour effectuer cette opération. Elle est fermée ou non valide dans ce contexte.
Une idée ?
Merci.
0
Rejoignez-nous