別のテーブルの値を参照してデータベースを更新するSQL文について
別のテーブルの値を参照してデータベースを更新するSQL文について ADO.NETよりSQL文を使って、MDBデータベースの値を更新しようとしています。 メインテーブル : table1 (あるテーマごとの文章のデータベースです) サブテーブル :category table1テーブルのカテゴリーの参照テーブルになります。 <table1 テーブル> (ログファイルみたいなものです。) pKey|category |text | time(保存日時) 0 |1 | 文章 |2008/09/02 1 |3 |文章 |2008/09/03 2 |4 |文章 |2008/09/05 <categoryテーブル> ID | category 1 | 野球 2 | サッカー 3 |水泳 ところで、ユーザーがある文章のカテゴリーを変更するために、 VBアプリ上で、table1のレコードを選択し、変更したいカテゴリーを”野球” というように、文字で入力してもらいます。 入力されたcategory.categoryの文字列からcategory.IDを参照して、 category.IDの値でtable1.categoryの値を更新したいのです。 調べてみたところ、UPDATE文にサブクエリを使ったら出来そうでした。 sqlStr = "update table1 set table1.category = (select category.ID from category where category.category='" & 変数(変更後category) & "') where table1.pKey=" & (変数)table1のpKey しかしエラーが出まして、 "更新可能なクエリであることが必要です。" カッコに囲まれているサブクエリの部分をある数字に置き換えて試して見ますとうまくいきます。 サブクエリの使い方に問題があるでしょうか? よろしくお願いします。
Microsoft Access・7,212閲覧・250