none
不定フィールドの該当データをBetweenで抽出したい RRS feed

  • 質問

  • 使用環境

    VISUAL BASIC 2005 EXPRESS EDITION

    WINDOWS XP

     

    連日の質問をお許し下さい。

     

    通常、2つの値の間に該当するデータを抽出する場合、下記のようにすれば良いのですが、フィールド名をフォーム等のコンボボックスで、任意に指定したい場合、[フィールド名]の部分はどのように記述すれば良いのでしょうか?

     

    WHERE    ([フィールド名] BETWEEN ? AND ?)

     

     

    やりたいこと例)

     

    ○フォームの配置状況

      コンボボックス1個(フィールド選択用)、テキストボックス2個(Between用)

     

    ○フォーム上のコード

                Me.KizyunC_masterTableAdapter.FillBy3(Me.SuisituDataSet.kizyunC_master, ComboBox1.Text, TextBox1.Text, TextBox2.Text)

    ※これらによって指定する任意のフィールドに属するデータを抽出したい。
    2007年4月19日 8:39

回答

  •  みやり さんからの引用

    WHERE    ([フィールド名] BETWEEN ? AND ?)

    SQLの中ではフィールド名をパラメタ化できないので、Fillの前にSQL文字列を編集するのがよいのではないでしょうか。

     みやり さんからの引用

    Me.KizyunC_masterTableAdapter.FillBy3(Me.SuisituDataSet.kizyunC_master, ComboBox1.Text, TextBox1.Text, TextBox2.Text)

    このメソッドの中で、SelectCommandのSQL文字列を編集してみては。

    例えば、文字列"フィールド名"を引数で受け取ったComboBox1.Textの値に置換。

     

    または、選択され得るフィールド名の分だけTableAdapterにクエリを登録するとかでしょうか。

    2007年4月20日 1:15

すべての返信

  • おそらく、コンボボックスに表示される値とDBのフィールド名をマッピングしないといけないと思います。

    HashTableなりでコンボボックスの表示値とDBのフィールドのコレクションを用意して、[フィールド名]の部分にセットすればいかがでしょうか。

    2007年4月19日 11:04
  • >HashTableなりでコンボボックスの表示値とDBのフィールドのコレクションを用意して、[フィールド名]の部分   

    >にセットすればいかがでしょうか。

     

    Hashtableについては、無知で・・・、自分なりに調べてみました。

    要するに下記のようなことをするということでしょうか?

    ”Hashtableを宣言する。

     putを使い、コンボボックスの表示値にフィールド名を割り当てる。”

    なんとなく内容と意義がわかってきてはいるのですが、実際のコードが皆目見当つきません。

    さわり程度でも結構ですので、ヒントをお願いします。

    2007年4月19日 14:39
  •  みやり さんからの引用

    WHERE    ([フィールド名] BETWEEN ? AND ?)

    SQLの中ではフィールド名をパラメタ化できないので、Fillの前にSQL文字列を編集するのがよいのではないでしょうか。

     みやり さんからの引用

    Me.KizyunC_masterTableAdapter.FillBy3(Me.SuisituDataSet.kizyunC_master, ComboBox1.Text, TextBox1.Text, TextBox2.Text)

    このメソッドの中で、SelectCommandのSQL文字列を編集してみては。

    例えば、文字列"フィールド名"を引数で受け取ったComboBox1.Textの値に置換。

     

    または、選択され得るフィールド名の分だけTableAdapterにクエリを登録するとかでしょうか。

    2007年4月20日 1:15