次の方法で共有

Access2010 日付選択後にボタンが動作しない

Anonymous
2015-01-28T01:35:35+00:00

サブフォーム上に日付項目(テキストボックスの書式を「日付」にした項目)

メインフォーム上にコマンドボタンがある画面で、

サブフォームの日付項目で日付選択カレンダーを使って日付を選択した後

メインフォームのコマンドボタンをクリックしてもボタンが反応しません。

2回クリックすると反応するようですが、原因が分かりません。

日付選択後に、parentを使って強制的にメインフォームにフォーカスを当てたり、

Sendkeysでエンターキー押下を発生させたり

してみましたが、解決できません。

解決策をご存知の方がいらっしゃいましたら、よろしくお願いいたします。

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

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

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

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

Anonymous
2015-01-29T14:21:57+00:00

テキトーに何処かをクリックしてからだと出来るっぽいです。

SendKeys "{左クリック}" 的なモノを探してみてみました。

http://hanatyan.sakura.ne.jp/vbhlp/mouse\_event.htm

を参考(丸写し)に標準モジュールにて。

'マウスを擬似的に動作させる

Private Declare Sub mouse_event Lib "user32" ( _

    ByVal dwFlags As Long, ByVal dx As Long, _

    ByVal dy As Long, ByVal cButtons As Long, _

    ByVal dwExtraInfo As Long)

Private Const MOUSE_MOVED = &H1              'マウスを移動する(相対座標)

Private Const MOUSEEVENTF_ABSOLUTE = &H8000& 'MOUSE_MOVED or で絶対座標を指定

Private Const MOUSEEVENTF_LEFTUP = &H4       '左ボタンUP

Private Const MOUSEEVENTF_LEFTDOWN = &H2     '左ボタンDown

Private Const MOUSEEVENTF_MIDDLEDOWN = &H20  '中央ボタンDown

Private Const MOUSEEVENTF_MIDDLEUP = &H40    '中央ボタンUP

Private Const MOUSEEVENTF_RIGHTDOWN = &H8    '右ボタンDown

Private Const MOUSEEVENTF_RIGHTUP = &H10     '右ボタンUP

'現在のマウスカーソルの位置座標を取得する

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

'マウス位置を指定

Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long

'

'マウス位置用の POINTAPI 構造体

 Private Type POINTAPI

   X As Long

   Y As Long

End Type

'マウス位置の一時記憶用

Private mPos As POINTAPI

Sub mPosGet()

    Call GetCursorPos(mPos) 'マウス座標の取得

End Sub

Sub mClick()

    SetCursorPos mPos.X, mPos.Y

'    Debug.Print mPos.X, mPos.Y

    mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0

    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

End Sub

フォームの『日付』コントロールのイベントに

Private Sub 日付_Change()

    Call mClick

End Sub

Private Sub 日付_GotFocus()

    Call mPosGet

End Sub

だと、どうかいな?

『っぽい』なので検証は不十分です。

(Win8.1 & Access2013 でも 『っぽい』でした)

(結果報告にドキドキ)

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

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

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-01-30T02:23:28+00:00

    nicotinismさん、回答ありがとうございます。

    こちらはWin7&Access2010ですが、

    記載していただいたコードを実装しましたら

    1回のクリックでコマンドボタンが反応するようになりました。

    動作検証していますが、今のところ問題なさそうです。

    大変助かりました。ありがとうございました!

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

    0 件のコメント コメントはありません
  2. Anonymous
    2015-01-28T08:06:43+00:00

    ずっちさん、試していただきありがとうございます。

    レイアウトの変更は大幅な修正になってしまいますので、

    最終手段と考えております。

    引き続き、何か回避策がありそうでしたらよろしくお願いします。

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

    0 件のコメント コメントはありません
  3. Anonymous
    2015-01-28T04:13:01+00:00

    こんにちは、ずっちです。

    2013ですが、試してみたら同じ動作をしました。

    いろいろ回避策をうってみましたが改善せず。

    同じフォーム上のボタンなら問題なくクリックできるので、

    この問題を回避するためにフォームのレイアウトを考え直した方が早いかもですね・・・

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

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