Autres Retour d'erreur SQL / Firebird

Bebabeloola

XLDnaute Nouveau
Bonjour.

J'utilise une macro sous Excel qui créée une requête Firebird (similaire à SQL) pour rechercher des produits dans une base de données selon plusieurs critères. En gros, les critères de la requetes sont générés en fonction des champs saisis sur Excel. La requete est assez lourde et possède des jointures de tables et de nombreux critères.
J'utilise la connexion suivante:
Dim cnnADO As New ADODB.Connection
Dim rc As New ADODB.Recordset

cnnADO.ConnectionString = "ODBC;DSN........"
If Not (cnnADO.State) Then cnnADO.Open

rc.Open ("SELECT ............."), cnnADO, adOpenDynamic, adLockOptimistic


On m'a remonté une erreur ce matin qui faisait planter VBA lors du lancement de la requete. Le message d'erreur était le suivant:
Ce pilote ODBC ne prend pas en charge les propriétés demandées..
Plutôt prise de tête car selon les critères utilisés (client, dimensions), la requete plantait ou pas.

Pour trouver la cause du problème, j'ai directement créé sous Excel une connexion à la source de données et copié le texte de ma requete. Cette fois-ci, le message d'erreur était bien plus explicite:
[ODBC Firebird Driver][Firebird]conversion error from string "0219.1. "
Ca m'a permis d'identifier rapidement l'origine du problème : un point en trop à la fin du champ

Ma question est la suivante: comment récupérer ce message d'erreur sous VBA ?

Merci
 

dysorthographie

XLDnaute Impliqué
Désolé mais il n'y a pas d'autres moyens de récupérer l'erreur !

Notes qu'Ado considère les points comme des séparateurs entre le différents termes de la base de données !
[MyServeur].[MyBase].[MyTable].[MyChamp]
Si tu as des champs avec des points il faut les substituer par de #
Champ.Date par Champ#Date
 
Dernière édition:

Bebabeloola

XLDnaute Nouveau
Je ne suis pas sûr de comprendre ta réponse, mais quoi qu'il en soit, ma requete fonctionne très bien dans l'immense majorité des cas. Je n'ai pas d'erreur de programmation mais une erreur de saisie utilisateur.
Pour les rares cas comme celui-ci où je rencontre une erreur difficilement prévisible, je souhaite obtenir le même message que lors d'une requete hors VBA.
 

Statistiques des forums

Discussions
294 412
Messages
1 938 343
Membres
188 785
dernier inscrit
michelle40000