質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

681閲覧

dategrindviewの絞り込み機能について

nbbba

総合スコア6

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/10/30 07:34

編集2019/10/30 07:48

textBoxに書いた文字がdategrindviewに表示されたデータと一致した場合、dategrindview上にその内容が、選択または絞り込まれる機能を作りたいと思っています。

Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button.Click DataGridView1.ClearSelection() Dim hasData As Boolean = False Dim resultIndex As Int32 = 0 For i As Integer = 0 To DataGridView1.RowCount - 1 Dim inputString1 As String = DataGridView1.Rows(i).Cells("0").Value Dim inputString2 As String = DataGridView1.Rows(i).Cells("1").Value Dim inputString3 As String = DataGridView1.Rows(i).Cells("2").Value Dim inputString4 As String = DataGridView1.Rows(i).Cells("3").Value If Textbox1.Text = inputString1 Then hasData = True resultIndex = i End If If Textbox2.Text = inputString2 Then hasData = True resultIndex = i End If If Textbox3.Text= inputString3 Then hasData = True resultIndex = i End If If Textbox4.Text = inputString4 Then hasData = True resultIndex = i End If If hasData = True Then DataGridView1.Rows(resultIndex).Selected = True Else MessageBox.Show("該当なし") End If Next

現状ではこのように記しているのですが、該当なしが正しい場合にも表示されたり、データがうまく絞り込みができません。よければ教えてくださいお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/10/30 07:37

これではコードは見づらいです。質問を編集し、<code>ボタンで、出てきた’’’の枠の中にコードを貼り付けてください
nbbba

2019/10/30 07:49

すみません、編集しました!
YAmaGNZ

2019/10/30 07:51

うまくできないとはどのような状況になるのでしょうか? 具体的なデータ例などで説明できませんか?
nbbba

2019/10/30 08:04

YAmaGNZさん textbox1が名前なのですが、一番初めの検索でaと検索した場合、きちんとデータが選択されますが、2回目に違う名前を入れると該当なしと表示されてから新しい名前が選択されるようになってしまいます。 また、そのほかの項目でも、一度該当なしとメッセージで表示されてから正しい値が選択されるという状況になってしまいます。
退会済みユーザー

退会済みユーザー

2019/10/30 08:49

DataGridView を直接操作するのではなく、以下のような構成にして、 データソース ⇔ DataTable ⇔ BindingSource ⇔ DataGridView DataTable を操作して絞り込む方がよさそうです。どうしますか?
nbbba

2019/10/30 09:45

すみません。VBNET初心者なもので・・ dategrindviewにはTextBoxで値を入力したものを計算し、算出してdategrindviewに記録するよう構成しているのですが、そのような場合でも可能ですか?可能であれば手順を教えていただきたいです。お願いします。
nbbba

2019/10/30 11:26

わざわざありがとうございます!今回の課題とは違ったんですが、勉強になりました。ありがとうございます。
guest

回答2

0

TextBoxもセルもなにも書かれていなかったら一致したとみなされますね。
各条件に、なにかが書かれていれば、という条件を追加しましょう

投稿2019/10/30 07:52

編集2019/10/30 07:52
y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ループの中で該当なしか判断しているからではないですか?
1行目のデータとTextbox1.Textが比較され、違うと判断されたとき「該当なし」と表示後に次の行の判断に進んでいます。

デバッガの使い方を学んで、ステップ実行し自分が作成したプログラムがどのように動作しているか確認してみてください。

投稿2019/10/30 11:59

YAmaGNZ

総合スコア10242

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nbbba

2019/10/30 12:07

ああ!なるほど!ありがとうございます。原因がわかりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問