Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルマクロのシングルステップの非表示について
記事No42790
投稿日: 2017/06/09(Fri) 17:33
投稿者けんたろ
解決済: ON
OS:Windows 10
Access Version:2013

初心者ですが、初心者用は変な広告みたいのが大量で、返信もらえなそうなので、こちらに記載いたしました。ご容赦ください。

現在フォームで登録ボタンを作成しており、
マクロで以下を組んでおります。

If [MacroError]=0 Then
メニューのコマンドの実行
 コマンド レコードの保存

しかし、フォーム上必須項目を全て記入していれば、問題なく動作するのですが、
必須項目を全て入力していない状態で登録をすると、
マクロのシングル ステップのポップアップが表示され以下の内容の記載があります。

条件
True: [MacroError]=0

アクション名
メニューコマンドの実行

エラー番号 2950

引数
97

マクロのシングルステップを非表示にすることができれば問題ないのですが、
色々調べたのですが、このマクロのシングルステップを非表示にする方法がはっきり乗っているところがなく、もしあれば教えていただきたいです。

下手な説明で恐縮ですが、よろしくお願いいたします。

タイトルRe: マクロのシングルステップの非表示について
記事No42791
投稿日: 2017/06/10(Sat) 11:43
投稿者tkwan
解決済: ON
> しかし、フォーム上必須項目を全て記入していれば、問題なく動作するのですが、
> 必須項目を全て入力していない状態で登録をすると、
> マクロのシングル ステップのポップアップが表示され以下の内容の記載があります。

必須項目を入力していないからレコードを登録できないのだと思いますよ。
必須項目を必須では無くしたら良いのでは?

タイトルRe^2: マクロのシングルステップの非表示について
記事No42792
投稿日: 2017/06/11(Sun) 10:20
投稿者tkwan
解決済: ON
もしかして、こういうことなのかな?

1.必須項目のテキストボックスのタグプロパティに「必須」と記入する。

2.登録ボタンのクリック時イベントプロシージャに

 Dim ctl As Control

 For Each ctl In Me.Controls

   If ctl.Tag = "必須" And IsNull(ctl) Then

      MsgBox ctl.ControlSource & "は、入力必須です。"
      ctl.SetFocus
      Exit Sub

    End If

  Next

  DoCmd.RunCommand acCmdSaveRecord   'マクロの代わり。レコードの保存コマンド。

※マクロは削除してください。

タイトルRe^3: マクロのシングルステップの非表示について
記事No42796
投稿日: 2017/06/12(Mon) 15:48
投稿者けんたろ
解決済: ON
> もしかして、こういうことなのかな?
>
> 1.必須項目のテキストボックスのタグプロパティに「必須」と記入する。
>
> 2.登録ボタンのクリック時イベントプロシージャに
>
> Dim ctl As Control
>
> For Each ctl In Me.Controls
>
> If ctl.Tag = "必須" And IsNull(ctl) Then
>
> MsgBox ctl.ControlSource & "は、入力必須です。"
> ctl.SetFocus
> Exit Sub
>
> End If
>
> Next
>
> DoCmd.RunCommand acCmdSaveRecord 'マクロの代わり。レコードの保存コマンド。
>
> ※マクロは削除してください。


tkwanさん

ご丁寧な返信ありがとうございます。

いただいたコード確認させていただきました。

実は、登録ボタンにはその他、追加クエリや更新クエリのマクロも組んでいるため、いただいたコードだと目的通りの動きができない状況です。

せっかくいただいたのに申訳ないです。

単純にマクロのシングルステップを非表示にするVBAなどはないものなのでしょうか・・?

タイトルRe^4: マクロのシングルステップの非表示について
記事No42797
投稿日: 2017/06/12(Mon) 17:34
投稿者tkwan
解決済: ON
> 実は、登録ボタンにはその他、追加クエリや更新クエリのマクロも組んでいるため、
> いただいたコードだと目的通りの動きができない状況です。

だったら、

>> DoCmd.RunCommand acCmdSaveRecord 'マクロの代わり。レコードの保存コマンド。

この後にクエリを実行するコードを書くだけですよ。

DoCmd オブジェクト (Access)
https://msdn.microsoft.com/ja-jp/library/office/ff192694.aspx
 DoCmd オブジェクトのメソッドを使用すると、Visual Basic から Microsoft Office Access の
 アクションを実行できます。

DoCmd.OpenQuery メソッド (Access)
https://msdn.microsoft.com/ja-jp/library/office/ff192746.aspx


> 単純にマクロのシングルステップを非表示にするVBAなどはないものなのでしょうか・・?

マクロは使わないので分かりません。
それに、非表示したからと言って解決する問題じゃないと思いますよ。

タイトルRe: マクロのシングルステップの非表示について
記事No42798
投稿日: 2017/06/12(Mon) 17:50
投稿者hatena
解決済: ON
> If [MacroError]=0 Then

このコマンドの前に下記のアクションを挿入してください。


エラー時
  移動先 次
  マクロ名

これで、シングルステップはでません。

ただし、

If [MacroError]=0 Then

に「Else の追加」をして、未入力時の処理(ユーザーに入力を即すメッセージを表示するなど)を追加すべきです。

コード例

If [MacroError]=0 Then
 メニューのコマンドの実行
  コマンド レコードの保存
Else
 メッセッジボックス
  メッセージ 入力必須項目が未入力です。

If文 の最後


tkwanさんも提案されているようにそろそろVBAへ移行する時期かなと思います。

エラー処理などより複雑なことができますし、慣れればVBAの方が読みやすいです。

タイトルRe^2: マクロのシングルステップの非表示について
記事No42799
投稿日: 2017/06/19(Mon) 12:32
投稿者けんたろ
解決済: ON
> > If [MacroError]=0 Then
>
> このコマンドの前に下記のアクションを挿入してください。
>
>
> エラー時
>   移動先 次
>   マクロ名
>
> これで、シングルステップはでません。
>
> ただし、
>
> If [MacroError]=0 Then
>
> に「Else の追加」をして、未入力時の処理(ユーザーに入力を即すメッセージを表示するなど)を追加すべきです。
>
> コード例
>
> If [MacroError]=0 Then
>  メニューのコマンドの実行
>   コマンド レコードの保存
> Else
>  メッセッジボックス
>   メッセージ 入力必須項目が未入力です。
>
> If文 の最後
>
>
> tkwanさんも提案されているようにそろそろVBAへ移行する時期かなと思います。
>
> エラー処理などより複雑なことができますし、慣れればVBAの方が読みやすいです。

tkwanさん
hatena さん

返信が遅くなってしまい大変申し訳ございません。

hatenaさんのやり方で無事に解決いたしました。

今後VBAも利用できるよう勉強していきます。

ありがとうございました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る