未入力があったら追加できなくする

解決


A  2006-02-22 19:07:24  No: 130340

追加ボタンを押して、もし未入力があったらエラーメッセージを表示して、
追加はできないプログラムを作りたいです。
エラーメッセージは表示できますが、なぜか追加までされてしまいます。
どうしたらよいのでしょうか??

Private Sub cmd2_Click()
 Dim FNAME As String
 Dim ret As String
 
 CommonDialog1.ShowSave
 FNAME = CommonDialog1.FileName
 
 If txt1.Text = "" Or txt2.Text = "" Then
 MsgBox "未入力のデータがあります", vbExclamation
 End If
 
 Open FNAME For Append As #1
 Print #1, txt1.Text & "," & txt2.Text
 Close #1
 
 ret = MsgBox("追加されました", vbOKOnly, "確認")
 If ret = vbOK Then
    Close
  Else
    txt1.SetFocus
    
 End If
End Sub


T★M  2006-02-22 19:24:49  No: 130341

MsgBoxは、メッセージボックスを表示するだけです。
プログラムを停止したり、プロシージャを抜けたりしませんから、そのまま
処理は継続されます。

ヘルプの制御構造辺りを読めば、幸せになれると思います。


A  2006-02-22 19:49:24  No: 130342

Do〜Exit Do  あるいは  For〜Exit For を用いる場合、
条件式はIFから始まる文でいいと思うんですが、
DoまたはForの後の命令は入れればいいんですか?


え?  2006-02-22 19:50:01  No: 130343

基本的にプログラムは上から下へ
順番に処理が行われます。

あえてヒント
Exit Sub を使うと良いかも。


Dental  2006-02-22 20:24:50  No: 130344

ファイル名を指定させるのは、入力チェックの後の方が良いとか言ってみるテスト。

> Do〜Exit Do  あるいは  For〜Exit For を用いる場合、
それらを、どこで用いるつもりなのですか?

> 条件式はIFから始まる文でいいと思うんですが、
いや、条件判断自体はよいけど、判断した後の処理の流れがマズイという話かと。

まぁ、Exit Sub についてはすでに出ているので……あえて別案を書いてみると、
未入力だったら、そもそも cmd2 を押せないように制御するという手もあるかな。
(cmd2_Change で判断して、cmd2 の Enabled を書き換えるとか、
 cmd2_Validate で判断して、フォーカス移動を Cancel するとか)


A  2006-02-22 20:25:41  No: 130345

すいません。できました。
ありがとうございました。


A  2006-02-22 20:48:11  No: 130346

解決後にすいません。
Exit Subを入れたら後の処理が出来なくなってしまいました。。
どうしたらいいでしょうか。。
初歩的な質問すいません。。


A  2006-02-22 22:20:27  No: 130347

Exit Subの入れる場所違ってました。。すいません。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加