- ベストアンサー
Access 最後のフィールドでカーソルをストップ
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
設定だけで出来るかは不明です。 VBAでは下記のようにしてみてください。 フォームのプロパティのイベントタブの一番下にある 「キーボードイベントの取得」を、はい に。 「キークリック時」イベントに Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If Screen.ActiveControl.Name = rightCol Then If KeyCode = vbKeyTab And Shift <> acShiftMask Then KeyCode = 0 End If End If End Sub その下にさらに、 Private Function rightCol() As String Dim ctl As Control Dim i As Integer For Each ctl In Me.Controls If TypeName(ctl) = "textbox" Then If i < ctl.ColumnOrder Then i = ctl.ColumnOrder rightCol = ctl.Name End If End If Next End Function Function rightCol は列の入れ替えを行って一番右端の列名(コントロール名)が 変更になった場合に対処するためです。 WinXP & Acc2002 Win7 & Acc2010 で検証。多分、Win7 & Acc2003でも? ※フォームがサブフォームであった場合はご勘弁ください。 Acc2010ではバグっぽい動きをします。原因追究断念。 ご参考まで。
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
Access2003は持ち合わせていないので確認は出来ませんが #1 で回答したコードとプロパティの設定を そのサブフォームに対して行えば出来るかと思います。 2002では問題ありませんでした。 (2010だと別の所で問題が発生したりしなかったりで??ですけど)
関連するQ&A
- ACCESS サブフォームのフィールドにカーソルをあてる
ACCESS2003で、VBAで簡単なプログラムを作っています。 <やっていること> ・フォームAからフォームBを開きます。 ・そのときにフォームAの番号と一致するデータをフォームBに表示します。 ・フォームBにはサブフォームCが埋め込んでいます。 このサブフォームCの中のフィールドDにカーソルが入っているようにしたいのですが、 Forms!サブフォームC!フィールドD.setfocus としたら、「カレントレコードには、フィールドDという名前のフィールドはありません」というエラーがでます。 フィールドDというフィールドは存在しています。 このような場合、どのように記述するのがよろしいのでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access フォーム上で最初のタブの位置をいつも同じフィールドに固定したい
Access97および2000を使用しています。 フォーム上で新規入力するとき、タブの位置が直前に入力したレコードの最後のフィールドと同じフィールドに来ています。 これを新規レコードを開いたら必ずタブは特定のフィールドにくるようにしたいのですが・・・。
- 締切済み
- オフィス系ソフト
- フィールドの移動について
Access2002を使っています。 データシートビューでフィールドを移動していましたが、移動できないフィールドもあります。これはどうしてでしょうか? 数値型などはフィールドを移動できないのでしょうか? 教えてください。
- ベストアンサー
- オフィス系ソフト
- Access 連結フィールド値を自動で表示
Accessでフォーム上にサブフォーム(データシート)を作成すると、 新規レコード欄にも自動的に連結フィールドの値が表示されます。 このサブフォームをメインフォーム上に作らずに、 コマンドボタンクリック時にあるフィールドが一致する(上記で言う連結フィールド)データを表示したサブフォーム(データシート)を開くかたちにしたいのですが、そうすると当然ながら新規レコード欄には連結フィールドの値は表示されません。 これをメインフォーム上にサブフォームを作った時と同じように、新規レコード欄に連結フィールド値を表示させるにはどうしたら良いでしょうか? サブフォームを開く段階で新規レコードに結合フィールドの値を(VBAで)入力する事も考えましたが、そうするともしそこにデータを入れるつもりじゃなくても1つのレコードとしてデータが残ってしまいます。 メインフォーム上に作ったサブフォームなら、新規レコードに結合フィールドの値は表示されているものの、その他のフィールドにデータを入力しなければ1つのレコードとしてデータが残ることはありません。 こういう事が可能かどうかわかりませんが、ご存知でしたら教えてくださいませ。 よろしくお願いします!
- ベストアンサー
- オフィス系ソフト
- 私のアクセス2003だけなのかわからないので教えてください。
フォームのデータシートビューの状態で、文字に色を付けたいのですが デザイン時にテキストボックスのプロパティの前景色を255にしても 色がつきません。 フォームビューにすれば色が付きます。 ただ、条件付書式で 「フィールドの値 次の値に等しくない ""」にすれば データシートビューでも全てのレコードに色が付きます。 これは仕様ですか? 何かわかる方よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access 2010 分割フォームのフィールド幅
Access2010で分割フォームを作りました。 分割ビューのデータシート部分のフィールド幅を記憶させることはできるのでしょうか? 幅を変えても、フォームを閉じてから開きなおすと、元の幅に戻ってしまいます。 フォームのプロパティをいろいろ変えてみたのですが、どうもうまくいきません。 どなたかご存知でしょうか?
- ベストアンサー
- その他(データベース)
- ACCESS2007のクエリについて
ACCESS2007のクエリについて ACCESS初心者です。 よろしくお願いします。 クエリを作成するときに、デザインビューでフィールドの位置を変更したり、 (たとえば、「氏名」の列を4列目から2列目に移動する) 並べ替えなどをして、データシートビューにすると反映されているのに、 データシートビューでフィールドの位置を変更したり、並べ替えなどをしても、 デザインビューには反映されてませんが、 クエリとはこういうものなのですか?
- ベストアンサー
- その他(データベース)
- Access2000(>_<)
Access2000を使っています。 既存のデータベースからレコードを削除できないように設定したいと思っています。 そこで、フォームのデザインにて、フォームのプロパティを開き、「データ」タブで「削除の許可」を「いいえ」にしてから閉じてみたのですが、試しにテーブルでレコードを削除してみると、削除できてしまいます。 再びフォームのプロパティを見ると、「削除の許可」が「はい」に戻っています。変更が保存されていないようです。 同様に、特定のフィールドの上書きを禁止したいので、同じくフォームのデザインで、上書きを禁止したいフィールドのテキストボックスのプロパティの「データ」タブにて、「編集ロック」を「はい」にしてから閉じましたが、この変更も保存されておらず、編集ができるままの状態です。 どうすれば変更を保存できるのでしょうか…。 またほかに、レコードの削除を禁止する方法、特定のフィールドのみ上書きを禁止する方法があれば教えてください。初心者なのでわかりやすく教えていただけると助かります。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- Access フォーム タブオーダー
サブフォーム付のフォームを作成しましたが、主フォームから サブフォームに移動する最、移動位置が正しくないのですが この設定はどのようにするのでしょうか? フォームの最後のボックスから移動した場合 サブフォームの先頭レコードの最後のフィールドに移動してしまいます。 最後から三番目のフィールドに移動させたいです。 タブオーダでEnterやTabキーで移動場所の設定はできますが 矢印キーで自由に移動できるように設定できないのでしょうか?
- 締切済み
- オフィス系ソフト
- Accessでの新規レコードの追加の方法
Windows XP上でMicrosoft Access 2000を使用しています。 オートナンバー型フィールド1つのみを含むテーブルに新規レコードを追加したいのですが、クエリやそれを基にしたフォームを介した方法はもちろんのこと、テーブルをデータシートビューで表示した状態でも追加することができません。 例えばレコードセレクタからレコード追加を選んでレコード保存を選んでも追加されません。 このテーブルに別のフィールドを追加してデータを入れるとレコードの追加が可能なのですが、オートナンバー型フィールド1つのみではうまくいきません。 どなたかオートナンバー型フィールド1つのみを含むテーブルに新規レコードを追加する方法を御存知でしたら御教示下さいませ。
- ベストアンサー
- その他MS Office製品
お礼
nicotinismさん ご回答ありがとうございます。 メインフォームなら動作したのですが、残念ながらがサブフォームだったので動作出来ませんでした。 次回メインフォームの機会がありましたら、参考にさせて頂きます。 ありがとうございました。