次の方法で共有

カレントレコード数0の時、非連結テキストボックスに入力できない

Anonymous
2014-05-27T14:16:27+00:00

Access2010 2013

アクセスフォームにて

詳細セクションにフィルターのかけかた等によりカレントレコード数が「0」の場合、

ヘッダーやフッターにある非連結のテキストボックスにキーボードから入力できません。

※(コンボボックスでは可能)

これを解消する方法はありませんか?

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2014-05-28T11:37:11+00:00

大変失礼いたしました。

自分で書いたVbaコードの問題でした。

フォームは帳票フォーム形式で、キーボードのカーソルキーでエクセル風に、各フィールドを左右上下に移動できるようにしていました。

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

    If Me.Recordset.RecordCount = 0 Then

        Beep

        KeyCode = 0

        Exit Sub

    End If

    If ActiveControl.Name = "左端フィールド" And KeyCode = vbKeyLeft Then KeyCode = 0  'レコードの左端

    If ActiveControl.Name = "右端フィールド" And KeyCode = vbKeyRight Then KeyCode = 0  'レコードの右端

    If CurrentRecord = 1 And KeyCode = vbKeyUp Then KeyCode = 0                          'レコードの上端

    If Me.Recordset.RecordCount = CurrentRecord And KeyCode = vbKeyDown Then KeyCode = 0 'レコードの下端

    'レコードの移動

    If KeyCode = vbKeyDown Then 次のレコード移動

    If KeyCode = vbKeyUp Then 前のレコード移動

End Sub

上記コードがフッターにも適用されるとは思ってなかったので、Recordset.RecordCount = 0 に捕まっていました。

先頭行に

If ActiveControl.Name = "フッターテキスト" Then Exit Sub

を追加して解決しました。

ご迷惑をお掛けして申し訳ありませんでした。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-05-30T06:48:18+00:00

    nyohoue さん、こんにちは。

    確認結果などの書き込み、ありがとうございます。

    フォームの KeyDown (キークリック時) イベントに設定している VBA の処理内容が関係していた現象で、コードを追加することで回避できたんですね。

    Access のトラブルではないことがわかり、安心しました。

    また何かありましたら、気軽に当フォーラムをご利用ください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-05-28T08:08:35+00:00

    nyohoue さん、こんにちは。投稿ありがとうございます。

    Access 2010、2013 で、フィルターの絞り込み方によって非連結テキスト ボックスに入力できなくなることがある、ということですね。

    手元の PC ( Windows 8.1 + Access 2013 ) で簡単な内容の accdb ファイルを作って確認してみました。

    フォームの詳細セクションに表示されるレコード数が 0 になるようにフィルターをかけてみたのですが、ヘッダー、フッターに配置した非連結テキスト ボックスへの入力は可能でした。

    ( [ホーム] タブ の [フィルター] をクリックしてから条件を設定しました)

    既存のテキスト ボックスに要因があるかもしれないので、非連結のテキスト ボックスを新しく配置して、そのテキスト ボックスではどのようになるかを試してみてください。

    あわせて、以下についてもわかるとよいと思います。

    ・ フィルターをかける際の手順

    ・ 詳細セクションのレコード数が 0 の時に、非連結テキスト ボックスへの入力を制限するような VBA コードを設定していませんか?

    返信、お待ちしています。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません