アクセス2000でメインフォームにサブフォーム(クエリ)を埋め込みました。

メインフォームからEnterキーを押すと、
サブフォームにクエリーの結果が表示されます。

ところが、その後、いくらEnterキーを押してもカーソルがメインフォームへ戻りません・・・
「マウスでクリックせずに、Enterキーでメインフォームへ戻りたい!!」

埋め込んだサブフォームのプロパティ・タブストップを「いいえ」にすると、
クエリーの結果は出てこない、どうしたらいいのでしょう。。。教えて下さい!!!!

このQ&Aに関連する最新のQ&A

A 回答 (2件)

あ、どうも言葉が少なかったようですm(_ _)m。



#1でマクロを指定するのは、サブフォームの「フォーカス喪失後」じゃなくて、サブフォーム上にあるコントロールの「フォーカス喪失後」です。

サブフォーム上に幾つかのテキストボックスを配置しますよね。
で、それらに適当にタブオーダーを設定して、一番最後にフォーカスが移るコントロールの「フォーカス喪失後」に前述のマクロを設定してやればいい、と思います。
    • good
    • 0
この回答へのお礼

大変遅くなってしまいすいません。

出来ました!!!!ありがとうございました!!!!
アクセス2000から97に変更した事もあって、
ここに戻ってくるまでに、てんやわんやしまして・・・

御礼を言うのが遅くなってしまいましたが
本当にありがとうございました!!!!!!

お礼日時:2001/03/07 22:25

オブジェクトの選択,フォーム,フォーム名,いいえ


コントロールの移動,親フォーム上のコントロールの名前

ってなマクロを作って、サブフォーム上のコントロールの「フォーカス喪失後」に設定してやればいいんじゃないかと思います。

この回答への補足

回答ありがとうございます。
ちなみに、アクセス97で変換して開いたら
埋め込んだサブフォームのプロパティに「フォーカス喪失後」がありません。
こんな時はどうしたらよいのでしょうか?
お忙しい時にすいません・・・でも教えて下さいーーーーー!!!

補足日時:2001/02/19 22:53
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccess2000のフォームでのフォームのIMEが、2度目以降変更してしまう。

アクセス初心者です。
Accsss2000のフォームでのデータ入力を楽におこなうために、例えば名前ならばテキストボックスのプロパティシートのその他タブから、IME入力モードをオンにしてかつIME変換モードを人名/地名に変更したのですが、1回目の入力はIMEが全角・人名モードになるのですが、2度目以降は半角カタカナ・人名/地名モードになってしまいます。全角ではありません。なぜでしょうか?
また上のタブにIME入力モード保持というのもありますが、どういう時に利用すればよいのでしょうか?

Aベストアンサー

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、「ひらがな/全角カタカナ/半角英数」などのモードを特に指定
 しない場合に使用します。そのため、特定モードで固定したい場合は、
 それに合わせた設定値(ここでは「ひらがな」)を指定する必要がある、
 ということです)


> 上のタブにIME入力モード保持というのもありますが、どういう時に
> 利用すればよいのでしょうか?

私自身はこの設定は使用していないのですが・・・(汗)

例えば、取引情報を入力する場合、『企業略称』テキストボックスには
「アルファベットの略称」や「漢字の略称」、「カタカナの略称」がそれぞれ
連続することになります。
このとき、同テキストボックスの『IME 入力モード』を「ひらがな」などに固定
してしまうと、アルファベットやカタカナの略称のデータを入力する際には
毎回手動で「全角カタカナ」や「半角英数」に切り替える・・・という使い方を
する方もいる可能性があります。
『IME 入力モード保持』は、恐らくそういう場合を想定した機能ではないかと
思います。
(もちろん、ひらがなからの変換で全角カタカナや半角英数に変換するように
 している人の場合は、切替は不要ですので、この設定は使用しなくても
 かまわないことになります)

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、...続きを読む

QAccessで、サブフォームのあるフォーム内をEnterキーで移動したい

いつもお世話になっております。
質問させてください。m(_ _)m

Accessで、サブフォームのあるフォームを作成すると、同一フォーム内のフィールド移動は「Enter」で動きますが、フォーム間の移動は「Ctrl+tab」になります。
画面に表示されているフィールド間全部を(サブフォームであってもなくても関係なく)「Enter」キーのみで移動していく方法はありますか?
あればその方法を教えてください。
移動順序も変えられたらありがたいです。

よろしくお願いします。

Aベストアンサー

> 移動順序も変えられたらありがたいです。

タブ移動順のことでしたら、プロパティシートで指定できます。
 1)フォームをデザインビューで開く
  (Access2000以降ならフォームビューでも可)
 2)右クリックメニューなどでプロパティシートを開く
 3)コントロールのどれかを選択
 4)「その他」タブの「タブ移動順」にカーソルを移動させ、右端に表示される
  「...」をクリック
 5)「タブオーダー」ダイアログが表示されるので、クリック&ドラッグで各コント
  ロールの移動順序を編集(詳細/ヘッダ/フッタでそれぞれ別なので注意)
 6)「OK」をクリックして「タブオーダー」ダイアログを閉じる
 7)フォームを保存
・・・以上です。
(上記の方法ではなく、数字自体を編集すると変な結果になることがあるので
 注意して下さい)

  ------------------------------

> 画面に表示されているフィールド間全部を(サブフォームであってもなくても
> 関係なく)「Enter」キーのみで移動していく方法はありますか?

残念ながら、私の知っている範囲では、その方法は用意されていません。
なので、自作するしかありません。

で、自作するにしても、
 A)FunctionまたはSubとして用意して使い回し
 B)フォーム毎に個別でコード作成
の2通りの対応がありますが、「A」の方法は色々と考えなければならないことが
多すぎて、かなり厳しいです。
(例えば、ヘッダ/フッタの有無、レコード移動の可否(連結/非連結フォームの
 切り分け)、新規レコードの表示の有無(メインフォームに戻るのは最後の
 レコードの時か新規レコードの時か)・・・等を判定するコードが必要)

なので、当面はフォーム個別で対応されることをお薦めします。
方法の一例としては・・・メインフォーム・サブフォームにフォーカスを飛ばすための
コントロールを設置する、という方法があります。

例えばフォームの構成が
 メインフォーム;フォーム名=MF
  TB1,TB2(テキストボックス),SF1(サブフォーム),Cmd1,Cmd2(コマンドボタン)
 サブフォーム;フォーム名=SF (SF1のソースオブジェクト)
  Tx1,Tx2,Tx3(テキストボックス)
だったとします。

メインフォームに「Prv」「Nxt」、サブフォームに「Rtn」「Ext」というコントロール
(例えばオプションボタン等)を設置し、それぞれのタブ移動順を、
 メインフォーム ; TB1→TB2→Prv→SF1→Nxt→Cmd1→Cmd2
 サブフォーム ; Rtn→Tx1→Tx2→Tx3→Ext
となるように設定します。

そうしたら、メインフォームの「Prv」「Nxt」の「フォーカス取得後」イベントに
以下のコードを記述します;

Private Sub Prv_GotFocus()  '「→」「Tab」キー等で移動時
On Error GoTo エラー処理
'サブフォームの先頭レコードに移動
SF1.SetFocus  
With SF1.Form
!Tx1.SetFocus
DoCmd.GoToRecord , , acFirst
End With
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Prv"
Resume 終了処理
End Sub

Private Sub Nxt_GotFocus()  '「←」「Shift+Tab」等で移動時
On Error GoTo エラー処理
'サブフォームの新規レコードに移動
SF1.SetFocus
With SF1.Form
!Tx3.SetFocus
DoCmd.GoToRecord , , acNewRec
End With
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Nxt"
Resume 終了処理
End Sub

次に、サブフォームの「Rtn」「Ext」の「フォーカス取得後」イベント;

Private Sub Ext_GotFocus()  '「→」「Tab」キー等で移動時
On Error GoTo エラー処理
'新規レコードの場合はメインフォームに戻る
If Me.NewRecord Then
Tx3.SetFocus
Me.Parent!Cmd1.SetFocus
Else
Tx1.SetFocus
DoCmd.GoToRecord , , acNext
End If
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Ext"
Resume 終了処理
End Sub

Private Sub Rtn_GotFocus()  '「←」「Shift+Tab」等で移動時
On Error GoTo エラー処理
'先頭レコードの場合はメインフォームに戻る
If Me.CurrentRecord = 1 Then
Tx1.SetFocus
Me.Parent!TB2.SetFocus
Else
Tx3.SetFocus
DoCmd.GoToRecord , , acPrevious
End If
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Rtn"
Resume 終了処理
End Sub

さらに、サブフォームの「開くとき」イベント;

Private Sub Form_Open(Cancel As Integer)
On Error GoTo エラー処理
Tx1.SetFocus
終了処理:
Exit Sub
エラー処理:
MsgBox Err & ":" & Error$, , Me.Name & " Open"
Resume 終了処理
End Sub


・・・以上です。

なお、「Rtn」等のコントロールはクリックした場合も同じ動作をするので、
他のコントロールと重ねた上で、メニューで「書式(O)→最背面に移動(K)」
として、ユーザーの目から隠しておくことをお薦めします。

> 移動順序も変えられたらありがたいです。

タブ移動順のことでしたら、プロパティシートで指定できます。
 1)フォームをデザインビューで開く
  (Access2000以降ならフォームビューでも可)
 2)右クリックメニューなどでプロパティシートを開く
 3)コントロールのどれかを選択
 4)「その他」タブの「タブ移動順」にカーソルを移動させ、右端に表示される
  「...」をクリック
 5)「タブオーダー」ダイアログが表示されるので、クリック&ドラッグで各コント
  ロールの移動順序を編集(詳細/...続きを読む

Qフォーム等入力時においてIMEが働かない(?)

よく起こる現象で、インターネットでフォーム入力や、Yahooとかの検索入力で日本語入力をしたいときに、IMEが働かない現象が起きています。半角英数のみ入力ができます。私の環境だけでしょうか‥。
キーボードの「半角/全角」キーが効かないので、IMEツールバーを出して、マウスで日本語入力の「あ」にしても入力画面では半角英数に戻ったりします。
Wordやメモ帳を起動すると、正常に働くので、メモ帳を立ち上げてそこへ入力して、コピーしてペーストをしたりして対処をしています・・。
常にメモ帳を立ち上げておけば解決とかの意味ではありません。
IEをアクティブウィンドウにした場合、IMEが働くなくのです。

Aベストアンサー

確かIEのバグだったと思います。

対処法のリンクを貼っておきますので、参考にしてください。
http://www.tku.ac.jp/~densan/local/ie7-ime/ie7-ime.html

Qアクセスのサブフォームからメインフォームへキーで切り替えをする

何度もお世話になっております。m(_ _)m

アクセスのフォームで、サブフォームを作成しています。
EnterキーまたはTabキーで、フォームの中を進んでいくと、メインフォームのフィールドからサブフォームのフィールドへ進みます。
この進む順番は、タブオーダーで設定できるので問題ないのですが、
サブフォームの情報を入力し終えて、メインフォームへカーソルを飛ばしたい場合、どうすればいいのでしょうか?
そのままEnterやTabを押しても、サブフォームの中の新規レコードが追加されるだけです。
自分でキーなどを設定できるのであれば、なおさら良いのですが・・・
とりあえず、基本的な操作方法として、サブフォームからメインフォームへ移るキーを教えてほしいです。

よろしくお願いします。

Aベストアンサー

Ctrlキーを押しながらTabキーを押せば、サブフォームからメインフォームに戻れます。

なお、ご質問とは関係ありませんが、フォームヘッダ・フォームフッタと詳細領域を行き来したい場合は、
「F6」キー(単独)で行えます。

QWebフォームのIMEモードを入力項目毎に自動切替

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにアプリケーション側で制御されるものが大半だと思っておりました。それを聞いてある人は「そんなことはない、世の中の大半のアプリはそんなことを制御していない、「普通」は自分でIMEで制御しながら入力するものだ」、と言っていたので議論になりました。これからウェブサイトを作ろうと思っているので、最終的にはこの議論はアプリ側にそのような実装をするかどうかというところに帰着するのですが、まずは「一般的にどうなのか」というところでご意見を頂きたいと思います。ちなみに、日本のメジャーなサイト(航空会社、ポータル、携帯電話、電気屋)10個でユーザ登録フォームを確認したところ、名前欄をクリックしてもいずれもIMEのモードはひらがなに変更されませんでした。そこで今は友人が正しくて、僕が間違っていたどころか、「そもそも、名前入力時に自動的にひらがなにモード変換されるようなサイトって本当にあるのだろうか。。」というような状態になっております。どなたか、教えてください。よろしくお願いします。

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにア...続きを読む

Aベストアンサー

IMEのON/OFFができるスタイルシート「ime-mode」は、Internet Explorerが独自に追加した仕様で、Internet Explorerでは入力モードが切り替わりますが、その他のブラウザでは保証されません。
http://www.htmq.com/style/ime-mode.shtml

今、確認したところ、IE8はもちろん切り替わり、Firefox 3.6も切り替わりましたが、Google Chromeは切り替わりませんでした。
Opera,Safari,Sleipnir…等は試してません。

大手のサイトでは「より多くのブラウザで表示できること」が求められますので、独自仕様の「ime-mode」を使っているところは少ないのではないでしょうか。
逆に「Internet Explorerしか表示できなくて良い」と割り切ってるサイトや、社内だけに公開するようなページは「ime-mode」が使われていると思います。

Qサブフォームからメインフォームに移動

 現在ACCESS2000を使用してシステムを作成しております。のですが、サブフォームからメインフォームの特定のコントロールに移動したいと思っています。しかし、ちょっとやり方がわかりません。わかる方よろしくおねがいします。

Aベストアンサー

サブフォーム側のVBAで移動ということですよね?

メインのコントロール名を[txtMainBox]とすると、

Parent!txtMainBox.SetFocus

ですね。
サブフォーム側のコードです。

QACCESS フォーム上 テキストボックスを移動するごとに文字の入力モードが戻ってしまう

ACCESSでフォーム上で入力をしています。
テキストボックスを移動するごとに半角英数になってしまい非常に不便です。

テーブルではIME入力モード:ひらがな、IME返還モード:一般としています。
テーブルのデザインビューの状態では指定している通りのひらがなで入力できるのが、フォームになると半角英数の状態です。
フォームのプロパティから何か設定を変更しなければいけないのでしょうか?
よろしくお願い致します。

Aベストアンサー

maigo-no-konekoさん
ACCESS2000では次の機能があります。
テーブルの項目定義のIMEの設定内容が引き継がれる仕様なのか
否か不明ですが、フォームの定義画面でテキスト項目やコンボボックス
など入力項目毎に指定します。
(ただし、シフトキーを押しながらマウスクリックすることで
複数選択できます)

1)テキストポックスのプロパティ画面を呼び出します。
2)その他 タブにIME関連の項目があります。
  IME入力モード保持 直前に入力した項目のIMEの入力設定
  状態を引き継ぐ場合は「はい」にします。直前の入力項目の
  設定によらない場合は「いいえ」にします。
  IME入力モード オンまたはひらがな等にします。
           ここでご希望の入力方法を選択します。
  IME変換モード 一般(人名や地名などを入力す場合は
  人名/地名)にします。

QAccessのメインフォームとサブフォーム

メインフォームのコマンドボタンからサブフォームのテーブルを操作することは可能でしょうか?

【メインフォーム】
   日付[_2006/2/3]   『回数A(コマンドボタン)』
   品物[_りんご]    『回数B(コマンドボタン)』
   製作所[_青森]

 【サブフォーム】
    社員コード 所属   氏名   回数A 回数B
    [_1234]  [_福島] [_山田] [_1]  [_0]
    [_2345]  [_山形] [_佐藤] [_1]  [_0]

とあるときに、『回数B(コマンドボタン)』をクリックすると、サブフォームの社員コード
「1234」と「2345」の回数Bに「1」(回数B+1)を入力し、回数Aを「0」(回数A-1)
としたいのです。

どのようにすればいいのでしょうか?
よろしくお願いします。

Aベストアンサー

VBAが使える(参照設定でVBを設定等)のであれば、「回数B」ボタンのプロパティのイベントのクリック時のイベントプロシージャー内に、
Me![サブフォーム名]![回数B] = Me![サブフォーム名]![回数B]+1
Me![サブフォーム名]![回数B] = Me![サブフォーム名]![回数B]-1
と命令することで出来ます。

QAccess フォームのテキストボックスに半角英字のみで入力する設定は

IME入力モードをテーブル・フォームともオフにしたのですがひらがな入力モードになってしまいます。
フォームのテキストボックスに半角英字のみで入力する設定としてプロパティのIME入力モードをオフにするやり方自体が間違っているのでしょうか。
それともATOKを使っているなど利用するパソコン側の問題でしょうか

Aベストアンサー

IME入力モードを「使用不可」にしましょう。

QAccess メインフォーム サブフォームにて

お世話になります。

Accessにて
メインフォームにコマンドボタンを置いて、クリックするとサブフォームのレコードが
次に行くようにしたいのですが、

コマンドボタン クリック
Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus
DoCmd.GoToRecord , , acNext

メインフォームとサブフォームのレコードが次に行ってしまいます。
サブフォームだけ次のレコードに行くには、どのようにすれば良いのでしょうか。

分かる方教えて下さい。
宜しくお願いします。

Aベストアンサー

>Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus


Forms!FMain!埋め込み0.SetFocus
DoCmd.GoToRecord , , acNext

以下の[サブフォーム表示コントロール名]はサブフォームそのものの
名前でなく、デザインビューでサブフォームを表示するために設定
するコントロールの名前で、初期値は[埋め込み0]のような名前
であることに留意をしてください。もしサブフォームと同じ
名前に設定しているならば問題はありませんが。

以上を踏まえて、たとえば、

Forms![メインフォーム]![サブフォーム表示コントロール名].SetFocus
DoCmd.GoToRecord , , acNext

これで、サブフォームの次のレコードに移動します。
もし、質問の中の特定のフィールドにフォーカスを
当てたいのであれば、移動後にその特定のフィールドに
フォーカスを当てればいいので、

Forms![メインフォーム]![サブフォーム表示コントロール名].SetFocus
DoCmd.GoToRecord , , acNext
Forms![メインフォーム]![サブフォーム表示コントロール名].Form![フィールド名].SetFocus

これで、レコードを移動したときにフォーカスは
特定のフィールドに当たっています。

>Forms![メインフォーム]![サブフォーム名].Form!フィールド名.SetFocus


Forms!FMain!埋め込み0.SetFocus
DoCmd.GoToRecord , , acNext

以下の[サブフォーム表示コントロール名]はサブフォームそのものの
名前でなく、デザインビューでサブフォームを表示するために設定
するコントロールの名前で、初期値は[埋め込み0]のような名前
であることに留意をしてください。もしサブフォームと同じ
名前に設定しているならば問題はありませんが。

以上を踏まえて、たとえば、

Forms![メインフォーム]![サブフォー...続きを読む


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

人気Q&Aランキング

おすすめ情報