D'abord une br=E8ve description de mon cas. Grosso modo, sur=20
une feuille excel, je peux inscrire des param=E8tres (nom de=20
la BD, nom du sh=E9ma, nom de la table et crit=E8res de=20
s=E9lection). Quand je clique le bouton appropri=E9, celui-ci=20
d=E9clenche une macro vba qui lance une requ=EAte SQL selon=20
les param=E8tres sp=E9cifi=E9s et permet d'extraire les=20
enresistrements correspondants dans une autre feuille du=20
m=EAme classeur. Lorsque j'acc=E8de la feuille contenant les=20
enregistrments extraits, je peux modifier certains champs=20
d'un enregistrement et quand je clique sur le bouton=20
appropri=E9, celui-ci lance une macro ex=E9cutant un "update"=20
de l'enregistrement courant (celui sur lequel le curseur=20
est positionn=E9). Jusque l=E0, =E7=E0 fonctionne bien.
Mon probl=E8me est le suivant. J'ai un autre bouton qui=20
d=E9clenche une macro permettant de d=E9bouler l'ensemble des=20
enregistrements de la feuille. Le nombre d'enregistrements=20
est variable. Il peut y en avoir des dizaines, des=20
centaines ou des milliers. En fait, pour chaque ligne du=20
tableau, la macro fait un update dans la table DB2. Cela=20
fonctionne correctement jusqu'=E0 ce que j'obtienne le=20
message d'erreur suivant "SQL1040N Le nombre maximal=20
d'applications connectables =E0 la base de donn=E9es est d=E9j=E0 =20
atteint. SQLSTATE=3D57030" apr=E8s avoir trait=E9 environ 150=20
lignes. La documentation DB2 indique qu'il faut attendre=20
que des applications se disconnecte avant de continuer ?!
&@??!? En fait, la seule fa=E7on que j'aie trouv=E9 pour=20
contourner le probl=E8me pour l'instant consiste =E0 modifier=20
la macro pour traiter les 100 premi=E8res lignes, lancer la=20
macro, modifier la macro pour traiter les 100 lignes=20
suivantes, lancer la macro, et ainsi de suite jusqu'=E0 la=20
fin.=20
DB2 semble empiler les requ=EAtes (un update par ligne)=20
faite par excel avec la commande querytables. Peut-=EAtre=20
existe-t'il une commande ou fonction permettant de se=20
d=E9connecter de DB2 ou de vider la variable contenant la=20
pile. Comme vous pouvez le constater, je n'y connais pas=20
grand chose, c'est la premi=E8re fois qu'on me demande de=20
faire ce genre de manipulation entre Excel et DB2 et je=20
suis en mode exploratoire.
Quelqu'un aurait-il une solution =E0 me proposer? N'h=E9sitez=20
pas =E0 me sugg=E9rer une piste.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonsoir René R.
Il me semble qu'il manque quelque chose à ta description.
A ) Comment te connectes-tu à ta base de données ? ADO ? DAO ? Autrement ?
B ) Est-ce possible que tu puisses donner un aperçu de ton code... Si quelqu'un a des suggestions à te faire, ces dernières seront plus judicieuses !
C ) Toutes ces transactions se réalisent-elles à partir de documents situés sur le même PC, ou il y a-t-il une composante "réseau" lors de l'exécution du code ?
Salutations!
"René R." a écrit dans le message de news:0f8601c49b82$1a29d760$ Bonjour tout le monde,
D'abord une brève description de mon cas. Grosso modo, sur une feuille excel, je peux inscrire des paramètres (nom de la BD, nom du shéma, nom de la table et critères de sélection). Quand je clique le bouton approprié, celui-ci déclenche une macro vba qui lance une requête SQL selon les paramètres spécifiés et permet d'extraire les enresistrements correspondants dans une autre feuille du même classeur. Lorsque j'accède la feuille contenant les enregistrments extraits, je peux modifier certains champs d'un enregistrement et quand je clique sur le bouton approprié, celui-ci lance une macro exécutant un "update" de l'enregistrement courant (celui sur lequel le curseur est positionné). Jusque là, çà fonctionne bien.
Mon problème est le suivant. J'ai un autre bouton qui déclenche une macro permettant de débouler l'ensemble des enregistrements de la feuille. Le nombre d'enregistrements est variable. Il peut y en avoir des dizaines, des centaines ou des milliers. En fait, pour chaque ligne du tableau, la macro fait un update dans la table DB2. Cela fonctionne correctement jusqu'à ce que j'obtienne le message d'erreur suivant "SQL1040N Le nombre maximal d'applications connectables à la base de données est déjà atteint. SQLSTATEW030" après avoir traité environ 150 lignes. La documentation DB2 indique qu'il faut attendre que des applications se disconnecte avant de continuer ?! &@??!? En fait, la seule façon que j'aie trouvé pour contourner le problème pour l'instant consiste à modifier la macro pour traiter les 100 premières lignes, lancer la macro, modifier la macro pour traiter les 100 lignes suivantes, lancer la macro, et ainsi de suite jusqu'à la fin.
DB2 semble empiler les requêtes (un update par ligne) faite par excel avec la commande querytables. Peut-être existe-t'il une commande ou fonction permettant de se déconnecter de DB2 ou de vider la variable contenant la pile. Comme vous pouvez le constater, je n'y connais pas grand chose, c'est la première fois qu'on me demande de faire ce genre de manipulation entre Excel et DB2 et je suis en mode exploratoire.
Quelqu'un aurait-il une solution à me proposer? N'hésitez pas à me suggérer une piste.
Merci à l'avance.
Cordialement.
René R.
Bonsoir René R.
Il me semble qu'il manque quelque chose à ta description.
A ) Comment te connectes-tu à ta base de données ? ADO ? DAO ? Autrement ?
B ) Est-ce possible que tu puisses donner un aperçu de ton code... Si quelqu'un a des suggestions à te faire, ces
dernières seront plus judicieuses !
C ) Toutes ces transactions se réalisent-elles à partir de documents situés sur le même PC, ou il y a-t-il une
composante "réseau" lors de l'exécution du code ?
Salutations!
"René R." <renroy@hotmail.com> a écrit dans le message de news:0f8601c49b82$1a29d760$a401280a@phx.gbl...
Bonjour tout le monde,
D'abord une brève description de mon cas. Grosso modo, sur
une feuille excel, je peux inscrire des paramètres (nom de
la BD, nom du shéma, nom de la table et critères de
sélection). Quand je clique le bouton approprié, celui-ci
déclenche une macro vba qui lance une requête SQL selon
les paramètres spécifiés et permet d'extraire les
enresistrements correspondants dans une autre feuille du
même classeur. Lorsque j'accède la feuille contenant les
enregistrments extraits, je peux modifier certains champs
d'un enregistrement et quand je clique sur le bouton
approprié, celui-ci lance une macro exécutant un "update"
de l'enregistrement courant (celui sur lequel le curseur
est positionné). Jusque là, çà fonctionne bien.
Mon problème est le suivant. J'ai un autre bouton qui
déclenche une macro permettant de débouler l'ensemble des
enregistrements de la feuille. Le nombre d'enregistrements
est variable. Il peut y en avoir des dizaines, des
centaines ou des milliers. En fait, pour chaque ligne du
tableau, la macro fait un update dans la table DB2. Cela
fonctionne correctement jusqu'à ce que j'obtienne le
message d'erreur suivant "SQL1040N Le nombre maximal
d'applications connectables à la base de données est déjà
atteint. SQLSTATEW030" après avoir traité environ 150
lignes. La documentation DB2 indique qu'il faut attendre
que des applications se disconnecte avant de continuer ?!
&@??!? En fait, la seule façon que j'aie trouvé pour
contourner le problème pour l'instant consiste à modifier
la macro pour traiter les 100 premières lignes, lancer la
macro, modifier la macro pour traiter les 100 lignes
suivantes, lancer la macro, et ainsi de suite jusqu'à la
fin.
DB2 semble empiler les requêtes (un update par ligne)
faite par excel avec la commande querytables. Peut-être
existe-t'il une commande ou fonction permettant de se
déconnecter de DB2 ou de vider la variable contenant la
pile. Comme vous pouvez le constater, je n'y connais pas
grand chose, c'est la première fois qu'on me demande de
faire ce genre de manipulation entre Excel et DB2 et je
suis en mode exploratoire.
Quelqu'un aurait-il une solution à me proposer? N'hésitez
pas à me suggérer une piste.
Il me semble qu'il manque quelque chose à ta description.
A ) Comment te connectes-tu à ta base de données ? ADO ? DAO ? Autrement ?
B ) Est-ce possible que tu puisses donner un aperçu de ton code... Si quelqu'un a des suggestions à te faire, ces dernières seront plus judicieuses !
C ) Toutes ces transactions se réalisent-elles à partir de documents situés sur le même PC, ou il y a-t-il une composante "réseau" lors de l'exécution du code ?
Salutations!
"René R." a écrit dans le message de news:0f8601c49b82$1a29d760$ Bonjour tout le monde,
D'abord une brève description de mon cas. Grosso modo, sur une feuille excel, je peux inscrire des paramètres (nom de la BD, nom du shéma, nom de la table et critères de sélection). Quand je clique le bouton approprié, celui-ci déclenche une macro vba qui lance une requête SQL selon les paramètres spécifiés et permet d'extraire les enresistrements correspondants dans une autre feuille du même classeur. Lorsque j'accède la feuille contenant les enregistrments extraits, je peux modifier certains champs d'un enregistrement et quand je clique sur le bouton approprié, celui-ci lance une macro exécutant un "update" de l'enregistrement courant (celui sur lequel le curseur est positionné). Jusque là, çà fonctionne bien.
Mon problème est le suivant. J'ai un autre bouton qui déclenche une macro permettant de débouler l'ensemble des enregistrements de la feuille. Le nombre d'enregistrements est variable. Il peut y en avoir des dizaines, des centaines ou des milliers. En fait, pour chaque ligne du tableau, la macro fait un update dans la table DB2. Cela fonctionne correctement jusqu'à ce que j'obtienne le message d'erreur suivant "SQL1040N Le nombre maximal d'applications connectables à la base de données est déjà atteint. SQLSTATEW030" après avoir traité environ 150 lignes. La documentation DB2 indique qu'il faut attendre que des applications se disconnecte avant de continuer ?! &@??!? En fait, la seule façon que j'aie trouvé pour contourner le problème pour l'instant consiste à modifier la macro pour traiter les 100 premières lignes, lancer la macro, modifier la macro pour traiter les 100 lignes suivantes, lancer la macro, et ainsi de suite jusqu'à la fin.
DB2 semble empiler les requêtes (un update par ligne) faite par excel avec la commande querytables. Peut-être existe-t'il une commande ou fonction permettant de se déconnecter de DB2 ou de vider la variable contenant la pile. Comme vous pouvez le constater, je n'y connais pas grand chose, c'est la première fois qu'on me demande de faire ce genre de manipulation entre Excel et DB2 et je suis en mode exploratoire.
Quelqu'un aurait-il une solution à me proposer? N'hésitez pas à me suggérer une piste.