OVH Cloud OVH Cloud

sql.request et matrices

2 réponses
Avatar
Christophe Cerbourg
Bonjour,

J'utilise sql.request pour visualiser des données externes et ça fonctionne
plutôt bien, sauf... que je ne récupère le résultat que dans 1 seule
cellule, celle où j'ai tapé ceci :
=SQL.REQUEST("DSN=ODBCIB;UID=SYSDBA;PWD=xxx";;;"select * from MaTable";1)

Voilà ce que je lis dans l'aide :
Notes

a.. La fonction SQL.REQUEST peut être entrée sous forme de matrice. Dans
ce cas, elle renvoie une matrice qui s'adapte à cette plage.
b.. Si la plage de cellules est plus grande que l'ensemble de résultats,
la fonction SQL.REQUEST ajoute des cellules vides à la matrice renvoyée pour
qu'elle atteigne la taille nécessaire.
c.. Si l'ensemble de résultats est plus grand que la plage entrée sous
forme matricielle, la fonction renvoie la matrice complète.
Seul problème, mais de taille : je ne sais pas ce qu'est une matrice et ne
comprends donc rien à ces 3 paragraphes.

En clair, la requête SQL renvoie un nombre inconnu de colonnes et de lignes
et je voudrais simplement tout avoir, que le coin haut gauche des données
soit ma cellule et que le reste s'affiche à partir de là.

Merci pour votre aide !

2 réponses

Avatar
Pierre Jagut
Bonjour,

Je ne connais pas cette fonction SQL.REQUEST.
Par contre, les formules matricielles sont des formules qui s'appliquent à
plusieurs cellules. Pour les valider, tu sélectionnes la plage, tu saisis ta
formule dans la cellule en haut à gauche, et il faut taper
"Ctrl+Shift+Entrée" en fin de saisie. La formule s'entoure alors d'acollades
({}).
Si tu ne connais pas la taille du résultat de ta requête, le mieux est de
sélectionner une très grand taille. Je ne sais pas si une formule pourrait
s'appliquer à toute une feuille, mais pourquoi pas. Cela risque cependant
d'être très long en traitement si Excel s'amuse à remplir toute la feuille
(60000 lignes x 256 colonnes je crois...).

J'espère que cela te permettra d'avancer.
Pierre.

"Christophe Cerbourg" a écrit dans le
message de news:
Bonjour,

J'utilise sql.request pour visualiser des données externes et ça
fonctionne

plutôt bien, sauf... que je ne récupère le résultat que dans 1 seule
cellule, celle où j'ai tapé ceci :
=SQL.REQUEST("DSN=ODBCIB;UID=SYSDBA;PWD=xxx";;;"select * from MaTable";1)

Voilà ce que je lis dans l'aide :
Notes

a.. La fonction SQL.REQUEST peut être entrée sous forme de matrice. Dans
ce cas, elle renvoie une matrice qui s'adapte à cette plage.
b.. Si la plage de cellules est plus grande que l'ensemble de résultats,
la fonction SQL.REQUEST ajoute des cellules vides à la matrice renvoyée
pour

qu'elle atteigne la taille nécessaire.
c.. Si l'ensemble de résultats est plus grand que la plage entrée sous
forme matricielle, la fonction renvoie la matrice complète.
Seul problème, mais de taille : je ne sais pas ce qu'est une matrice et ne
comprends donc rien à ces 3 paragraphes.

En clair, la requête SQL renvoie un nombre inconnu de colonnes et de
lignes

et je voudrais simplement tout avoir, que le coin haut gauche des données
soit ma cellule et que le reste s'affiche à partir de là.

Merci pour votre aide !




Avatar
Christophe Cerbourg
ok merci, j'ai compris le principe (pas du tout adapté pour cette fonction,
donc...)

Tu as raison aussi pour la lenteur : je vais encore creuser un peu la
question.