
先ほど立てたものですが、第二段です。先ほどは詳しい説明ありがとうございした。しかし、【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
A 回答 (5件)
- 最新から表示
- 回答順に表示
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/81 …
http://www.moug.net/mmaga/main_magbn112.htm
http://rose.ruru.ne.jp/dst/text/Access3/Access3. …
http://homepage2.nifty.com/housaka/excel/vbafaq0 …
http://www.asahi-net.or.jp/~ZN3Y-NGI/YNxv9d5.html
http://www.moug.net/mmaga/main_magbn060.htm
No.4
- 回答日時:
こんばんは。
皆さんが言われている通り、
Private Sub form_open(Cancel AS Integer)
は、フォームをオープンする時のイベントプロシージャの仕様なのです。
Cancel という引数を必ず使わなければならない事はありません。
ところで、こちらのサイトの真中より少し下の「"開く時"と"読み込み時"はどう使い分ける?」
のところにこのプロシ-ジャの説明がありましたのでご覧下さい。
http://homepage1.nifty.com/tsware/study/vol5/eve …
概略説明しますと、このプロシージャの中で、Cancelの値を"True"に設定すると
フォームを開かなくする事ができるということです。
ここのあたりをよく読んでみてください。
参考URL:http://homepage1.nifty.com/tsware/study/vol5/eve …
No.3
- 回答日時:
#1です。
追記です。
必要ないからといって、(Cancel AS Integer) を削除してはいけません。
これは決まっています。
必要なければ無視してください。
このままフォームをオープンさせてはいけないわ!というときに使ってください。
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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
callで順に実行されるプロシー...
-
ACCESS マクロをモジュールに変...
-
Excel:ThisWorkbookオブジェク...
-
エクセルVBAが対応できるプログ...
-
エントリ ポイントが見つかりま...
-
Accessでグローバル変数を宣言...
-
エクセルVBAでUserFormを起動し...
-
Access VBAで行ラベルが定義さ...
-
BasicScriptからAccessを制御で...
-
【Excel VBA】 WorksheetやRa...
-
ExcelVBAでしりとりのやり方を...
-
ODBCリンクの際にACCESSでは読...
-
重複するIDのデータを1行にま...
-
日数算出SQL
-
Statement ignored というエラー
-
SQLで部分的にGROUP BYしたいとき
-
sqlplusでヘッダーが付かない
-
キャッシュを使わずにSELECTを...
-
sqlplusのspoolで空白行出現
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
callで順に実行されるプロシー...
-
エクセルVBAでUserFormを起動し...
-
【Excel VBA】 WorksheetやRa...
-
OutlookVBAで作成したマクロに...
-
Excel VBAで「プログラム実行」...
-
或るプロシージャの呼び出し元判定
-
Accessでグローバル変数を宣言...
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
VBA プロシージャの名前の取得
-
エクセルVBAが対応できるプログ...
-
PL/SQLのエラーについて
-
ACCESS2007インポート時の空白...
-
Excel2000 セルデータ検索ウィ...
-
ブックオープン時にテキストボ...
-
ACCESS マクロをモジュールに変...
-
連番欠番アルゴリズム
-
DB2でのストアドプロシージャの...
-
ExcelVBAのInputBoxメソッドの...
おすすめ情報