Accessのキーボード操作でクリックができない

このQ&Aのポイント
  • Windows XPのAccess 2003で、マウスを使わずにキーボードだけで操作をしたいが、クリックができない問題が発生している。
  • クエリから作成したデータシートビューにある特定のフィールドをダブルクリックすると、該当IDのフォームが表示されるが、キーボード操作ではクリックができず、編集もできないメッセージが表示される。
  • 問題解決のために一週間ほど調べているが、解決策が見つからず、助言が欲しい。
回答を見る
  • ベストアンサー

Accessのキーボード操作でクリックが出来ない

os:window xp バージョン:Access 2003 マウスを使わないキーボードだけで操作をしたいと奮闘しています。 クエリから作成したデータシートビューにある[○×ID]をダブルクリックすると 該当IDのフォームが表示されるようになっています。 マウスでは出来ますが、キーボード操作でカーソルを合わせて「Enter」や「Space」 キーをおしても "このコントロールはオートナンバー型の'○×ID'フィールドに連結 しているため、編集できません"と言うメッセージが下のタスクバー辺りに表示されて 「開け」ません。マウスでやるともちろん簡単に開けます。 かれこれ一週間ほど、色々調べたりしていますが、どおしても解決しません。 どちら様か、お解りの方がいらっしゃいましたら、ご教示をお願いいたします。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

Private Sub 旅行ID_KeyDown(KeyCode As Integer, Shift As Integer)   If KeyCode=13 or KeyCode=32 Then     DoCmd.OpenForm "旅行", , , "旅行ID=" & Me.旅行ID     KeyCode = 0   End If End Sub で終わりです。 ご苦労さんでした。

southbreeze
質問者

お礼

007様 うまくいきました。感謝感激です。 長い時間、ありがとうございました。 今後のご活躍をお祈りします。

その他の回答 (5)

回答No.5

もう、ほとんど解決しているようなもんですよ! DoCmd.OpenForm "旅行", , , "旅行ID=" & Me.旅行ID                  |     |                  |     +ーー>フォームでIDを表示しているコントロール名                  +ーーーーーーーー>テーブルでID値を記録してる列名 この二つを一致させるだけです。(多分)

southbreeze
質問者

お礼

007様 本当にありがとうございます。 左上の小窓に"旅行ID" そして 右上の小窓に" KeyDown "がある記述箇所に以下の記述だけをしてみました。 Private Sub 旅行ID_KeyDown(KeyCode As Integer, Shift As Integer) DoCmd.OpenForm "旅行", , , "旅行ID=" & Me.旅行ID End Sub そしたら.....そこに"TabKey"でカーソルで移動させて、TabKey や 矢印Keyを押しただけで、そのフォームが開けるようになりました。これが出来ないかと、四苦八苦していたことで、解決できて嬉しい限りです。 しかし、そこにカーソルがあって、SpaceKey を押した時のみ開けるように出来ないものでしょうか?どのKEYを押しても開けてしまいます。 又は、TabKey でフィールドを移動する場合が多いですので、TabKey だけ除外する...と言うのは出来ないものでしょうか? お時間をとらせてしまって申し訳ありませんが、何卒、よろしくお願いいたします。

回答No.4

>DoCmd.OpenForm "旅行", , , "ID=" & Me.ID (何も無いところに入れました これが理解できません。 理由:なぜ、空行なのにフォームがオープンされるのか? × DoCmd.OpenForm "旅行", , , "ID=" & Me.ID 〇 DoCmd.OpenForm "旅行", , , "旅行ID=" & Me.旅行ID で、動くかも。でも、それはミスかも知れません。動けば良いと言うものでもないし・・・。肝心なのは、しつ問文との整合性。 【もしかしたら・・・】 Private Sub 旅行ID_KeyDown(KeyCode As Integer, Shift As Integer)   If KeyCode = 13 Or KeyCode = 32 Then     旅行ID_Click   KeyCode = 0 End If とすべき!? Private Sub 旅行ID_Click(Cancel As Integer)   DoCmd.OpenForm "旅行", , , "旅行ID=" & Me.旅行ID End Sub [旅行ID]のクリックイベントがあるのでは?だとしたら、DblClick()は無用。

southbreeze
質問者

お礼

007様 お忙しいところ、誠に恐縮です。 ▼現在の状況 データシートビューの"旅行ID"をマウスでクリックするとその旅行の"旅行"フォームが開くようにマクロを作成しています。 しかし、マウスは右肩にすごく負担がかかるので、ほとんどの操作をキーボードにしたいと奮闘しているところです。 タブの上に小窓が2つ並んでいて 左が"フォームフッタ" 右が "Clic" になっているところに Private Sub フォームフッター_Click() Cancel = (Nz(確認, 0) <= 0) End Sub があって、 左が 旅行ID 右が DblClick の欄に   Private Sub 旅行ID_DblClick(Cancel As Integer) DoCmd.OpenForm "旅行", , , "ID=" & Me.ID (何も無いところに入れました) End Sub があり、さらに 左の小窓に "旅行ID" 右の小窓が KeyDownとなっているところに Private Sub 旅行ID_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Or KeyCode = 32 Then 旅行ID_DblClick KeyCode = 0 End If End Sub が線で別けられてハイっている状況です。Accessの基礎的な知識が無いため、かみ合わない話になっているかもしれませんが、時間のある限り、よろしくお願いいたします。

回答No.3

Private Sub 旅行ID_KeyDown(KeyCode As Integer,   If KeyCode = 13 Then     旅行ID_Click     KeyCode = 0   End IF End Sub  ↓ Private Sub 旅行ID_KeyDown(KeyCode As Integer,   If KeyCode = 13 Or KeyCode = 32 Then     旅行ID_DblClick     KeyCode = 0   End IF End Sub ただし、 Private Sub 旅行ID_DblClick(Cancel As Enteger)   DoCmd.OpenForm "フォーム名", , , "ID=" & Me.ID End Sub となっていなければ何の反応も起きません。が、質問文から察すると多分なっているんだと思います。

southbreeze
質問者

お礼

007様 お忙しい中、申し訳けございません。ご教示いただいた通り(?)になっているかどうか解かりませんが、入力して"Space Key"をおしたところ、「コンパイルエラー」「引数は省略できません」となって、"旅行ID_DblClick"の箇所に青い壁が出来ます。ここにある全体の記述は次のようになっています。 Option Compare Database Private Sub フォームフッター_Click() Cancel = (Nz(確認, 0) <= 0) End Sub Private Sub 旅行ID_DblClick(Cancel As Integer) DoCmd.OpenForm "旅行", , , "ID=" & Me.ID (何も無いところに入れました) End Sub Private Sub 旅行ID_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Or KeyCode = 32 Then 旅行ID_DblClick KeyCode = 0 End If End Sub 大変お忙しいところお手数ですが、何卒、よろしくお願い申し上げます。

回答No.2

Q、VBA抜きでショートカットキー操作をするには? A、ちょっと見当が付きません。 Windowsの[コンピュータ簡単操作センター]の仕組みも通用しないようですね。ですから、ちょっと見当が付きません。 【ショートカットキー操作と”データシート”ビュー】 [ALT+A]などのショートカットキーを仕組むには、”帳票フォーム"ビューにしてコマンドボタンを用意するのが一般的です。”データシート”ビューの場合は、この手が使えませんので先の回答のような手段を利用することになります。 1、フォームをデザインモードで開く。 2、[ID]のプロパティ編集ダイアログを開く。 3、[キークリック時]の[…]をクリックする。 4、次の4行を書く。 Private Sub ID_KeyDown(KeyCode As Integer, Shift As Integer)   If KeyCode = 13 Then     ID_Click     KeyCode =0   End If End Sub ID_Clickは、実際に<該当IDのフォームを表示しているイベント名>を書く事になります。まあ、VBAとは言ってもこれだけのことです。[ALT+A]などのシュートカットキーを仕組むよりは簡単だと思いますよ。

southbreeze
質問者

お礼

007様 度々のご回答、誠にありがとうございます。ご教示を頂いたものを"データシートビュー"のフィールドに記述させていただきました。そうしましたら、見えるのが Opton Comare Database ----------------------------------------- Private Sub フォームフッター _Click() Cancel = (Nz(確認, 0) <=0) End Sub ------------------------------------------ Private Sub 旅行ID_DblClick(Cancel As Enteger) End Sub ------------------------------------------- Private Sub 旅行ID_KeyDown(KeyCode As Integer, If KeyCode = 13 Then 旅行ID_Click KeyCode = 0 End IF End Sub となっています。 エラーメッセージがあって "コンパイルエラー; SubまたはFunction が定義されていません。   OK ヘルプ が小窓で出て来ます。 ■ Space キーを押したときにマウスのダブルクリックと同じような効果が出来るようにしたいと思っています。 何卒、よろしくお願いします。

回答No.1

{Enter}キーが押されるとClickイベントをコールするって手があります。もちろん、 DoCmd.XXXX を書いてもOK。この場合、{Enter}キーは KeyCode = 0 でクリアします。 Option Compare Database Option Explicit Private Sub ID_Click()   MsgBox "" End Sub Private Sub ID_KeyDown(KeyCode As Integer, Shift As Integer)   If KeyCode = 13 Then     ID_Click     KeyCode = 0   End If End Sub

southbreeze
質問者

お礼

007様 ご回答くださりありがとうございます。最初に記述するべきでしたが、すみません「記述」は苦手で..どこにどのように入力するかが解かりにくいんです。 すみませんが、「記述」せずに出来る方法はないでしょうか?

関連するQ&A

  • ACCESS VBA

    クエリーにsqlをはりつけてデザインビューでひらこうとすると、連結式を表示できません。フィールドが削除されているか、名前が変更されています~とエラーメッセージがでてデザインビューになりません。しかしデータシートビューは開きます。aaa_id=idという連結式です。idが使えないのでしょうか?

  • マウスでクリックしないと出来ないですか?

    アクセスのテーブルのYESNO型フィールドにチェックを入れるのは、マウスでクリックしないと出来ないですか? キーボードでチェックを入れたいのですが、不可能でしょうか? チェックをつけたいフィールドにカーソルを充てて、キーボードのエンターを押してみましたが、隣のフィールドに移動してしまいました。

  • キーボードでマウスを操作したいのですが・・・

    タイトルのとおり、キーボードでマウスを操作したいのです。 フリーソフトで良い物は無いかと色々と検索してみましたが良いものはヒットせず・・・ 使用しているパソコンのOSがvistaなので動作しないソフトも多かったです。 何かシンプルで良いフリーソフトはありませんか? 「例:Ctrl+矢印キー = マウスカーソル移動」 「例:Ctrl+Enter = 左クリック」 といったようなものです。 その機能使用をショートカットキーでON/OFFできるともっと良いですね あ、レジストリはなるべくならいじりたくはないです。 よろしくおねがいします。

  • 全画面表示になり操作を受け付けない

    TVチューナーのソフトとDVD再生ソフトが 起動すると勝手に全画面表示になり、 マウスカーソルが消え ウィンドウモードに戻せなくなり 操作を受け付けなくなる。 ほかのプログラムはキーボードと勘で操作でき 強制終了は何とかできる。 alt+tab alt+enter shift+enter F4 F11 再インストール などいろいろ試してみましたが、治りませんでした。

  • マックをキーボード主体に操作したい

    マックをキーボード主体でなるべくマウスを使わずに操作したいなあと考えているのですが、キーボードの使い方でありそうだけど知らないものがいくつかあるので、是非とも教えて頂ければと思います。 1、キーボードでフォルダを開く方法はあるのでしょうか?(エンターだと名前変更になってしまいます) 2、キーボードで一つ上のディレクトリに行く方法はあるのでしょうか? 3、キーボードでドッグからアプリケーションを立ち上げる事は出来るでしょうか? です。 よろしくお願いします。

    • ベストアンサー
    • Mac
  • デスクトップ上で 右クリック キーボード

    Windowsを起動した後に、デスクトップ上(タスクバーよりも上の部分)を右クリックした と同じ動作をキーボードの操作で可能でしょうか? 右クリックの動作は、キーは分かっていますが、デスクトップ上に操作が移りません。 タスクバーやスタートキーに選択対象があって困っています。 Windows起動後に、マウスを動かしポインタを動かせば、デスクトップ上に操作が移りますが。 よろしくお願いします。(マウス操作一切なしで)

  • キーボード

    マウスが壊れてキーボードで操作しているのですが、カーソルが全く反応しません(うまく説明できないのですが、キーボードにある四角い、手でふれてマウスの代わりに使うやつ) 助けて下さい。

  • Accessのサブフォームのフィールドをチェックボックスにより表示/非表示に切り替える方法

    無謀なことかもしれませんが・・・ 下記のようなフォームを作成したいと思い質問させていただきます。 OS:WindowsXP 使用ソフト:Access2003 ・非連結のサブフォームにクエリを表示させています。 ・メインフォームにはクエリのフィールド名が書かれたチェックボックスを並べて配置しています。 ・チェックボックスをオフにしてコマンドボタンをクリックすると、 サブフォームのクエリのフィールドが非表示になり、またチェックボックスをオンにするとサブフォーム内のクエリのフィールドが表示されるようにしたいです。 初心者なので、丁寧に教えてもらえるととても助かります。 どなたかお知恵をお貸しください★

  • キーボード操作方法について

    これまでPCの操作をほとんどマウスに頼ってきたのですが、必要に迫られてキーボードでの操作を覚えることになりました。 しかしこれまで直感で済ませてきたので初歩も知りません。 ブラウザやソフトの上の部分にファイル(F)がありますが、この(F)がショートカットなのでしょうか? Fを押してもファイルなどにカーソルが移らないのですが、どこかを一緒に押すのでしょうか? 申し訳ありませんがどなたか教えてください・・・。

  • タスクバーのアイコンなどをキーボード操作するには

    タスクバーの中にある、クイック起動アイコンや、USB機器の取り外しなど、 こういう操作には、マウスを使って右、左クリックしたりして操作していますが、 キーボードでの操作は可能なのでしょうか? 例えば、USB外付けHDDの安全な取り外しをする操作では、 どのようにしたらキーボードでその処理ができるのでしょうか? また、できるとしたらそれはOS共通でしょうか?