Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
アクセスのフォームでレコード追加可能か否かを調べる
投稿日時: 21/01/31 08:56:09
投稿者: takodo

お世話になります。
アクセスのフォームでレコードを追加可能か否かを調べるにはどうしたらよいでしょうか。
    If ??? Then
        DoCmd.GoToRecord , , acNewRec '可能なら
    Else
        DoCmd.GoToRecord , , acLast
    End If
???のところの記載がわかりません。
よろしくお願いいたします。

回答
投稿日時: 21/01/31 10:48:41
投稿者: hatena
投稿者のウェブサイトに移動

下記でどうでしょう。
 

On Error Resume Next
DoCmd.GoToRecord , , acNewRec
If Err <> 0 Then
    DoCmd.GoToRecord , , acLast
End If
On Error Goto 0

投稿日時: 21/01/31 11:36:27
投稿者: takodo

早速教えていただきありがとうございます。
スマートなコードを提示いただき感謝です。
疑問ですが、
>On Error Resume Next
>If Err <> 0
だと、他のエラーが発生したときの対応が難しいかと。
エラーコードだけで、追加可能か否かの判定ができれば良いのですが
acNewRec で、追加できないときは
2105 指定したレコードへ移動できません
のエラーが返るようだけれど
 
この、エラーコード2105は、追加可能か否か以外でも発生するのではないかと・・・
追加可能か否かを判定するプロパティーなどはないでしょうか。

回答
投稿日時: 21/01/31 12:43:17
投稿者: hatena
投稿者のウェブサイトに移動

takodo さんの引用:

追加可能か否かを判定するプロパティーなどはないでしょうか。

フォームの設定なら、
AllowAdditionsプロパティと RecordsetTypeプロパティを調べれれば分かりますが、
レコードソースの方で(例えば集計クエリとか・・・)追加、更新不可の場合は判断できないので、
エラーで判断する方法を提案しました。
 
提案の方法で具体的にどのような場合に具合が悪いのでしょうか。

投稿日時: 21/01/31 13:01:59
投稿者: takodo

>AllowAdditionsプロパティと RecordsetTypeプロパティを調べれれば分かります
これがあるのですね。
>レコードソースの方で(例えば集計クエリとか・・・)追加、更新不可の場合は判断できない
なるほどです。
よくわかりました。
大変ありがとうございました。
お手数をおかけします。