過去ログ

                                Page      81
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼クエリを非表示にしたい  たか 02/10/23(水) 19:53
   ┗Re:クエリを非表示にしたい  yu-ji 02/10/28(月) 13:42

 ───────────────────────────────────────
 ■題名 : クエリを非表示にしたい
 ■名前 : たか
 ■日付 : 02/10/23(水) 19:53
 -------------------------------------------------------------------------
   フォームのオートシートデータシートでクエリを元にフォームを作りました。
そのフォームに対して下記のようなモジュールを書いています。
クエリはフリガナの桁数がある桁数より多いものを表示するだけの単純な
クエリです。
このモジュールはマクロからプロシージャの実行で動かしています。

If (IsNull(Forms![55_F_フリガナ桁数チェック]!エラー内容) = False) Then
  ' フリガナの桁数オーバーのデータを一覧表示
   DoCmd.OpenQuery "55_■■■フリガナ桁数チェック■■■", acNormal, acEdit
  ' エラー表示フォームを開く
   DoCmd.OpenForm "エラー表示", acNormal, "", "", , acNormal
   Exit Function
End If

そこで、まずモジュールを動かすと、フリガナの桁数がオーバーしている場合
エラー表示というフォームとクエリの実行結果が表示されます。
そのクエリからオーバーしているフリガナの桁数が規定値以内に
なるように修正します。
そのクエリーを閉じて、フォームからマクロ(上記モジュールを動かすマクロ)
を再実行するとフリガナは桁数が規定値以内なので、このIF文を無視して欲しいの
ですが、このIF文にひっかかって、クエリの実行結果が表示されます。
当然表示されたクエリには、何も表示されていない1行だけ表示されます。
この2度目の実行の際にクエリを表示したくないというか、このIF文を無視して
次の処理に移って欲しいのですが、どうすればよろしいでしょう?
よろしくお願いします。

 ───────────────────────────────────────  ■題名 : Re:クエリを非表示にしたい  ■名前 : yu-ji  ■日付 : 02/10/28(月) 13:42  -------------------------------------------------------------------------
   こんにちは。

フォローが付かないので、回答というよりは質問なのですが。

▼たか さん:
>フォームのオートシートデータシートでクエリを元にフォームを作りました。
>そのフォームに対して下記のようなモジュールを書いています。
>クエリはフリガナの桁数がある桁数より多いものを表示するだけの単純な
>クエリです。
>このモジュールはマクロからプロシージャの実行で動かしています。
>
>If (IsNull(Forms![55_F_フリガナ桁数チェック]!エラー内容) = False) Then
>  ' フリガナの桁数オーバーのデータを一覧表示
>   DoCmd.OpenQuery "55_■■■フリガナ桁数チェック■■■", acNormal, acEdit
>  ' エラー表示フォームを開く
>   DoCmd.OpenForm "エラー表示", acNormal, "", "", , acNormal
>   Exit Function
>End If
>
>そこで、まずモジュールを動かすと、フリガナの桁数がオーバーしている場合
>エラー表示というフォームとクエリの実行結果が表示されます。
>そのクエリからオーバーしているフリガナの桁数が規定値以内に
>なるように修正します。
>そのクエリーを閉じて、フォームからマクロ(上記モジュールを動かすマクロ)
>を再実行するとフリガナは桁数が規定値以内なので、このIF文を無視して欲しいの
>ですが、このIF文にひっかかって、クエリの実行結果が表示されます。
>当然表示されたクエリには、何も表示されていない1行だけ表示されます。
>この2度目の実行の際にクエリを表示したくないというか、このIF文を無視して
>次の処理に移って欲しいのですが、どうすればよろしいでしょう?

いまいち、そちらの環境がよく分からないのですが、
そのコードを見れば、
IsNull(Forms![55_F_フリガナ桁数チェック]!エラー内容) = False
のチェックがありますよね?

それならエラーが出て、エラー表示フォームを開いた後に(Exit Functionの前)、
フォーム(55_F_フリガナ桁数チェック)のエラー内容をNullにしてやればいい
のではなくて?


P.S
クエリー名に”■”を使ってるんですね。
いや、特に問題はないのだと思いますが、ちょっと気になったので(^^;

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 81