Access 2007でVBAを使用してSQLのUPDATE文を実行する方法の質問

このQ&Aのポイント
  • 質問者はAccess 2007でVBAを使用してSQLのUPDATE文を実行する方法について質問しています。具体的には、顧客テーブルの担当者列が空白の行を見つけて、上から2行目までの担当者列に「中村」と入力したいとのことです。
  • しかし、現在のクエリでうまくいかないようです。質問者は「UPDATE 顧客テーブル SET 担当者 = '中村' WHERE 担当者 IN (SELECT TOP 2 担当者 FROM 顧客テーブル)」というクエリを試していますが、ID2とID5の担当者名が中村になるようにしたいと考えています。
  • 質問者はこの問題を解決するためのアイデアを求めています。どなたかお知恵をお貸しください。
回答を見る
  • ベストアンサー

access2007 VBAでSQLのUPDATE

access2007 VBAでSQLのUPDATEの使い方の質問です 下のような顧客テーブルがあり ID   担当者  会社名     電話番号   1    山田   XX産業     1234 2          株式会社XX  244343 3    山本   YY会社     432054 4    田中   XX商事     59680 5          TT工業     5493 6    佐藤   jj加工      54354 7          XX工務店   43202 8    湯浅   Xx工業 担当者列が空白の行を見つけ、上から2行目までの担当者列に中村と入力したいのですが 以下のようにしても上手くいきません。 ("UPDATE 顧客テーブル SET 担当者 = '中村' WHERE 担当者 IN (SELECT TOP 2 担当者 FROM 顧客テーブル)") 上記テーブルですと、ID2、5の担当者名が中村になるようにしたいのです。 どなたかお知恵をお貸しください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

UPDATE 顧客テーブル SET 担当者 = '中村' WHERE ID IN (SELECT TOP 2 ID FROM 顧客テーブル WHERE 担当者 IS NULL ORDER BY ID)

matupo69
質問者

お礼

有難うございますできました。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

副問い合わせの TOP 2が要求通りなのか、ちょっと心配ですが ("UPDATE 顧客テーブル SET 担当者 = '中村' WHERE ID IN (SELECT ID FROM 顧客テーブル where 担当者 IS NULL AND ID<=5)") じゃないですか? (" SQL文 ") でしたっけ?

関連するQ&A

  • アクセスのルックアップリスト

    アクセスの初心者です。 多くのアクセスのテキストに、顧客名が1つ(のテーブルに)あれば、重ねて(他のテーブルに)表示する手間が省略できる、と書かれています。 顧客先が3000人いる場合、ルックアップリストから選択するのが、それを示しているのか、それとも、そうではなく、違う方法が一般的なのか、お知らせください。 顧客が3000人いる場合、顧客基本情報(住所等)テーブルと売上名簿テーブルの作り方です。あいうえお商事に鉛筆1000本を売った。あいうえお商事の会社IDは「2137」とします。「2137」があいうえお商事だということを、記憶しているはずがありませんので、売上名簿テーブルのなかに、あいうえお商事である「2137」に「鉛筆1000本」とするには、どうするのか、ということです。 よろしくお願いします。

  • このような場合のSQLの記述

    下記のSQLの記述方法について教えてください。 TBL:smp A  B  C ------------ XX あ 5 YY え 3 ZZ お 2 XX え 1 のテーブルで、Aの列でグループ化し、Cの列の最大の行を出力したい。 アウトプットとしては、 A  B  C ------------ XX あ 5 YY え 3 ZZ お 2 にしたいのですが、A、Bでグループ化すると、上記のアウトプットにはならず、 Aだけでグループ化すると、Bの列が表示されない。 どうしたらいいでしょうか?

  • MS Access 入力フォーム:自動採番

    Access2013での自動採番に関して2パターン教えて下さい。 質問(1):"顧客番号"の自動採番 【テーブル名】 顧客情報 【フィールド】 "顧客番号"、"顧客名"、"顧客名かな"、"顧客住所"、"電話番号"、"担当者"、"メール"・・・ <"顧客番号"の採番方法> 顧客名の頭文字を五十音順の「あかさたな」で行ごとに連番をつけて管理している。 例)) 「ABC商事」→エービーシーしょうじ→「あ‐01」 「東京印刷」→とうきょういんさつ→「た-01」 《やりたい事!》 入力フォームに新規で、「東西工業」を入力する際に "顧客名かな"を入力したら、"顧客番号"が自動的に採番されるようにしたい。 顧客名:東西工業 顧客名かな:とうざいこうぎょう 顧客番号:た-02 ←ココを自動採番にしたい ------------------------------------------------ 質問(2)"取引番号"の自動採番 【テーブル名】 取引情報 【フィールド】 "顧客番号"、"取引番号"、"顧客名"、"顧客名かな"、"住所"、"電話番号"、"担当者"、"メール"・・・ <"取引番号"の採番方法> 取引が発生した順で、"顧客番号"ごとに枝番をつけて管理している。 例)) 「ABC商事」→1/10の取引→"顧客番号":あ‐01、"取引番号":01 「ABC商事」→1/31の取引→"顧客番号":あ‐01、"取引番号":02 《やりたい事!》 入力フォームに新規で、「ABC商事」の2/15の取引情報を入力する際に "顧客番号"を入力したら、"取引番号"が自動的に採番されるようにしたい。 顧客名:ABC商事 顧客番号:あ‐01 取引日:2016/02/15 取引番号:03 ←ココを自動採番にしたい 説明がうまくできず、分かりにくいかとは思いますが 何とかお知恵をお借り出来れば助かります。 よろしくお願い致しますm(__)m

  • エクセル2003マクロvba名前の定義

    excelエクセル2003のvbaの質問です yy列の最下行をxxとします yy列の名前の定義を馬とします zz列の名前の定義を肉とします 列番号・行番号を用いず、肉2行目から肉xx行目までオートフィル するマクロの構文を教えてください xxの値は変動するのでxxの値を取得する形にしてください dimとか使わず1行で収まる構文でお願いします

  • ACCESS VBAのDSUMを使ってUPDATE

    よろしくお願いします。 通貨型のACCESSデータベースのレコードにDSUMを使ったUPDATE文で更新をしたいのですが、 うまくいきません。 イミディエイトウィンドウで出力したSQLをACCESSのクエリーで実行したところ、 "1個のフィールドで型変換エラー"となります。 実行したSQLは下記のようなものです。 UPDATE テーブル名 SET フィールド名 = DSUM(フィールド名,"テーブル名",コードI = '0000' AND コードII BETWEEN '5110' AND '5410') WHERE コードI = '0000' AND コードII = '5980'; 因みに、更新元テーブルと更新先テーブルは同じテーブルです。 行いたいのは、コードII列の「5110」~「5410」の合計値を、「5980」の場所にUPDATEを させようとしてます。 よろしくお願いします。

  • エクセルVBAで質問です。

    エクセルVBAで質問です。 エクセルで商品在庫管理をしていています。 A列(顧客名)B(商品名)C(受注日)D(次回受注日)E(必要在庫数) 中村       あ     7/1    8/1       10 田中       い     6/20    7/30       20 佐藤       う     7/20    8/20       15 中村       あ     8/1    10/1  20 渡辺       う     8/14    9/15 30 中村       か     7/30   8/30 30 A列(顧客名)とB列(商品名)が同じで、D列(次回受注日)が複数存在する場合、 受注日の古い行だけ色を付けることは可能でしょうか?

  • update文で改行を入れる

    こんにちは。 いつもお世話になっています。 update文を使用して、データに改行を入れたいのですが、どうすればよいでしょうか。 対象列のデータ型はVARCHAR2です。 例えばSQLPLUSから、 SPL>update 「テーブル名」set 「対象列」='あ改行い改行う改行' を投入し、そのあと select 「対象列」 from 「テーブル名」 とすると SQL>あ SQL>い SQL>う と出てくればよいんですが、 SQL>update 「テーブル名」set 「対象列」='あ\nい\nう\n' としても SQL>あ\nい\nう\n と、「\n」が文字列としてでてきてしまいます。 SPL>update 「テーブル名」set 「対象列」='あ 2い 3う' と投入すると、期待通りになるのですが、 そうではなく一行にまとめたいのですがどうすれば良いでしょうか。 Oracle9iを使用しています。 宜しくお願いいたします。

  • Accessのクエリとテーブル突合せについて

    いつもお世話になっています。 Access2007で下記のような2つのテーブルをクエリで比較した際、なぜかNULLの部分だけのぞんだ結果にならないという現象があり、理由がわからず困っています。 内容としては、「(1)明細データ」のすべてと、「(2)コード表」をあて、「(3)結果リスト」のような表示でコードを追記するようなものです。 下記の「__」は表記の便せん上分かりやすいようNULLを示しています。 「(1)明細データ」はクエリで2つのテーブルを突き合わせ「区」を付けたしたもので、「(2)コード表」はマスタ用のテーブルとして手作りしています。 「(2)コード表」を手作りする際にはNULLの部分はなにも入れずに空にしています。 (1)明細データ 商品名 区 AAAAAA XX BBBBBB YY BBBBBB YY CCCCCC XX CCCCCC YY CCCCCC __ (2)コード表 商品名 区 変換CD AAAAAA XX 000101 AAAAAA YY 000102 AAAAAA __ 000199 BBBBBB XX 000201 BBBBBB YY 000202 BBBBBB __ 000299 CCCCCC XX 000201 CCCCCC YY 000202 CCCCCC __ 000299 (3)結果リスト 商品名 区 変換コード AAAAAA XX 000101 BBBBBB XX 000201 BBBBBB YY 000202 CCCCCC XX 000301 CCCCCC YY 000302 CCCCCC __ 000399☆ ところが、クエリで実現しようとするとこの「(3)結果リスト」の☆のついている一番最後の結果が CCCCCC __ ______ となってしまい、変換コード部にコードを埋め込むことができません。 こういう現象は初めての為、どのように聞くべきかわからないのですが、もし何かご存知、ないし、ヒントになり得ることを知っておりましたらお教えください。 以上、よろしくお願いいたします。

  • ACCESSで複数のテーブルで同じ内容の行を抽出

    いつもお世話になっておりあます。 ACCESSのクエリ作成でお聞きしたき件ありまして、 投稿させていただきました。 下記の様な商品購入テーブルA・Bで ・・・テーブル定義・・・ テーブルA 顧客ID 商品名 テーブルB 顧客ID 商品名 ・・・入力データ・・・ テーブルA 顧客ID 商品ID 0001  あめ 0002 コーラ 0003  せんべい テーブルB 顧客ID 商品ID 0001  おかし 0002 コーラ 0003  わたあめ ・・・・・・・・・・・ とのテーブルにて テーブルAとテーブルBの同じ状態の行 0002 コーラ を抽出するには、どのようなクエリを作成すればよろしいのでしょうか? 見当がつかず、こまっております。 どなたか、御対応いただけますと、ありがたいです。

  • SQLについて質問します

    VB2010 とSQL Server2008 R2 で開発をしています。 担当者テーブル(table_tanto)と売上明細テーブル(table_uriage_meisai)があります。 各テーブルのカラムは以下です。 table_tanto ・tanto_id ・tanto_name table_uriage_meisai ・meisai_id ・tanto_id ・kingaku ・date ある期間の担当者別の売上実績を一覧で出力したいと考えています。 「table_uriage_meisai」の「date」で範囲指定したいと思います。 結果はこんな形を望んでいます。 担当者ID 担当者名 売上合計 0001   ○○○   ****** 0002   □□□      0 0003   △△△   ****** 0004   ●●●   ****** 2点質問があります。 売上の無かった担当者も含めてすべての担当者の一覧を出したいと考えています。 そのSQlがわからないのと、売上がなかった担当者はその列がNullになってしまうと思うんですが、後の計算で困ります。 Nullのときゼロを返すようにするにはどうしたらよいでしょうか。 以上2点について教えて下さい。 よろしくお願いします。