- PR -

データビューで複数の抽出条件を使うには

1
投稿者投稿内容
けんけん
会議室デビュー日: 2004/07/23
投稿数: 3
投稿日時: 2004-07-23 16:57
いろいろ 試行錯誤しながらがんばってますが、なにぶんにも知識が少ないので、

データビューで複数の抽出条件の設定がどうしても出来ません。
いま こんな感じかと思っているのですが
   一覧表操作.RowFilter = ""
Dim codehi As Long
codehi = TextBox1.Text
Dim txt As String
txt = ComboBox1.Text
     一覧表.RowFilter = "現場名=" & txt And "日付コード=" & codehi

ここで 文字列 "現場名=全現場共通" から型 'Long' へのキャストが有効ではありません。とエラーになります。

考え方が 間違っているのでしょうか。アドバイスをお願いできませんでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-23 18:07
引用:

けんけんさんの書き込み (2004-07-23 16:57) より:

一覧表操作.RowFilter = ""
Dim codehi As Long
codehi = TextBox1.Text
Dim txt As String
txt = ComboBox1.Text
一覧表.RowFilter = "現場名=" & txt And "日付コード=" & codehi


こうしてみるより、こうした方がわかるかな?
コード:
一覧表操作.RowFilter = ""
Dim codehi As Long = TextBox1.Text
Dim txt As String = ComboBox1.Text
一覧表.RowFilter = "現場名=" & txt & "And 日付コード=" & codehi


 codehiが、入力するのは数字かもしれませんが(ユーザが必ず数字を入力してくれることを期待するのはどうかと思います)、文字列と数値の演算はできません。ここは、入っているのは数値であっても、文字列としましょう。
コード:
一覧表操作.RowFilter = ""
Dim codehi As String = TextBox1.Text
Dim txt As String = ComboBox1.Text
一覧表.RowFilter = "現場名=" & txt & "And 日付コード=" & codehi

けんけん
会議室デビュー日: 2004/07/23
投稿数: 3
投稿日時: 2004-07-23 22:52
ありがとうございました。こんなに早く解決できてうれしいです。

  Dim codehi As String = TextBox1.Text
  Dim txt As String = ComboBox1.Text
  一覧表操作.RowFilter = ""
   一覧表操作.RowFilter = "現場名='" & txt & "' And 日付コード = '" & codehi & "'"
で 解決しました。 変数の扱いと 条件式の記述が微妙に間違っていました。
基本がまだまだあやふやなので 一度引っかかるとなかなか先に進めなくなるので、とても勉強になりました。(今後は、落ち着いて基本を確認します。)
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-26 08:56
引用:

けんけんさんの書き込み (2004-07-23 22:52) より:
ありがとうございました。こんなに早く解決できてうれしいです。


 解決できて何よりです。
コード:
一覧表操作.RowFilter = "現場名='" & txt & "' And 日付コード = '" & codehi & "'"


この部分ですが、こんな風にもできます。
コード:
一覧表操作.RowFilter = String.Format("現場名='{0}' AND 日付コード='{1}'",
    txt, codehi);


メモリの使用量や実行効率が若干よくなる“らしい”です。私は見やすいので使っています。
けんけん
会議室デビュー日: 2004/07/23
投稿数: 3
投稿日時: 2004-07-27 08:06
>この部分ですが、こんな風にもできます。
・・・・

確かに 見やすいです。前の書き方だと 「"」とか抜けたり「&」が抜けたり
私も こちらを使わせていただきます。
1

スキルアップ/キャリアアップ(JOB@IT)