• 締切済み

テーブルの数値をほかのテーブルに更新していくのには?

OS:Windows Xp Access Version:Access 2002 お世話になります。 毎日、CSVファイルの成績表が取得でき、それをテーブルにインポート後、ほかのテーブルに数値を加算していきたいと思っております。 テーブルの構成が仮に、 Tインポート用テーブル 社員ID テキスト型←主キー 実績  数値型 とあり、この実績の数字を T実績テーブルにある 社員ID 実績 の"実績"のフィールドに加算していきたいと思っております。 インポートされた「Tインポート用テーブル」の全レコードは「T実績テーブル」に加算後、 消去します。 当方、SQL構文にはいまだに不慣れでありますので、更新クエリ、追加クエリでの方法があればありがたいです。 乱筆、乱文ですがよろしくお願いいたします。

みんなの回答

  • walsh
  • ベストアンサー率41% (77/185)
回答No.1

こんばんは。 もう1つ、同じフィールド構成のテーブルを作り(仮に"T集計前テーブル"とします)、Tインポート用テーブルのデータ(今日のデータ)をT集計前テーブルにインポートします。 この操作は、追加クエリで出来ますよね。 T集計前テーブルには、社員IDと実績のデータが日々増えていくことになります。 次にT集計前テーブルのデータを基にしたテーブル作成クエリを作ります。 社員IDはグループ化、実績は合計で集計をして、作成するテーブル名をT実績テーブルにします。 これにより、T集計前テーブルのデータが社員IDごとに合計されたテーブル(T実績テーブル)が出来上がります。 テーブル作成クエリの実行時に、前日に作成したT実績テーブルは削除されますので、毎日、最新のT実績テーブルのみが存在することになります。 これじゃダメですかねぇ?

関連するQ&A

  • access フィールドの数値を使って計算したい

    あるテーブル内に様々な数値をフィールドに入力して、それらの数値をフォームでルックアップを使用して計算したいのですが、accessはどうやら主キー(id)の数値(1、2、3…)を使って計算してしまいます。どのように設定すればよいのでしょうか。 テーブル1 id  フィールド1 1    5 2    10 3    15 4    20 フィールド1の数値をフォームにてルックアップで選んで計算したい(クエリ内の計算式に組み込みたい)。 よろしくお願いいたします。 access2010使用

  • CSVファイルインポート時の制限について

    AccessVBAでcsvファイルをインポートするマクロを作っています。 現在、インポート定義を利用して、データ型を指定したインポートができているのですが、1点だけ問題があり、質問します。 インポートするcsvファイルのA列にIDが入力されています。 そのA列の末尾に、ID(数値型)ではない「<b>32</b><br />」という値が入っています。 Accessのテーブルでは、このIDのフィールドは数値型で管理している為、この1レコードだけ エラーとなり、エラーテーブルが作られ、また、インポート先のテーブルには空のレコードができてしまいます。 この末尾の行については、IDではない「<b>32</b><br />」以外は何もデータが入っていない為、 インポートする必要がありません。 もし可能であれば、csvファイルのA列(Accessテーブルでは数値型のIDというフィールド)が数値ではない場合、 その行のインポートをスキップするような処理がVBAで作成できるとよいのですが、可能でしたら教えてください。

  • VBAでCSVファイルをインポートする方法について

    VBAでCSVファイルをインポートする方法について OS:ウィンドウズXP Access Version:2000 AccessVBAでcsvファイルをインポートするマクロを作っています。 現在、インポート定義を利用して、データ型を指定したインポートができているのですが、1点だけ問題があり、質問します。 インポートするcsvファイルのA列にIDが入力されています。 そのA列の末尾に、ID(数値型)ではない「<b>32</b><br />」という値が入っています。 Accessのテーブルでは、このIDのフィールドは数値型で管理している為、この1レコードだけ エラーとなり、エラーテーブルが作られ、また、インポート先のテーブルには空のレコードができてしまいます。 この末尾の行については、IDではない「<b>32</b><br />」以外は何もデータが入っていない為、 インポートする必要がありません。 もし可能であれば、csvファイルのA列(Accessテーブルでは数値型のIDというフィールド)が数値ではない場合、 その行のインポートをスキップするような処理がVBAで作成できるとよいのですが、可能でしたら教えてもらえないでしょうか。 ※以下はVBAを作成する為に仮に用意し、読込を行っているcsvファイルと、VBAソースになります。 ○csvファイル名:インポート用csvファイル.csv 内容: ID,テキスト1,テキスト2,テキスト3,テキスト4,メモ1,メモ2, 1,a,A,z,Z,あ,ん, 2,b,B,y,Y,い,を, 3,c,C,x,X,う,わ, 4,d,D,w,W,え,ろ, 5,e,E,v,V,お,れ, 6,f,F,u,U,か,る, 7,g,G,t,T,き,り, 8,h,H,s,S,く,ら, 9,i,I,r,R,け,よ, 10,j,J,q,Q,こ,ゆ, <b>32</b><br />,,,,,, ○VBAソース Dim FN As String Dim Res As Integer WizHook.Key = 51488399 Res = WizHook.GetFileName(0, "", "", "", FN, "", _ "csvファイル(*.csv)|*.csv", 0, 0, 4, True) WizHook.Key = 0 If Res = 0 Then DoCmd.TransferText , "csvインポート定義", "インポートテーブル", FN MsgBox "csvファイルをインポートしました", vbOKOnly End If

  • 簡単な変数値のテーブル値更新

    何時もお世話になってます。 ログイン時のIDや外他の情報をPublic変数へ格納していたのですが、何かのタイミングで値が初期化される為、テーブルに一時保管させたいと考えております。 通常テーブルに書き込む時は、Recordsetを使い、AdNewで書き込む手法を取っているのですが、もっと簡単にテーブルへ書き込む方法は無いでしょうか? 《処理フロー》 ◎ログインフォーム (保管変数) ・ログインID  (パブリック変数へ代入) ・日付選択   (パブリック変数へ代入) ・部門ID    (ログインIDをキーにルックアップしパブリック変数へ代入) ・店舗ID    (ログインIDをキーにルックアップパブリック変数へ代入) ◎メインメニューフォーム (保管変数) ・ログインID ・日付選択 ・部門ID ・店舗ID ◎売上コンボ 入力フォーム (保管変数) ・ログインID ・日付選択 ・部門ID ・店舗ID ・売上伝票No(パブリック変数へ代入) ◎売上サブ 入力フォーム (保管変数) ・ログインID ・日付選択 ・部門ID ・店舗ID ・売上伝票No ※クエリで、店舗ID・売上日付のマッチしたデータだけ表示 今のPublic変数を使うやり方だと、フォームエラー発生時や何等かのタイミングで、とPublic変数が初期化されNullとなります。 その為、一旦変数用のテーブルに保管したいと考えておりますが、その都度レコードセットを定義し、AdNewする事が面倒な為、何かよいもっと簡単にする方法は有りませんでしょうか? また、現在は上記3フォームですが、今後修正用のフォームやデータ閲覧用のフォームを作成した際にも上記変数は利用します。 OS:Windows7Pro Ver:Access2010

  • csvファイルを使ってMySQLのテーブルを更新し

    約2万件ある15個のカラムで構成されるMySQLのテーブルがあります。 このテーブルをcsvファイルを使って更新しようと考えています。 csvファイルにはレコードIDとあるカラムの変更する値の2つのセルで 構成されています。 行数は毎回異なりますが、だいたい300行前後です。 csvファイルの具体的イメージはこんな感じです。 id order ============ 2,  200 4,  10 7,  460 11,  35 MySQLのテーブルの方にも「id」と「order」というカラムが存在します。 java や PHP を使ってやる方法はわかるんですが、プログラムを作成しないで SQLだけで行いたいと考えています。 LOAD DATA LOCAL INFILE などがあることがわかったのですが、レコードを REPLACE  するのではなく、一部のカラムをアップデートしたい、ということです。 どなたか、教えて頂けると助かります。 よろしくお願い致します。

  • Access リレーションが分かりません。

    こんにちは、Access初心者です。 現在の受注テーブルをIDベースでCSVでエクスポートするシステムを追加しようと思っているのですがイメージがわきません。 同じデータベースにCSVテーブルを新規で追加し受注テーブルのIDとCSVテーブルの受注IDを一対多でリレーションをしました。(受注テーブルにはデータが入っていますがCSVは新規です。) 受注テーブル ID:オートナンバー 納期:日付 品番:テキスト 数量:数値 CSVテーブル ID:オートナンバー 状況:テキスト...未と済をコンボボックスで選択式 受注ID:数値 メインフォームでCSVテーブルの状況ベース、受注テーブルの納期ベースでデータを抽出 サブフォームで上記条件のデータが見れるように作ろうとしました。 ですが、サブフォームクエリの段階でデータが新規入力レコードしか表示されてきません。 どうしたら、受注テーブルの一つ一つのレコードにCSVテーブルのレコードが結びつけられますか。 ど素人ですみません。

  • パススルークエリ&ACCESSテーブル VBA抽出方法

    ACCESSパススルークエリでSQLサーバーのテーブルからデータをインポートする場合において ACCESSのテーブルにあるデータを抽出条件としたいのですがSQL文の記述方法がわからなくて困っております。 根本的な考え方が間違っている可能性が高いのですがどのように記述したらよいか教えていただけますでしょうか。 よろしくお願いいたします。 ・SQLサーバーのテーブル名(S_USR)   USRID  MAIL   10001  10001@test.com   10002  10002@test.com   10003  10003@test.com ・ACCESSのテーブル名(T_USR)   USRID   10001   10003 ・パススルークエリ名(Q_USR)←ACCESS上 ・欲しい結果(T_RESULT)←ACCESS上のテーブル   USRID  MAIL   10001  10001@test.com   10003  10003@test.com 自分で考えたVBAです。 Private Sub Command1_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Dim qDef As QueryDef Dim tDef As TableDef Dim SQLD As String Dim SQLA As String Set db = CurrentDb 'ACCESSテーブル内のデータを消す SQLD = "DELETE * FROM T_RESULT" DoCmd.RunSQL SQLD 'クエリの更新 db.QueryDefs.Delete "Q_USR" Set qDef = db.CreateQueryDef("Q_USR") 'ODBC接続実施 qDef.Connect = "ODBC;" 'フォームから取得したパラメーターを使ったクエリの設定 qDef.SQL = "select USRID, MAIL from S_USR where ID.USRID=S_USR" qDef.ReturnsRecords = True Set rs = qDef.OpenRecordset(dbOpenSnapshot,dsbSQLPassThrough,dbReadOnly) '追加クエリ SQLA = "INSERT INTO T_RESULT (USRID, MAIL) FROM Q_USR (USRID, MAIL) DoCmd.RunSQL SQLA rs.Close db.Close MsgBox "終了" Exit Sub End Sub

  • Accessのテーブル、クエリをCSV形式でエクスポートしたい

    マクロを使ってAccessのテーブルやクエリを、カンマ区切のCSV形式でマクロを使ってエクスポートしたいのですが、それらしいものが見つかりません。 どのようにするのでしょうか? 環境:Access 2003 、WindowsXP

  • 特定のデータ同士の集計はできますか?

    どうしても自分で解決できません。 どなたか教えてください!! windows-xp,アクセス2003を使っています。 テーブルAには、フィールド名「実績ID」「A賞」「B賞」「C賞」「効果金額」という表になっており、データが1万件近くあります。データ型は数値型です。 もうひとつのテーブルBにも、同じくフィールド名「実績ID」「A賞」「B賞」「C賞」「効果金額」というものがあり、データ型は数値型です。 そこで質問です。 テーブルBのデータをテーブルAに加算したいのですが、何かよい方法はないでしょうか? テーブル同士の加算は基本的にはむりだとしたら、テーブルBの方をクエリにして加算する。という方法はいかがでしょうか? ちなみに、テーブルBのデータは、テーブルAにデータを加算したら、データを削除するようにしていきたいと思っています。 すみませんが、宜しくお願い致します。

  • bcpによる、テーブル→CSVファイル出力について

    bcpによる、テーブル→CSVファイル出力について SQL Server(2003)のクエリアナライザからテーブル->ファイル出力を試みたのですが、うまくいきません。 サーバからの実行ではなく、クライアントのEnterpriseManagerのクエリ実行です。 このエラーは、サーバ接続自体がうまくいってないということでしょうか? exec master.dbo.xp_cmdshell 'bcp xxxxx.dbo.コピー元テーブル名 out C:\AAA.csv -c -S サーバ名 -U 接続ID名 -P 接続パスワード' 実行結果 SQL Status=S1000 ,NativeError=0 Error=[Microsoft][ODBC SQL Server Driver]一括コピーホストのデータファイルが開けません。 csv->テーブルについては、BULK INSERTで問題無く取り込めているので、単純に逆を行いたいだけです。 bcp使わない方法があれば、それでもいいのですが。。。。。

専門家に質問してみよう