- - PR -
クエリ抽出条件のパラメータをコードで指定したい。
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-10-21 14:47
Visual Basic 2005 Express Edition でWindowsアプリケーションを開発しています。
現在会計ソフトを開発中ですが、仕訳データを選択表示させるためにリストボックスで勘定科目を指定して、 借方勘定フィールドか貸方勘定フィールドのどちらかが選択勘定科目であるレコードだけを表示させたく、 次のように2個のBindingSourceにFilterを掛けましたが、コンパイルエラーで動作しません。(X:指定勘定科目) → bindingSource.Filter="借方勘定=X.Tostring" Or "貸方勘定=X.Tostring" そこで抽出条件を複数設定可能なクエリでクエリパラメータを借方勘定フィールドと貸方勘定フィールドに 設定して「クエリパラメータ」ダイアログボックスから勘定科目を指定することで正常に動作しています。 お尋ねしたいのは勘定科目を「クエリパラメータ」ダイアログボックスからの指定するのではなく、 プログラムのコードで指定したいのですが、その指定方法がわかりません。指定方法をご指導下さい。 [ メッセージ編集済み 編集者: だんじり 編集日時 2007-10-21 23:46 ] | ||||||||||||||||
|
投稿日時: 2007-10-22 11:56
わからないことが多いです。。
また、この操作はユーザがやるんですか?開発者?
場所としてはそこなんじゃないかと推測はできますが。 [追記] あ、あとDBが何かもわかりません。(Accessとか) ↓あ、、単にそういうことか、、もしれませんね、、 [ メッセージ編集済み 編集者: べる 編集日時 2007-10-22 12:26 ] | ||||||||||||||||
|
投稿日時: 2007-10-22 12:17
どこに何を・・・??
それとも全然違う問題ですか? | ||||||||||||||||
|
投稿日時: 2007-10-22 12:26
コンパイルエラーが発生するのは、
が文字列じゃないから。 以下のようにすれば、コンパイルは通るんじゃないの?
これが正しい結果を生むかどうかは分からないけど。
どのようなコードを書いているのか、質問内容からは読み取れないため、答えられません。 DataSetにDbDataAdapterを通してFillしてる? それともIDbCommandを使ってる? IDbCommandなら、実行前にパラメータを渡してやれば良いんじゃないの? DbDataAdapterなら、SelectCmmandプロパティでIDbCommandが取得できるので、以下同文 | ||||||||||||||||
|
投稿日時: 2007-10-23 13:36
べるさん、こあらさん、かずくんありがとうございました。
またお礼の返事が遅くなり申し訳ありません。また、質問の説明が悪く分りにくい内容 となって申し訳ありません。私はBindingSourceへのFilterで、複数の抽出条件は設定で きないものと思っていましたが、AndやOrで連結すれば可能であることを指導いただき、 その後テストを行っていました。変数設定なので少々違っていましたが複数の抽出条件 でも正常に動作することが確認できました。以下BindingSourceへのFilterについて まとめて報告します。 【FieldがText型の場合】 単一条件(値型A):"Field名= 'A'" 単一条件(変数X):"Field名 = '" & X & " '" 複数条件(値型A):"Field名1= 'A' Or Field名2= 'B'" 複数条件(変数X):"Field名1= '" & X & " '" & " Or " & "Field名2 = '" & XX & " '" 【Fieldが数値型の場合】 単一条件(値型8):"Field名= 8" 単一条件(変数X):"Field名 = " & X 複数条件(値型A):"Field名1= 8 Or Field名2= 8" 複数条件(変数X):"Field名1= " & X & " Or " & "Field名2 = " & XX ※And,Orを併用する場合の括弧は次のように設定 →"(借方勘定 = '" & X & " ')" & " Or (貸方勘定 = '" & X & " ')" 【Fieldが日付型の場合】 単一条件(値型 ):"Field名 = #7-3-01# " 単一条件(変数X):"Field名 = #" & X & "# " 複数条件(値型A):"Field名1= #7-3-01# Or Field名2= #9-9-9#" 複数条件(変数X):"Field名1= #" & X & "# Or " & "Field名2 = #" & X & "# " 本当にありがとうございました。 なお、クエリでクエリパラメータ設定とは下記のようなSQL文でWHERE区に設定する 「借方勘定 LIKE ? & %」 等です。 SELECT 取引月日, 伝票番号, 借方勘定,借方金額, 借消税, 貸方勘定, 貸方金額, 貸借摘要 FROM n00仕訳 WHERE (借方勘定 LIKE ?) OR (貸方勘定 LIKE ?) このことについてはACCESS等ではパラメータの設定をフォームのTextBox.Text等から 値を取得して実行できるようですがもう少し調べてみます。 [ メッセージ編集済み 編集者: だんじり 編集日時 2007-10-23 13:37 ] |
1