Access VBA質問箱 IV

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

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


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

【7471】[編集\→[元に戻す(U)]〜が可能な時 ひろのしま 06/3/9(木) 23:35 質問[未読]
【7473】Re:[編集\→[元に戻す(U)]〜が可能な時 hatena 06/3/10(金) 9:09 回答[未読]
【7474】Re:[編集\→[元に戻す(U)]〜が可能な時 小僧 06/3/10(金) 9:54 発言[未読]
【7479】Re:[編集\→[元に戻す(U)]〜が可能な時 ひろのしま 06/3/10(金) 13:42 お礼[未読]
【7480】Re:[編集\→[元に戻す(U)]〜が可能な時 ひろのしま 06/3/10(金) 14:20 お礼[未読]

【7471】[編集\→[元に戻す(U)]〜が可能な時
質問  ひろのしま  - 06/3/9(木) 23:35 -

引用なし
パスワード
   If CurrentDb.Properties(????)=True Then
 '[元に戻す]が可能な時にそれを行う。
 Docmd.Runcommand accmdUndo
Else
  Exit sub
End If

のような処理を行いたいのですが、??の部分が分かりません。
あるいは、他の方法がもしかしたらあるのかもしれません。
分かる人がおりましたらよろしくお願いします。

【7473】Re:[編集\→[元に戻す(U)]〜が可能な時
回答  hatena  - 06/3/10(金) 9:09 -

引用なし
パスワード
   ▼ひろのしま さん:
>If CurrentDb.Properties(????)=True Then
> '[元に戻す]が可能な時にそれを行う。
> Docmd.Runcommand accmdUndo
>Else
>  Exit sub
>End If
>
>のような処理を行いたいのですが、??の部分が分かりません。
>あるいは、他の方法がもしかしたらあるのかもしれません。

Me.Undo なら、Me.Dirty で判断できますが、accmdUndo の
はちょっと動作が異なりますので、プロパティでは無理ぽっい
気がします。エラートラップをしてはダメですか。
いろいろな書き方がありますが、例えば、

On Error Resume Next

  DoCmd.RunCommand acCmdUndo
  If Err = 2046 Then
    MsgBox "元に戻せません!"
  End If

【7474】Re:[編集\→[元に戻す(U)]〜が可能な時
発言  小僧  - 06/3/10(金) 9:54 -

引用なし
パスワード
   ▼ひろのしま さん、hatena さん:
こんにちは。

余り行わない事ですので検証不足かもしれませんが、

Sub 元に戻す()
  Debug.Print Application.CommandBars("Menu Bar") _
        .Controls(2).Controls(1).Caption
End Sub

こちらで判断できませんでしょうか。

【7479】Re:[編集\→[元に戻す(U)]〜が可能な時
お礼  ひろのしま  - 06/3/10(金) 13:42 -

引用なし
パスワード
   ▼小僧 さん:
>▼ひろのしま さん、hatena さん:
>こんにちは。
>
>余り行わない事ですので検証不足かもしれませんが、
>
>Sub 元に戻す()
>  Debug.Print Application.CommandBars("Menu Bar") _
>        .Controls(2).Controls(1).Caption
>End Sub
>
>こちらで判断できませんでしょうか。

ありがとうございます。小僧さん。
上記プロシージャを使用したら、元に戻す(&U)と記入されました。
で、実際に悩んでいた箇所も解決いたしました。
ありがとうございました。

【7480】Re:[編集\→[元に戻す(U)]〜が可能な時
お礼  ひろのしま  - 06/3/10(金) 14:20 -

引用なし
パスワード
   ▼hatena さん:
>▼ひろのしま さん:
>>If CurrentDb.Properties(????)=True Then
>> '[元に戻す]が可能な時にそれを行う。
>> Docmd.Runcommand accmdUndo
>>Else
>>  Exit sub
>>End If
>>
>>のような処理を行いたいのですが、??の部分が分かりません。
>>あるいは、他の方法がもしかしたらあるのかもしれません。
>
>Me.Undo なら、Me.Dirty で判断できますが、accmdUndo の
>はちょっと動作が異なりますので、プロパティでは無理ぽっい
>気がします。エラートラップをしてはダメですか。
>いろいろな書き方がありますが、例えば、
>
>On Error Resume Next
>
>  DoCmd.RunCommand acCmdUndo
>  If Err = 2046 Then
>    MsgBox "元に戻せません!"
>  End If

hatena さん、ご返信ありがとうございます。
すみません。小僧さんの方法を取らせていただきました。
2046は[元に戻す&(U)]のみならず、他の実行時エラーでも表示されます。

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