Access VBA質問箱 IV

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

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


3793 / 9994 ←次へ | 前へ→

【9458】Re:RunMacro""が実行できません。
お礼  吉村  - 07/5/25(金) 12:54 -

引用なし
パスワード
   クロさん こんにちは。 ありがとうございました。

やっと解決しましたが、まだまだ詳細部分については理解できていません。
特に、As Long = &H400,As Long = &H103 の記述はチンプンカンプンです。


以下のURLを参考にさせて頂きました。

http://miyabi.la.coocan.jp/technic/index.php?ID=1&Category=1&Topic=10
http://homepage1.nifty.com/rucio/main/tyukyu/tyukyu4.htm

1. フォームモジュールレベルで文字列データの比較条件を定義しました。
  ・Option Compare {Binary | Text | Database}
   ここではAccess内でのみ使用しますので以下のように記述しました。
   Option Compare Database

  ・Option Explicit
   ここで、定数を記述しました。
   Private Const PROCESS_STATUS     As Long = &H400  'プロセスの状態を取得する
   Private Const PROCESS_ACTIVE     As Long = &H103  'プロセスは実行中
   * As Long = &H400,As Long = &H103 の記述はまだ理解できていません。

   ここでは、WinAPI宣言(APIのハンドル) を記述しました。
   Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
   * プロセスハンドルの情報を取得する。
   Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
   * プロセスの状態を取得する。
   Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
   * プロセス終了時にプロセスハンドルを閉じる。

※General定義は以上です。 整理すると以下のようになりました。

   Option Compare Database
   Option Explicit
     Private Const PROCESS_STATUS     As Long = &H400
     Private Const PROCESS_ACTIVE     As Long = &H103
     Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
     Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
     Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long


2.  次は、Private Subの記述です。

Private Sub export_Click()

'  変数宣言
  Dim ProcessID                  As Long
  Dim ProcessHandle                As Long
  Dim ExitCode                  As Long

  Call SaveRec
'  テーブルの更新

  DoCmd.RunMacro "cif_export"
'  テキストファイルの作成

  MsgBox " 抽出条件を作成しました。 "

'  Call Shell("C:\sinsystem_mdb\object\fs8e290a.exe")
'  このCall文を以下のように変更しました。

  ProcessID = Shell("C:\sinsystem_mdb\object\fs8e290a.exe")

  ProcessHandle = OpenProcess(PROCESS_STATUS, False, ProcessID)
'  プロセスハンドル情報の取得

  Do
    GetExitCodeProcess ProcessHandle, ExitCode
'    プロセス状態の取得

    DoEvents
  Loop While ExitCode = PROCESS_ACTIVE
'  プロセスが終了するまでループさせる(或いは、待っているのでしょうか)

  Call CloseHandle(ProcessHandle)
'  プロセスハンドルを閉じる

  MsgBox " 抽出処理を終了しました。 "

  DoCmd.RunMacro "tacifimport_delete"
'  テーブルの初期化

  DoCmd.RunMacro "cif_import"
'  テーブルの作成(インポートです)

  MsgBox " データベースを作成しました。 "

End Sub


※Private Sub定義は以上です。 整理すると以下のようになりました。

Private Sub export_Click()

'  変数宣言
  Dim ProcessID                  As Long
  Dim ProcessHandle                As Long
  Dim ExitCode                  As Long

  Call SaveRec

  DoCmd.RunMacro "cif_export"

  MsgBox " 抽出条件を作成しました。 "

  ProcessID = Shell("C:\sinsystem_mdb\object\fs8e290a.exe")

  ProcessHandle = OpenProcess(PROCESS_STATUS, False, ProcessID)

  Do
    GetExitCodeProcess ProcessHandle, ExitCode

    DoEvents
  Loop While ExitCode = PROCESS_ACTIVE

  Call CloseHandle(ProcessHandle)

  MsgBox " 抽出処理を終了しました。 "

  DoCmd.RunMacro "tacifimport_delete"

  DoCmd.RunMacro "cif_import"

  MsgBox " データベースを作成しました。 "

End Sub

以上です、ありがとうございました。

1,017 hits

【9445】RunMacro""が実行できません。 吉村 07/5/24(木) 12:39 質問
【9446】Re:RunMacro""が実行できません。 クロ 07/5/24(木) 13:16 発言
【9447】Re:RunMacro""が実行できません。 吉村 07/5/24(木) 13:45 質問
【9448】Re:RunMacro""が実行できません。 クロ 07/5/24(木) 13:58 発言
【9449】Re:RunMacro""が実行できません。 クロ 07/5/24(木) 14:19 発言
【9453】Re:RunMacro""が実行できません。 吉村 07/5/24(木) 19:19 お礼
【9454】Re:RunMacro""が実行できません。 クロ 07/5/25(金) 8:34 発言
【9455】Re:RunMacro""が実行できません。 吉村 07/5/25(金) 9:48 発言
【9456】Re:RunMacro""が実行できません。 クロ 07/5/25(金) 10:07 発言
【9457】Re:RunMacro""が実行できません。 吉村 07/5/25(金) 10:16 発言
【9458】Re:RunMacro""が実行できません。 吉村 07/5/25(金) 12:54 お礼
【9460】Re:RunMacro""が実行できません。 hatena 07/5/26(土) 7:50 発言
【9461】Re:RunMacro""が実行できません。 吉村 07/5/26(土) 15:38 質問
【9462】Re:RunMacro""が実行できません。 hatena 07/5/26(土) 17:28 回答
【9463】Re:RunMacro""が実行できません。 吉村 07/5/26(土) 19:27 質問
【9464】Re:RunMacro""が実行できません。 hatena 07/5/26(土) 19:48 回答
【9465】Re:RunMacro""が実行できません。 吉村 07/5/26(土) 20:51 お礼
【9466】Re: 閉じる時最適化はしない方が たん 07/5/28(月) 11:53 発言
【9467】Re: 閉じる時最適化はしない方が 吉村 07/5/28(月) 18:11 お礼

3793 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free