J'ai une feuille de calcul Excel. Je me connecte à une base de données Access via ODBC. Quelque chose le long des lignes de:Comment utiliser Excel VBA pour extraire le champ Mémo de la base de données Access?
Set dbEng = CreateObject("DAO.DBEngine.40")
Set oWspc = dbEng.CreateWorkspace("ODBCWspc", "", "", dbUseODBC)
Set oConn = oWspc.OpenConnection("Connection", , True, "ODBC;DSN=CLIENTDB;")
Puis j'utilise une requête et récupère un ensemble de résultats pour obtenir des données de table.
Set oQuery = oConn.CreateQueryDef("tmpQuery")
oQuery.Sql = "SELECT idField, memoField FROM myTable"
Set oRs = oQuery.OpenRecordset
Le problème se pose maintenant. Mon champ est un dbMemo car la longueur maximale du contenu est de quelques centaines de caractères. Ce n'est pas si long, et en fait la valeur que je lis est seulement une douzaine de caractères. Mais Excel ne semble tout simplement pas capable de gérer le contenu du champ Mémo. Mon code ...
ActiveCell = oRs.Fields("memoField")
... donne erreur Erreur d'exécution '3146': ODBC - appel a échoué.
Des suggestions? Excel VBA peut-il réellement accéder aux données de champ de mémo? Ou est-ce juste complètement impossible. Je reçois exactement la même erreur de GetChunk. ... donne également une erreur Erreur d'exécution '3146': ODBC - l'appel a échoué.
La conversion à un champ de texte rend tout fonctionne bien. Cependant, certaines données sont tronquées à 255 caractères, ce qui signifie que cette solution n'est pas réalisable.
J'ai essayé CStr dès le début, pensant que c'était un problème avec la conversion, mais cela soulevait exactement la même erreur. Je vais essayer les deux autres options, merci. –