2016-12-12 10 views
-2

私はストアドプロシージャを実行して、サーバからデータを取得するのに約10〜15分かかります。ストアドプロシージャを実行している間、すべてのデータが返されるまで、Excelブックはフリーズします。 Excelブックを実行可能にしながら、このストアドプロシージャをバックグラウンドで実行するオプションがあります。このアイデアは、ワークシートを見るだけで10〜15分待つのではなく、データを取得しながらワークブックで作業する可能性をユーザーに与えることです。バックグラウンドで実行されているストアドプロシージャ?

私の質問:他のアプリケーションでこれまで考えたことはありません。これが良い練習基準を意味するかどうかはわかりません。同じワークブックで作業中にデータベースをロードし、データが終了すると、すべてのデータが到着したことをユーザーに警告します。

あなたはどう思いますか?これが他のことを複雑にする可能性があると思いますか?

私は本当にアイデアが好きではありませんが、ユーザーが10〜15分を失うことはありません。

はあなたのすべてをありがとう:)

+0

あなたの質問は何ですか?なぜそれを解決するために 'VBA 'が必要なのですか? –

+0

VBAは私の作業言語です。 VBAを使用してストアドプロシージャを呼び出し、VBAを使用してデータを操作します。質問は、ストアプロシージャを呼び出す、データを待っている間にワークブックで作業させたり、取得プロセスが完了したら、ユーザーがデータを操作するためにやっていたことをやりなおしたり。 –

+0

http://stackoverflow.com/help/dont-ask –

答えて

0

あなたはExcelアプリケーションのインスタンスを作成し、そこにあなたのstpred手順を実行する必要があります。その場合、あなたのExcelアプリケーションは引き続き利用可能になりますが、遅くなることを期待しています。あなたは、Excelアプリケーションの新しいインスタンスの下で実行するように、あなたのVBAのコードを変更する必要があります。

ので、ここで自分のものを行うには、あなたが今、複数のアクティブなアプリケーションを持っているので、あまりにもアプリケーションを言及する必要があり後
dim xlApp as Excel.Application 
set xlApp=New Excel.Application 

。あなたがどうなる新しいブックを作成するために、たとえば:

xlApp.Workbooks.Add 

私は、あなたはおそらくFILE]タブからOPEN使用して、VBAのコードが含まれているブックを開いて、あなたのコードを実行し、手動でエクセルの新しいインスタンスを開くことができると思いますこの場合、デフォルトのExcelアプリケーションがユーザーが使用できるようになります。 Excelの新しいインスタンスを開くにはSHIFTキーを押したままExcelアプリケーションアイコンをクリックしてください(スタートメニューまたはデスクトップなどで、どこにファイルがあるのか​​わからない場合は、Windowsのスタートメニューと検索EXCELに移動してください)

希望します。

関連する問題