Syntaxe commande avec ADO

GG1712 Messages postés 2 Date d'inscription mercredi 11 janvier 2012 Statut Membre Dernière intervention 18 janvier 2012 - 17 janv. 2012 à 20:44
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 18 janv. 2012 à 14:02
Bonjour,
Je "bidouille" en dev. depuis un moment, absolument sans aucune compétence. En fait je récupère des sources que je "bricole" pour obtenir ce que je souhaite.
J'ai téléchargé des sources de programmes VB, qui fonctionnent très bien, mais rencontre un problème, je pense, assez simple pour un "pro" du développement.
Je souhaiterais dans la ligne de commande suivante, intégrer le nom de la table que j'ai récupéré ailleurs.
If Not IsNull(resultatADO![NomTable]) Then DNom = resultatADO![NomTable]
J'ai essayé :
NomTable ="NT"
If Not IsNull(resultatADO![+NomTable+]) Then DNom = resultatADO![+NomTable+]
If Not IsNull(resultatADO!["NomTable"]) Then DNom = resultatADO!["NomTable"]
If Not IsNull(resultatADO![+"NomTable"+]) Then DNom = resultatADO![+"NomTable"+]
mais rien ne fonctionne et l'erreur suivante se produit :
"Impossible de trouver l'objet dans la collection correspondant au nom ou à la référence ordinale demandée".
Je rame.
Quelqu'un peut il m'aider ?.

DGG007
(1ère participation a ce forum)

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
17 janv. 2012 à 20:54
Bonjour,

Comment charges-tu ton Recordset ?
As-tu regardé la propriété Fields ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
GG1712 Messages postés 2 Date d'inscription mercredi 11 janvier 2012 Statut Membre Dernière intervention 18 janvier 2012
18 janv. 2012 à 13:49
Merci de ta réponse.
Comme je te l'ai dit je suis une vraie "truffe" en programmation et j'utilise des sources, par ailleurs trouvées sur ce site, que je bidouille, sans ne rien y connaitre.
En fait dans celles que je reprend, il n'y a qu'un endroit ou je trouve Recorset.
Dim resultatADO As New ADODB.Recordset ' Résultat de la commande

Quant a resultatADO, je le retrouve dans la "procédure" de lecture de la base :

resultatADO.CursorLocation = adUseClient
resultatADO.CursorType = adOpenDynamic
resultatADO.LockType = adLockPessimistic
resultatADO.Open commandeADO
resultatADO.Sort = "Nom ASC"

'Message d'avertissement si la base est vide
If resultatADO.EOF = True Then
?.
End If

'Résultat compteur avec statusbar1
resultatADO.MoveLast

'Compteur_Fiche = resultatADO.RecordCount
NombreEnregistrements = resultatADO.RecordCount
Debug.Print "NombreEnregistrements :"; NombreEnregistrements

'Tri par Nom
resultatADO.Sort = "Nom ASC"

'Positionnement sur le premier enregistrement de la base
resultatADO.MoveFirst

'Récupération des données
While Not resultatADO.EOF

'Set itmx = ListView1.ListItems.Add(, , CStr(resultatADO!Nom))
'Debug.Print "Nom :"; CStr(resultatADO!Nom)

If Not IsNull(CStr(resultatADO!Nom)) Then DNom = CStr(resultatADO!Nom)
Debug.Print "DNom :"; DNom
?
resultatADO.MoveNext ' Passe à l'enregistrement suivant.

Quant a Fields (?), jamais utilisé dans le programme.

Je ne sais pas si tu pourras m'aider avec ca, mais comme je te l'ai dit je suis une grosse buse.


DGG007
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 janv. 2012 à 14:02
Bonjour,

Parcours la propriété Fields, tu verras qu'il y a une sous proprioété contenant le nom de la table pour chaque colonne sélectionnée.

Si tu veux passer par ! utilises les alias.
Select MaTabkle.MonChamp As MonAlias ...

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous