プロが教えるわが家の防犯対策術!

access2010までは正常でした。
access2016にヴァージョンアップでエラーになります。

クリック時のイベントでVBで DoCmd.RunCommand acCmdDeleteRecord が記述しています。

エラー表示は
コマンドまたはアクション’レコードの削除’ は無効です。

なにかaccessのヴァージョンで使用できないことがあるんでしょうか?

ご存知の方お教えください。
よろしくお願いいたします。

質問者からの補足コメント

  • accessの実行時のリボンを強制表示してキャプチャーした画像です。

      補足日時:2018/09/28 17:39

A 回答 (7件)

何らかの原因で、削除負荷のフォームになってしまっているようです。


Access2016の環境で、フォームを再度作り直すというのが私の提案です。
私の方からは以上です。
混乱させただけだったかもしれませんが、ご容赦ください。
    • good
    • 0
この回答へのお礼

いろいろのご指導ありがとうございました。
当方がお応えできるように対応していたかも問題です。
懲りずにご対応いただき本当にありがとうございました。
いろいろ試みることにいたします。

お礼日時:2018/09/29 09:40

長くなって済みません。



ランタイムでなく、アクセス本体がインストールされていれば、アクセスの基本機能であるリボンが使えると思いました。
基本機能のレコード削除機能でも削除できないのか確認できないかと思った次第です。
アクセス本体がインストールされているのであれば、リボンの基本機能を使って削除する方が楽だと思います。
他ユーザーがランタイム環境なら、削除ボタンを作る必要があります。
    • good
    • 0
この回答へのお礼

このGooのシステムも完全に理解できていなく、画像の添付をと思いましたがどうしてよいやら困惑。質問欄に補足を追加して、そこに画像添付があったので、access実行時の上部のリボンを強制表示して、キャプチャー画像をJPGで添付しようとしましたが出来たなか出来なかったのか良く解りません。いずれにしろレコードの更新の横の削除はグレーで使用できなかったようです。
こんなことでよろしいのでしょうか?

お礼日時:2018/09/28 17:46

もう一点確認ですが、フォームのリボンで、「ホームーレコードーレコードの削除」を行った場合に削除出来ますか?


フォームの「削除の許可」プロパティーが「いいえ」の時、「コマンドまたはアクション’レコードの削除’ は無効です。」のエラーが表示されるようです。
    • good
    • 0
この回答へのお礼

度々有難うございます。
「フォームのリボンで、「ホームーレコードーレコードの削除」を行った場合に削除出来ますか?」
とのこと。一連のアプリケーションは、総合メニューを作り、そこからのクリックで各作業を行っています。フォームのリボン等は表示しておりませんし、今まで触ったこともありません。申し訳ありませんが、どこのことかも解りません。
「フォームの「削除の許可」プロパティーが「いいえ」の時」とはフォームデザイン設定時のプロパティの中のことでしょうか?、追加も更新も削除もすべて「はい」です。
解らないのは、旧ヴァージョンではすべて正常でした。それがwindows7でAccess2016でエラーが出るようになったことですね。

追伸でごめんなさい。
「フォームのリボンで、「ホームーレコードーレコードの削除」を行った場合に削除出来ますか?」これは自分がどこかで「フォームのリボン」の設定を変更してしまったということでしょうか?

お礼日時:2018/09/28 15:47

だとすると、申し訳ありませんが、最適化してみる程度の対策しか、思いつきません。

    • good
    • 0
この回答へのお礼

早々、いろいろとご指導ありがとうございました。
何とかと思いましたがどうもうまくいきませんでした。
またこのような質問も初めてのこと、どのようにご返事していいやらもわからず、とりとめないことで
誠に申し訳ありませんでした。
自分もaccessは15年近くやってきておりますが、何やらわけのわからないことも多く発生します。
それでも手を変え品を変えではありませんが、考え方を変えたり、手法を変えたりしてやってきました。
今回は何となく、accessのヴァージョンにより発生しておりましたもので、どなたかご存じないか、同じようにヴァージョンアップで不具合があったとかあればと質問コーナーにアップさせていただきました。
本当にありがとうございました。

お礼日時:2018/09/25 16:22

クエリの場合、複数のテーブルをリンクしていると削除出来ない場合があります。

クエリをデータシートビューで開いて、行選択し、削除できるか確認してみたらどうでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
クエリをデータシートビューで開いて、行選択し、削除できます。

お礼日時:2018/09/25 13:21

私は、テーブルを元にフォームを作成し、削除用のボタンを作り、クリック時イベントにこのコードを記載しています。


削除出来ないという事は、フォームプロパティーのデータタブの「削除の許可」が「いいえ」になっていないでしょうか?
また、マスターテーブルで、参照整合性が設定されていると、連鎖削除が指定されていないと削除できません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
お返事の仕方がわからないもので、ここに書かせていただいています。
フォームのソースはクエリを使っています。削除のクリックからイベントをたどるにブレイクポイントを設定し、シングルステップでディバッグするも、エラーにならず
DoCmd.DoMenuItemもエラーなく通過します。がデータの削除はされません。
あくまでACCESSのヴァージョンによって、2016になってこの問題が発生。何かヴァージョンで使えなくなった事象があるんでしょうかね。過去もいろいろヴァージョンアップするに不具合が発生し修正してきたこともありました。たとえばカレンダーコントロールもその一つ。

お礼日時:2018/09/24 16:19

Access2003形式で作成したものをAccess2016で使用しています。


レコード削除は、古い表記で下記のように記載していますが、問題なく動いています。
RunCommandは、DoMenuItemの後継となるものですが、動かないようでしたらこちらも確認下さい。
当方も、Access2010では出来ていたグラフタイトルの自動変更ができなくなり、別の方法に変えて対応しました。
Microsoftに聞いてみましたが、ソフトの動きは保証していないとの返答でした。

Dim MyAnswer

MyAnswer = MsgBox("表示しているレコードを削除します(OK/Cancel?)", vbDefaultButton2 + vbOKCancel, "確認")
If MyAnswer = vbOK Then
  DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70  'レコードの選択
  DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70  'レコードの削除
End If
    • good
    • 0
この回答へのお礼

psgrade様
早々のご回答いただきありがとうございました。
お教え頂いたとおりにやってみましたが、エラーは出なくなりましたが
データの削除はできておりません。
自分の組み込みの仕方の問題でしょうか?

お礼日時:2018/09/24 10:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A