プロが教えるわが家の防犯対策術!

登録したデータの中から該当するID(データの頭2つ)を抜き出し、それを参照にLabel5と6に名前と所属のデータを表示させています。
該当データがない場合はLabel4に該当なしと表示します。

下の様に作ってみたのですが、どのIDを打っても名前と所属はちゃんと出るのですが、該当なしまで一緒に表示されます。
これはどこを変更したらいいのでしょうか?

Public Class Form1
Dim data(9) As String


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Data(0) = "01山田 花子     デバイス部"
以下Data(9)まで続く・・      

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For i = 0 To 9
If Mid(ShainData(i), 1, 2) = TextBox1.Text Then
Label5.Text = Mid(Data(i), 3, 9)
Label6.Text = Mid(Data(i), 13, 2)

Else
Label4.Text = "該当なし。"

End If

Next

A 回答 (2件)

For i = 0 To 9


If Mid(ShainData(i), 1, 2) = TextBox1.Text Then
Label5.Text = Mid(Data(i), 3, 9)
Label6.Text = Mid(Data(i), 13, 2)

Else
Label4.Text = "該当なし。"

End If

Next
上記の部分ですがボタンを押したときに0~9回、回っているようなので、そのうち8回はelseに入ってるようです
if文には一回だけ入ればよい
elseには上記に一回も入らなければ入る条件にすればよい
たとえば
For i = 0 To 9
If Mid(ShainData(i), 1, 2) = TextBox1.Text Then
Label5.Text = Mid(Data(i), 3, 9)
Label6.Text = Mid(Data(i), 13, 2)
End If
Next
if Label5.Text.文字数 = 0 Then
Label4.Text = "該当なし。"
end if
このようにしたらどうでしょうか
    • good
    • 0

ロジック追えば当たり前でしょう。


1行ずつデバッグ実行してみればすぐ分かる筈ですよ。

#新人研修か何かかなぁ。
    • good
    • 0

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