Syntaxe commande avec ADO

Signaler
Messages postés
2
Date d'inscription
mercredi 11 janvier 2012
Statut
Membre
Dernière intervention
18 janvier 2012
-
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
-
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

Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
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
Messages postés
2
Date d'inscription
mercredi 11 janvier 2012
Statut
Membre
Dernière intervention
18 janvier 2012

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
Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
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