アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。

さっそく質問なのですが
keyDownイベントで、サッパリわからないことがありまして…。

例えば、「txt_名前」というテキストボックスがあって"田中太郎”と入力して
そのテキストボックスの名前と中身のデータがほしい場合

me.txt_名前 とすれば、項目名、項目の値がとれますが
(今回の例では「txt_名前」、「田中太郎」)

それを、未入力チェックをするファンクションに引数として
渡しているのですが。
clickイベントのときは、me.txt_名前 で情報がとれました。
けれど、keyDownイベントではNULLが返ってきてしまいます。

----【自分なりに考えた原因】---------
・keyDownイベントでは、入力された項目がまだ確定してないとか?
 (ただし、me.名前.textにすればバッチリとってこれる…。)
-----------------------------------------

どうすれば、項目名と項目の値がとれるのでしょうか?
me.txt_名前.name,me.txt_名前.textと2回渡さなければダメなのでしょうか?

またAfterupdateイベントにも、ちょっと心が引かれていて
上記のやりたいことを試してみたのですが無反応(イベントが起きなかった)でして…
フォームのプロパティを確認したら、ちゃんとイベントは入っていました。
他のコードが悪さしているのかとも思い、デバック機能で何度も検証を行いましたが
全く関係なかったです。
もしかして、非連結のテキストボックスでは反応しないのでしょうか?
いくつかのサイトで調べましたが
Dirtyイベントは非連結では発生しないと書いてはいましたが
Afterupdateイベントには書かれていませんでした

2つも質問してしまい申し訳ないのですが教えてください…。

A 回答 (1件)

keyDown、Afterupdateだと何か変更がされないと発生しないので


未入力チェックはできないと思います。

こちらを参考に
http://tsware.jp/study/vol13/prop_141.htm

タグを利用して未入力チェックをするコントロールに”未入力チェック”と登録しておき
ボタン等のクリック時にチェックさせるぐらいしか思いつきませんでした。

Private Sub cmd入力チェック_Click()
'[入力チェック]ボタンクリック時

Dim ctl As Control

'フォーム内のすべてのコントロールを探索
For Each ctl In Me.Controls
With ctl
If .Tag = "未入力チェック" Then
Call 未入力チェックプログラム
End If
End With
Next ctl

End Sub
    • good
    • 0
この回答へのお礼

すみません。遅くなりました。

イベントについては、更新のときに動くという言葉を
考えすぎてしまったようで。
何も書いてないテキストボックスを、そのままEnterで進んでも
このテキストボックスは結局何も打たれずに終わった。空のままでいい。
というような更新がかかるかと思ったんですけど。
そうじゃないんですね…。何か入力して確定をしてから
あのイベントは発生するということですよね。

最後にまとめてチェックするのが、やはり無難な気もしますけど…。
なんか諦めきれない自分がいるので、もう少し色々考えて頑張ってみます!(笑)
質問に答えてくださって本当にありがとうございます。
あと、コードやURLまで載せて頂きありがとうございました!

お礼日時:2017/02/03 09:54

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