Access VBA質問箱 IV

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

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


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

【7105】【6078】について対処法を教えて下さい。 わん 06/1/17(火) 14:42 質問[未読]
【7106】Re:【6078】について対処法を教えて下さい。 Gin_II 06/1/17(火) 16:38 回答[未読]
【7107】Re:【6078】について対処法を教えて下さい... 小僧 06/1/17(火) 16:53 回答[未読]
【7108】Re:【6078】について対処法を教えて下さい... わん 06/1/17(火) 17:23 お礼[未読]
【7109】Re:【6078】について対処法を教えて下さい... わん 06/1/17(火) 18:47 お礼[未読]

【7105】【6078】について対処法を教えて下さい。
質問  わん  - 06/1/17(火) 14:42 -

引用なし
パスワード
   いつもお世話になっております。

【6078】に別テーブルへの追加と削除の方法が書かれているのですが、
各コマンドボタンをクリック後、選択画面が表示されて“いいえ”を選択すると
デバッグとなりVBAコードが表示されてしまうのですが、
これを回避する方法はないのでしょうか?
また、同じ年のデータを追加しようとした場合に実行不可にすることは可能でしょうか?

宜しくお願いします。

(OS:WinXP,Ac2000)

【7106】Re:【6078】について対処法を教えて下さい...
回答  Gin_II  - 06/1/17(火) 16:38 -

引用なし
パスワード
   >【6078】に別テーブルへの追加と削除の方法が書かれているのですが、

http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=6078;id=access
こちらでしょうか?(URLも一緒に提示してくださいね ^^;)


>各コマンドボタンをクリック後、選択画面が表示されて“いいえ”を選択すると
>デバッグとなりVBAコードが表示されてしまうのですが、
>これを回避する方法はないのでしょうか?

DoCmd.SetWarnings False
DoCmd.RunSQL SQLCode
DoCmd.SetWarnings True

のようにすれば回避できると思います。
もしくは、
Currentdb.Execute SQLCode
でも、大丈夫ですね。


>また、同じ年のデータを追加しようとした場合に実行不可にすることは可能でしょうか?

事前に、DCount 関数などを使って、実行済みかどうかを確認しては?

【7107】Re:【6078】について対処法を教えて下さい...
回答  小僧  - 06/1/17(火) 16:53 -

引用なし
パスワード
   ▼わん さん、Gin_IIさん
こんにちは。

>これを回避する方法はないのでしょうか?

表示されるメッセージは

「x件のレコードを追加します」
「x件のレコードが指定されたテーブルから削除されます」

というもので大丈夫でしょうか。


まずこれらを表示する設定は、Accessの [ツール] → [オプション] → [編集/検索タブ] にある

・確認、アクション クエリ
・確認、オブジェクトの削除

にて変更が可能です。

MDB の設定として別に必要がないのでしたらチェックボックスを外す事で対応が可能です。

この設定を VBA から行うには SetOption メソッドで切り替えることができます。


また、Gin_II さんからご提示があった
SetWarnings メソッドでシステムメッセージ自体を表示させない方法や
Executeメソッドを使う方法でもダイアログの回避はできます。


ダイアログ表示をし、キャンセルも選択したい場合は
エラートラップで対応するしかないでしょうかね。

  On Error Resume Next
    DoCmd.RunSQL SQLCode
        If Err.Number = 2501 Then
            MsgBox "キャンセル"
        End If

色々方法はあると思いますが、わん さんの状況に合わせて使い分けてみてください。

【7108】Re:【6078】について対処法を教えて下さい...
お礼  わん  - 06/1/17(火) 17:23 -

引用なし
パスワード
   Gin_IIさん、小僧さん
早速のご回答ありがとうございました。

>>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=6078;id=access
>>こちらでしょうか?(URLも一緒に提示してくださいね ^^;)
 なるほど。以後気をつけます。

教えて頂いた方法を全てやってみたところ全部できました。

>ダイアログ表示をし、キャンセルも選択したい場合は
>エラートラップで対応するしかないでしょうかね。

この方法を選択しました。

>>>また、同じ年のデータを追加しようとした場合に実行不可にすることは可能でしょうか?
>>事前に、DCount 関数などを使って、実行済みかどうかを確認しては?

Dcount関数ならわかるのでちょっとトライしてみます。

お二人とも解りやすく教えていただきありがとうございました。
また、混乱してきたらお伺いするかも知れませんが
その時は宜しくお願い致します。

有難うございました。

【7109】Re:【6078】について対処法を教えて下さい...
お礼  わん  - 06/1/17(火) 18:47 -

引用なし
パスワード
   Gin_IIさん、小僧さん

>>>>また、同じ年のデータを追加しようとした場合に実行不可にすることは可能でしょうか?
>>>事前に、DCount 関数などを使って、実行済みかどうかを確認しては?
>
>Dcount関数ならわかるのでちょっとトライしてみます。
>
こちらについてもできました。
こういう時にDcount関数って使うんですね。
ようやく少しずつAccessのことがわかってきました。

ありがとうございます。
また、何かありましたら宜しくお願い致します。

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