• 締切済み

アクセスのVBについて

先ほど立てたものですが、第二段です。先ほどは詳しい説明ありがとうございした。しかし、【Private Sub form_open(Cancel AS Integer)】のCancelの使い方が今一分りません。下の文を見ていただきたいのですが、 ★[F_顧客]フォームでは、OPENARGS引数で受け取った値を利用して、フォーム の[票題]プロパティを変更する処理を行います。 Private Sub form_open(Cancel AS Integer)  'OPENARGSプロパティによって[標題]プロパティを変更    Select Case Me.OPENARGS   Case "追加"    ME.Caption="F_顧客(追加モード)"     Case "編集"    ME.Caption="F_顧客(編集モード)"     Case Else    ME.Caption="F_顧客"  End Select End Sub 例えば、上記の場合などはなぜキャンセルが必要なのでしょうか・・・。 初心者のため、どなたか細かくご説明いただければたすかります。 m(__)m

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

「Cancel」について、WEBを検索して参考になりそうなものを拾いました。 Integer(1等)で設定するものと、Boolean(True,false)とあります。 ----- ThisWorkbookのコード画面で下記のように記述することになります。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Cancel = True End Sub このマクロがあると、ブックを閉じるイベントが発生しなかったかのようになります ThisWorkbookのコード画面で下記のように作成すれば、ユーザーの操作は勿論、マクロからでも、ブックは閉じれなくなります。 Cancel = 1 を消さない限り、パソコンの再起動が必要になるでしょう。 '----------------- ' ブックを閉じれないようにするイベントマクロ Private Sub Workbook_BeforeClose(Cancel As Boolean) Cancel = 1 'キャンセルする End Sub -------- イベントプロシージャのCancel引数をTrueに設定する。このことにより、このBeforeInsertイベントの発生はキャンセルされ、レコードの追加が行われなくなる。 ------- 下記の中で「cancel」で検索しその前後を読んで下さい。 http://ws.31rsm.ne.jp/~pension/access/ota2001/813.htm http://www.moug.net/mmaga/main_magbn112.htm http://rose.ruru.ne.jp/dst/text/Access3/Access3.asp http://homepage2.nifty.com/housaka/excel/vbafaq02.html http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv9d5.html http://www.moug.net/mmaga/main_magbn060.htm

すると、全ての回答が全文表示されます。
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.4

こんばんは。 皆さんが言われている通り、 Private Sub form_open(Cancel AS Integer) は、フォームをオープンする時のイベントプロシージャの仕様なのです。 Cancel という引数を必ず使わなければならない事はありません。 ところで、こちらのサイトの真中より少し下の「"開く時"と"読み込み時"はどう使い分ける?」 のところにこのプロシ-ジャの説明がありましたのでご覧下さい。 http://homepage1.nifty.com/tsware/study/vol5/event_01.htm 概略説明しますと、このプロシージャの中で、Cancelの値を"True"に設定すると フォームを開かなくする事ができるということです。 ここのあたりをよく読んでみてください。

参考URL:
http://homepage1.nifty.com/tsware/study/vol5/event_01.htm
すると、全ての回答が全文表示されます。
回答No.3

#1です。 追記です。 必要ないからといって、(Cancel AS Integer) を削除してはいけません。 これは決まっています。 必要なければ無視してください。 このままフォームをオープンさせてはいけないわ!というときに使ってください。

すると、全ての回答が全文表示されます。
noname#102878
noname#102878
回答No.2

Form_Openイベントプロシージャの引数[Cancel]は、そのイベントプロシージャ内で使おうと使わなかろうとイベントプロシージャの「仕様」なのです。 「Private Sub Form_Open(Cancel As Integer)」 という書き方はMicrosoftが決めた書き方なのです。 私は[Cancel]を使用したことがありませんが、「条件によってはフォームを開かせないこともあるだろう」という配慮から用意された引数なのです。 使わないならそのままにして大丈夫です。

すると、全ての回答が全文表示されます。
回答No.1

こんばんは。 キャンセルが必要かどうかは、あなたが決めればよいことです。 たとえば、   >Case Else >ME.Caption="F_顧客" とありますが、これを Case Else Cancel = True とすれば、追加、編集以外の値が渡ったときは、フォームがオープンされません。

すると、全ての回答が全文表示されます。

関連するQ&A