Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


419 / 2272 ツリー ←次へ | 前へ→

【11778】進行状況インジケータについて Masato/S 10/9/23(木) 20:57 質問[未読]
【11782】Re:進行状況インジケータについて YU-TANG 10/9/24(金) 17:16 回答[未読]
【11785】Re:進行状況インジケータについて Masato/S 10/9/27(月) 11:43 質問[未読]
【11786】Re:進行状況インジケータについて 10/9/27(月) 13:05 回答[未読]
【11788】Re:進行状況インジケータについて Masato/S 10/9/27(月) 15:44 質問[未読]
【11790】Re:進行状況インジケータについて 10/9/27(月) 17:02 回答[未読]
【11795】Re:進行状況インジケータについて Masato/S 10/9/28(火) 21:24 質問[未読]
【11796】Re:進行状況インジケータについて 10/9/29(水) 10:27 回答[未読]
【11798】Re:進行状況インジケータについて Masato/S 10/9/29(水) 16:42 質問[未読]
【11799】Re:進行状況インジケータについて 10/9/29(水) 17:27 発言[未読]
【11815】Re:進行状況インジケータについて Masato/S 10/10/18(月) 21:50 質問[未読]

【11778】進行状況インジケータについて
質問  Masato/S  - 10/9/23(木) 20:57 -

引用なし
パスワード
    連続処理を実行するとき、どこまで進んでいるかを把握するため、進行状況インジケータをつかいたくて、以下のコードを見つかり、実際動いてみました。
特に問題ありませんが、"ただいま処理中", cintRecMaxは、点滅状態になっている
ため、表示内容はわからない。
点滅させない方法は、あるのでしょうか?
ご伝授ください。


-------------------------------------------------------------------------
Dim iintLoop As Integer
  Dim varRet As Variant
  Const cintRecMax As Integer = 1000  'ここでは1000件のデータを処理するとします。

  '進行状況インジケータを初期化します。
  varRet = SysCmd(acSysCmdInitMeter, "ただいま処理中", cintRecMax)

  '実際の処理ループです。
  For iintLoop = 1 To cintRecMax
   '
   'ここで1件についての処理を行います。
   '
   '進行状況インジケータをカウントアップした値に更新します。
   varRet = SysCmd(acSysCmdUpdateMeter, iintLoop)
  Next iintLoop
 
  '進行状況インジケータを消去します。
  varRet = SysCmd(acSysCmdRemoveMeter)
--------------------------------------------------------------------------

【11782】Re:進行状況インジケータについて
回答  YU-TANG  - 10/9/24(金) 17:16 -

引用なし
パスワード
   1000 件の空ループなど一瞬で完了しますから、点滅ていどにしか視認できないのでは。

▼Masato/S さん:
>   '
>   'ここで1件についての処理を行います。
>   '

上の部分に、あるていど時間のかかる実処理を入れましょう。
処理を入れているのに点滅するていどなら、もともとインジケータを必要とするほど時間のかかる処理ではないということです。

提示されたのが実コードではないのであれば、偽コードではなく実コードを提示しましょう。

【11785】Re:進行状況インジケータについて
質問  Masato/S  - 10/9/27(月) 11:43 -

引用なし
パスワード
   YU-TANGさん

返事が遅くなり、すいません。

実際、使っているコードは以下の通り、よろしくお願いします。

Function test0921()
'変数定義
Dim Ofile(0 To 5) As String, Nfile(0 To 5) As String, i As Integer
Dim varRet As Variant
Const cintRecMax As Integer = 5
'元テーブル名の定義
Ofile(0) = "O0"
Ofile(1) = "O1"
Ofile(2) = "O2"
Ofile(3) = "O3"
Ofile(4) = "O4"
Ofile(5) = "O5"
'出力ファイル名の定義
Nfile(0) = "N0.csv"
Nfile(1) = "N1.csv"
Nfile(2) = "N2.csv"
Nfile(3) = "N3.csv"
Nfile(4) = "N4.csv"
Nfile(5) = "N5.csv"
  varRet = SysCmd(acSysCmdInitMeter, "ただいまデータ作成中・・・、少々お待ち下さい・・・", cintRecMax)
   For i = 0 To cintRecMax
     docmd.TransferText acExportDelim, , Ofile(i), "C:\" & Nfile(i), False
     varRet = SysCmd(acSysCmdUpdateMeter, i)
   Next i
  varRet = SysCmd(acSysCmdRemoveMeter)
End Function

【11786】Re:進行状況インジケータについて
回答    - 10/9/27(月) 13:05 -

引用なし
パスワード
   雅です。

DoCmd.TransferTextってこのメソッド自体でプログレス表示するはず
なので点滅するんじゃないです?
テキストを吐き出すための違う仕組みを考える必要があるかと。

【11788】Re:進行状況インジケータについて
質問  Masato/S  - 10/9/27(月) 15:44 -

引用なし
パスワード
   雅 さん
  
 いくつかのテキストを連続に吐き出すとき、どこまで進んでいるかを
表示させるため、このような仕組みを考えています。
 いろいろと試行錯誤・・・、なかなかうまくいかず、詰まっています。
アドバイスをいただけませんか?

【11790】Re:進行状況インジケータについて
回答    - 10/9/27(月) 17:02 -

引用なし
パスワード
   雅です。

先ほども書いたようにDoCmd.TransferText自体がプログレスバーを
表示してしまうので

自分のプログレスが表示
   ↓
DoCmd.TransferTextのプログレスが表示
   ↓
DoCmd.TransferTextのプログレスが消える
   ↓
自分のプログレスが再表示

の繰り返しになるので点滅して見えてしまいます。
ということはDoCmd.TransferTextを使わなければよいということになります。
代替手段としてはOpenステートメント、Print(PutでもOK)ステートメント、
Closeステートメントを使用して自力でテキストファイルを作成していく形が
よいと思います。

【11795】Re:進行状況インジケータについて
質問  Masato/S  - 10/9/28(火) 21:24 -

引用なし
パスワード
   雅 さん

 代替えの手段として、Openステートメントでやってみたいですが、
その実施方法を教えていただけませんか?

【11796】Re:進行状況インジケータについて
回答    - 10/9/29(水) 10:27 -

引用なし
パスワード
   雅です。

> 代替えの手段として、Openステートメントでやってみたいですが、
>その実施方法を教えていただけませんか?

> docmd.TransferText acExportDelim, , Ofile(i), "C:\" & Nfile(i), False
のところを

FileNubmer = Free(0)

Open OFile(i) For Output As #FileNumber

Print #FileNumber, 出力したい内容

Close #FileNumber

としてください。
詳しくはヘルプをご覧ください。

【11798】Re:進行状況インジケータについて
質問  Masato/S  - 10/9/29(水) 16:42 -

引用なし
パスワード
   雅さん

 ありがとうございます。FileNubmer = Free(0) の変数定義はどのように
すればいいでしょうか?

【11799】Re:進行状況インジケータについて
発言    - 10/9/29(水) 17:27 -

引用なし
パスワード
   雅です。

> ありがとうございます。FileNubmer = Free(0) の変数定義はどのように
>すればいいでしょうか?

どのようにすればとはなんでしょ?

Dim FileNumber As Long

ってこと?

【11815】Re:進行状況インジケータについて
質問  Masato/S  - 10/10/18(月) 21:50 -

引用なし
パスワード
   雅さん

 返事がおそくなり、すいません。。。

 ご紹介した方法で試しましたが、吐き出しのレスポンスがいいです。
 本当にありがとうございました。

419 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free