- PR -

フィルターの抽出条件に変数を使いたい。

投稿者投稿内容
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-08-10 11:11
初めて投稿します初心者です。
BindingSourceオブジェクトのFilterプロパティを次のように
設定して、正常に動作しています。
例 →aaaBindingSource.Filter = "番号 = 123 "

この抽出条件の抽出する値に変数を使用したく、次のように変更しました。
例 →Dim NN As Integer
aaaBindingSource.Filter = "番号 = & NN"

次のようなエラーが発生します。
「構文エラー : '&' 演算子の前にオペランドがありません。」
変数を使った抽出条件をACCESSと同様に記述しましたが動作してくれません。
出来ましたらテキスト型変数や日付/時刻型の抽出条件記述についてご指導
いただければ幸いです。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2007-08-10 12:29
引用:

未記入さんの書き込み (2007-08-10 11:11) より:
aaaBindingSource.Filter = "番号 = & NN"


たぶん
コード:
aaaBindingSource.Filter = "番号 = " & NN


または、
コード:
aaaBindingSource.Filter = "番号 = " & NN.ToString


しなきゃいけないかも。

もしこれでできたのなら、もとのコードとどこが違うのか?なぜ動いたのか考えてみてね。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-08-10 12:44
最近リテラル文字列と変数がどうコンパイラから判断されているかコンパイラの気持ちになって考えよう。
そういうことができないプログラマって最近多いみたいね。
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-08-10 16:51
かずくんさん。早速ありがとうございました。ご指導いただきました下記コードは
両方とも正常に動作しました。ありがとうございました。
aaaBindingSource.Filter = "番号 = " & NN
aaaBindingSource.Filter = "番号 = " & NN.ToString

ところで、テキスト型の変数の場合は、どのように記載するのでしょうか、
ご指導いただければ幸いです。




shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-08-10 17:02
引用:

未記入さんの書き込み (2007-08-10 16:51) より:
ところで、テキスト型の変数の場合は、どのように記載するのでしょうか、
ご指導いただければ幸いです。


テキスト型や日付/時刻型のときに、どういう内容をaaaBindingSource.Filterにセットしたらいいのか・・を考えればいいと思います。

#テキスト型なんて「そのまんま(ToStringとか要らん)やん」と思いますけど(汗
よっし〜。
ベテラン
会議室デビュー日: 2007/04/17
投稿数: 89
お住まい・勤務地: 北のほうの国
投稿日時: 2007-08-10 18:51
引用:

未記入さんの書き込み (2007-08-10 16:51) より:
かずくんさん。早速ありがとうございました。ご指導いただきました下記コードは
両方とも正常に動作しました。ありがとうございました。
aaaBindingSource.Filter = "番号 = " & NN
aaaBindingSource.Filter = "番号 = " & NN.ToString

ところで、テキスト型の変数の場合は、どのように記載するのでしょうか、
ご指導いただければ幸いです。




もしかしてデータベースの項目の型が
テキスト型(文字型)だったら、という話なのかな?

aaaBindingSource.Filter = "番号 = '" & NN.ToString & "'"

こういうことでしょうか?

#これって動作するのかな…
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-08-10 20:28
引用:

よっし〜。さんの書き込み (2007-08-10 18:51) より:
引用:

未記入さんの書き込み (2007-08-10 16:51) より:
かずくんさん。早速ありがとうございました。ご指導いただきました下記コードは
両方とも正常に動作しました。ありがとうございました。
aaaBindingSource.Filter = "番号 = " & NN
aaaBindingSource.Filter = "番号 = " & NN.ToString

ところで、テキスト型の変数の場合は、どのように記載するのでしょうか、
ご指導いただければ幸いです。




もしかしてデータベースの項目の型が
テキスト型(文字型)だったら、という話なのかな?

aaaBindingSource.Filter = "番号 = '" & NN.ToString & "'"

こういうことでしょうか?

#これって動作するのかな…


とりあえず、String.Format 使おう。と言っとく。


質問者さんには、ぶさいくろうさんの指摘も、考えてみて欲しい。

コンパイラの気持ちになるって、言語仕様を知るって意味だと考えて。

[ メッセージ編集済み 編集者: Jitta 編集日時 2007-08-10 20:32 ]
だんじり
大ベテラン
会議室デビュー日: 2007/08/10
投稿数: 155
お住まい・勤務地: 神奈川県
投稿日時: 2007-08-13 09:09
ぶさいくろう

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