- ベストアンサー
ACCESSで他のデータベースと不一致を探したい
ACCESSで見積を作っています。 パソコンAの見積テーブルとパソコンBの見積テーブルを比較し、 パソコンBにパソコンAの見積データを移行させたいのですが。 比較対象は見積No1というコード。 Aでは1A、2A、3A… Bでは1B、2B、3B… となっており、 不一致クエリ、差分を追加すれば、 Bには、1B、2B、1A、3Bと、Aのデータもまとめられると思ったのです。 ただ、問題は、AとBは別のパソコン。 不一致クエリ、ネットワーク上のを探せない。 アドバイスお願い致します。
- hiro1190
- お礼率61% (104/168)
- Access(アクセス)
- 回答数5
- ありがとう数7
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
回答No.4の続きです ミスデータの対策は情報処理の上流(入口)で組込むのが最善です。 流れは、各担当者→副パソコンに入力→主パソコン 1.各担当者やるべきこと 見積No.の管理 現状は主となる人が管理しているのではないでしょうか その人に何か不都合が起きた時流が止まってしまいます。 各担当者に見積No.の管理をゆだねる為の 社員No.(5桁)-連番(3桁)の8桁 社員No.を入社年+100の下3桁と連番3桁6桁 社員No.は人事部等で既に管理されていればそれを流用します 2.副パソコンに入力 入力利用者の負担軽減 2.1.Excel 各種対策をされていると思いますので省略です 2.3.Access 2.3.1.テーブルデザイン ・数値・文字列・日付・時刻の区分・定型入力・規定値・入力規則 ・重複の有無・自動フリガナ・住所入力支援・テーブルルックアップ 2.3.2.フォームデザイン ・単票/帳票の区分のほか2.3.1の機能が引き継がれ ・レコードロック・タブ移動順・タブストップ ・ヒントテキスト・縦書き・イベントでVBA起動 ----------------VBA起動--------------------- Private Sub 単価_Exit(Cancel As Integer) 金額=数量*単価 End Sub ---------------------------------------- 3.主パソコン 主ファイルのインポート 複数の副パソコンで作成された情報をインポートですが インポート後情報に抜けがあり、追加して再度インポートすると 見積Noが重複なしの為追加情報だけが受け入れられ、複分は跳ねられます 4.リレーションシップ これはExcelにない大変有効なツールです 今回はユニークな見積No.に1レコードとなっていますが このような見積書は見たことがありません コンビニのレシートですら一かご分の商品がリストされています。 もしかして今のExcelのデザインは 見積書は伝票の上辺部分に見積No.に続いて各種標題項目があり 下辺に品名、数量、単価、金額、原価欄の行が複数ある通常の見積書 これだとSheet数、ファイル数が増え続けますね、 情報の統合管理も難しいですね。 Accessだと1つでファイルも数年は増やす必要もないでしょう テーブルの組み合わせは回答No.2の添付図から少し変わります。 顧客マスタ、商品マスタへは項目の追加してもリレーション繋がりで 参照できます なら上辺を見積書テーブル下辺を見積書明細テーブルに展開して 両テーブルに見積No.を配置しリレーションします 見積書の見積No.主キーかインデックスプロパティーで重複なしにします
その他の回答 (4)
- chayamati
- ベストアンサー率41% (254/607)
補足有難うございます。 背景はある程度理解できましたが、小手先の修正では解決できません。 失礼ながらAccessはExcelの延長線上にあると考えておられるのではないですか 体系化されたリレーショナルデータベースと表計算ソフトの決定的な違は テーブルとリレーションシップと言って良いでしょう Accessのテーブルのフィールド毎にその一つが重複なしです この重複なしを利用することで、今回の課題の一つが解決します またテーブル自体に並び換え、フィルタ機能が備わっています テーブルを開いてフィールド名の右端のVマークからご確認ください テーブルとリレーションシップをスルーする訳にはいきません この設計の見直しの為、仕切り直ししませんか 主体となるPCのAccessファイルに他のPCの情報を追加する 他のPCネットワーク環境にあれば、主体となるPCのAccessファイルに入力可能かと 1.見積テーブル 見積No--数値(社員No.&4桁の連番) 積算日--日付 見積先CD--数値 社員No.--数値 社員テーブルをルックアップ 標題を社員名とする ※1 見積額--通貨 記号-----短いテキスト これには引合、見積、再見積、受注、納入、キャンセル等の進捗 原価ID--数値 見積額に対する原価なら原価額、データ型も通貨が自然かと 2.社員テーブル 社員No.--入社年の下2桁+3桁の連番(または入社年+100の下2桁) 社員名--短いテキスト
- kkkkkm
- ベストアンサー率65% (1619/2458)
> んー、ネットワーク上のACCESSへは追加できないんですかねぇ。 できないのかもしれませんね。ネットワーク環境がないので残念ながら試せません。 他の方への補足を見たのですが、今から見積書のシステムを作成するのでしょうか。別々のファイルを作成するより、テーブルだけのファイルを一つ作ってあとはリンクテーブルにしてフォームやクエリのあるファイルを別途作成しておけばファイル間でのクエリを実行する必要がないと思いますが…。
お礼
お返事が遅くなり申し訳ございません。リンクテーブルというのを使ったことがなく、今回、初めてさわってみたのですが、たしかに、リンクテーブルにて相手のテーブルと直接クエリが組めるという点がいいなと思いました。不一致クエリそれだとできたのです。テーブル1つを使いまわしっていうのは、同時に見積をそれぞれ作ることがあるので難しいのですが、リンクテーブルの有効活用はしたいと思っています。アドバイスありがとうございました。
- chayamati
- ベストアンサー率41% (254/607)
補足願います 1.テーブルのフィールド名とリレーションシップ 私なら見積書のテーブル構成は 1.見積書 2.見積書明細 3.顧客マスタ 4.商品マスタ の4つのテーブルで添付のようなリレーションシップを想定します 2.主キーのフィールドはありますか 添付画像では🔑マークが付いています レコードの追加、削除は出来ますがフィールドの更新は出来ません 3.見積No1は主キーですか 4.確認です パソコンAの見積テーブルとパソコンBの見積テーブルは 同じフィールド構成ですね
補足
1.見積テーブル 記号-----短いテキスト 積算日--日付 見積No--数値 見積先CD--数値 担当--短いテキスト 担当者テーブルとリレーションシップ ※1 見積額--通貨 原価ID--数値 見積No1--短いテキスト ※2 ※1 担当者テーブル 担当ID--短いテキスト 主キー設定 担当者--短いテキスト 担当テーブル--短いテキスト ※2 そもそもというのか、見積No1:[担当テーブル]&[見積No]という項目です。 こちらは、更新クエリにてデータ追加しています。 2.3 主キーはありません 4 パソコンA、Bは同じです。 事情補足。 現在、AとBは個々に見積を作成。EXCELにて。 見積Noをノートで管理。番号かぶらないようにしている。 EXCELなので、Aで作ったものをコピーし、Bのパソコンへ入れておけば、 BはAのも勝手に変更できる。 それを見積をACCESSにて作る方法にかえたい。 その場合、AとB 各自見積テーブル。サブフォーム見積明細テーブルという形。 明細とは見積Noで結合。そっちも更新クエリで見積No1項目。 各自にしたのは、同時間帯に見積を作ることが多いため。 AのデータをBが変更できるようにするため、 見積No1という項目で他者との区別化をはかり、AのデータをBに追加できたらな、と。 ごめんなさい、まだ試している途中でそれでうまくいくのかも未知数なのですが。
- kkkkkm
- ベストアンサー率65% (1619/2458)
ネットワーク環境がないので適当な回答になりますが、リンクテーブルにしてできないという事なんですよね。BにAのテーブルをインポートすればいかがでしょう。
補足
Private Sub コマンド79_Click() Dim SQL As String SQL = "INSERT INTO 見積 ( 記号, 積算日, 見積先CD, 担当, 見積額, 原価書ID, 見積No1) IN '\\(外付け)\(人の名前)\(フォルダ名)\売上管理ためし用.accdb'" SQL = SQL & "SELECT 見積.記号, 見積.積算日, 見積.見積先CD, 見積.担当," SQL = SQL & " 見積.見積額, 見積.原価書ID, 見積.見積No1 FROM 見積 " SQL = SQL & "where (((Exists (SELECT 1 FROM '\\(外付け)\(人の名前)\(フォルダ名)\売上管理ためし用.accdb'.[見積]" SQL = SQL & "WHERE '\\(外付け)\(人の名前)\(フォルダ名)\売上管理ためし用.accdb'.[見積].[見積No1]=[見積].[見積No1]))=False));" MsgBox "処理完了!" End Sub エラー出ないけど、追加もされません。 んー、ネットワーク上のACCESSへは追加できないんですかねぇ。
関連するQ&A
- Accessの不一致クエリについて
Accessの初心者です。 二つのテーブルのデータを比較したいのですが、それぞれ構成が違います。例えば”6523410”という数字が両方のテーブルにあるかどうかを調べたいとします。 テーブルA 523(契約コード),410(ID) テーブルB 6523(取引コード),41(地域コード) 頭の”6”と最後の”0”は共通の数字です。クエリで新たにフィールどを作り、”6523410”にするまではわかるのですが、2つのテーブルのリレーションシップはどのようにすればよいか、わかりません。 このような場合は、不一致クエリは使えないのでしょうか? 仕事で、明日中にデータを照合しなければいけないので困っています。 よろしくお願いします。
- 締切済み
- その他(データベース)
- 選択クエリを基に不一致クエリを作成したけれど...
識者の力をお借りしたく質問いたします。 質問ページから不一致クエリに関する内容を参考に、ある不一致クエリを作成しています。 しかし、出来るはずの方法で結果が正しく表示されず途方にくれています。 処理の内容としては、あるクエリのフィールドを参考に不一致クエリで差分レコードを抽出したいというものです。 通常不一致クエリはテーブルの主キーを基に作成するものと私は理解しているのですが、今回の処理では基のテーブルに主キーが無く、(作成できない事情があり)クエリで無理矢理主キーもどきのものを作りました。 クエリで作成したのは、数字6桁(最大で)の後ろにチェックディジットとしてアルファベット1文字を追加した計7文字のフィールドです。 例:131401A 不一致を抽出したい基となる2つのテーブルに対しこのクエリを作成しました。 この2つのクエリから不一致クエリで差分を抽出し、基のテーブルに追加クエリで追加したいのですが、どうやっても不一致項目が表示されません。 根本的にクエリからの不一致クエリは作成できないのでしょうか? よろしくお願いいたします。 ■状況 テーブル1/テーブル2(基となるテーブル、主キー無し) クエリ1/クエリ2(テーブル1/テーブル2のレコードにコードを追加するクエリ) コード1/コード2(クエリ1/クエリ2で作成したコード)例:131401A 不一致クエリ テーブル2 → テーブル1 (リレーションシップ) コード2 条件:Not Null ※テーブル2の方が最新レコードが入っているので、テーブル2の差分レコードをテーブル1に追加したいというのが基本的な内容です。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Accessの不一致クエリについて
Accessの初心者です。二つのテーブルの異なるフィールどを比較する方法について、教えてください。 例えば、"6523610"という数字が両方のテーブルにあるかどうか調べたいとします。 テーブルA 523(フィールド名:契約コード)+610(ID) テーブルB 6523(フィールド名:取引コード)+61(フィールド名:地域コード) と、それぞれ構成が違います。頭につく"6"と最後の"0"は共通の数字です。クエリで新たなフィールドを作って、"6523610"にするまではわかるのですが、どのフィールドを関連づけていいかわかりません。このような場合は、不一致クエリではできないのでしょうか? 仕事で、明日中にデータを調べなければいけないので困っています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ACCESS テーブルを見比べて、一致しないレコードを追加したいです
ACCESSで、以下のようにデータを追加をしたいです。 別々のテーブルで、データの一致しないものだけ追加したいです。 どのようにすればよいのでしょうか? Aテーブル、Bテーブル共に入力項目は全て同じです。 よろしくお願いします。 Aテーブル Bテーブル 名前 個人データ 名前 個人データ ・鈴木 *** ・近藤 *** ・近藤 *** ・伊藤 *** ・渡辺 *** ・鈴木 *** 求める答え ・鈴木 *** ・近藤 *** ・渡辺 *** ・伊藤 *** たぶん、不一致クエリでBテーブルの伊藤さんだけ取り出して、Aテーブルに追加するという方法がやりやすいのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【Access】部分一致で不一致データを抽出したい
クエリで2つのテーブルから、不一致データを抽出したいのですが、 完全一致だけでなく部分一致のデータも一致データとして取り除きたいです。 [テーブルA]フィールド1 000-0001 000-0001A 000-0002 000-0003 000-0004 [テーブルB]フィールド2 000-0001 000-0002 というようなデータで、結果は [結果] 000-0003 000-0004 というふうにしたいです。 (000-0001だけでなく000-0001Aというデータも取り除きたいのです。) Access初心者で、クエリウィザードを使用した重複データ抽出、不一致データ抽出、 およびクエリデザインを使用した重複データ抽出が何とかできる程度です。 初心者でも分かるようにご回答いただければ大変助かります。 よろしくお願いいたします。
- 締切済み
- その他MS Office製品
- レコードの一致方法
テーブルA(マスター) [コード]、[商品名] ○○○、△△△ テーブルB [コード]、[商品名] ○○○、△△△ テーブルC [コード]、[商品名] ×××、△△△ 以上のように、3つのテーブルの不一致クエリーなどを 抽出する場合、テーブルAとB同士の場合は、一致しないのはコードを結合線で結べば、すぐに出てきますが、テーブルAとCの比較の場合は、コードを結合線で結んだところで、違うのでうまくできません。 商品名は△△△なので、コードが違っていても、商品名はあっているので、不一致ではなく、一致しているというように考えたいのです。 △△△についてのコードは×××、○○○というように2つ以上持っているような感じですれば、うまくいくとおもっているのですが、こういう場合はテーブルAにコードのフィールドを2つ作っておいて、結合線でつなぐときに切り替えてするしかないのでしょうか? テーブルA(マスター)で、このような、2つのコードを持っているとおもわれる商品はレコード100以上あって、それをそれぞれ選びながら入力していかないかとおもうと、大変な作業化とおもっているのですが、アドバイスあればお願いします。
- 締切済み
- その他(データベース)
- accessで重複を排除してデータ追加したい
access2000使っています。 EXCELからリンクしたテーブルAのデータをテーブルB追加しています。テーブルBには累計というか履歴のようにデータを蓄積させています。 今は追加クエリでA→Bにデータ入れていますが、どうしても重複するものがあると警告メッセージが出てしまいます。フィールドは、日付*、コード*、金額、で*のものをキーにしています。 警告メッセージを出さず追加する方法、もしくは現在Bにある日付移行のものだけ追加する方法はないでしょうか?
- ベストアンサー
- オフィス系ソフト
- ACCESS2000の重複クエリ
よろしく、お願いします。 ACCESS2000+Win2000で使用しています。 ACCESS2000の”テーブルA”の”フィールドa”の”重複クエリ甲”の結果としてX、Y、Zというデータが出たとします。 そのうち、XのみにテーブルAの”フィールドb(Yes/No型)”にフラグを立てたいのですが、良い方法はありませんか? 私は重複クエリ甲に、更新クエリで更新する事は出来ませんよね? 甲と同じく”重複クエリ乙”を作って、乙は”集計”で先頭のみを出して、甲と乙の”不一致クエリ”で差分を出してみたりもしたのですが、更新クエリを使えない為に、フラグを立てられません。 何か良い方法を教えてください。 お願い致します。
- 締切済み
- オフィス系ソフト
- Access 不一致クエリ(たぶん)
こんにちは。仕事で最近Accessを使い始めた初心者です。 週ごとに更新される2つのエクセルデータがあり、 それを毎回比較してどのセルが増え、どのセルが減ったかというデータをを出したいですが、1万行(レコード)ほどあり、自分の目で見てどの行が増減したかを確認すると 時間もかかるし見落とす可能性もあるので、 アクセスでどうにかできないかと考えています。 調べてみたところ、「不一致クエリ」というものでできるようなのですが、 詳しいやり方がわかりません。 ________________________________________________ 質問の内容を要約するとこのようになります ・エクセルA ・エクセルB Aの一週間後のデータ。 Aと比べ何行かは増えて、何行かは減っている ★Aに対しBのどの行が増え、どの行が減ったかを知りたい _________________________________________________ また他の方法があれば、不一致クエリ以外でもぜひ教えてください。 よろしくお願いします!
- ベストアンサー
- オフィス系ソフト
- Accessの不一致クエリについて
Accessの不一致クエリについて質問があります。 ある注文リストと商品マスタを比べ、 まずテーブル作成クエリで注文リストとマスタを比べ、常備品(商品マスタにある)は出荷日に本日日付をセットしテーブル作成、次に不一致クエリでマスタにない特注品は空欄のまま先程作成したテーブルに追加をするマクロを作成しました。 すると、注文が100件、特注が2件だった場合、最初は98件が作成されますが、不一致クエリをやっても0件になります。 ちなみに商品マスタには、商品コードと3種類の規格があり、注文リストの商品コード+規格を連結、商品マスタのそれを連結させて、一致か不一致かで見ています。 不一致がどうしても0件になるのですが、解決方法はないでしょうか。 お願いします。
- 締切済み
- その他(データベース)
お礼
お返事が遅くなり申し訳ございません。EXCELの見積に関してはそうです。上にお客様名や合計金額記載。下の方に、その合計に至るまでの過程、1.A 1こ 100円 2.A交換 300円ような感じです。(原価はもちろんのせず)さらに、本来は、それが表紙で、明細が別紙に。A交換に関して、 〇〇作業 100円 B作業 200円みたいになっています。質問用に簡略化していますが、もっと複雑な構造です。そして、ACCESSに関して。上のような表たしかにそんな感じにするのですが、うーん、見積Noをそうですね、歯抜けでもいいなら、いけるのか。12月に入りドタバタしてしまって、検証しようと途中のまま時間が過ぎてしまいました。最後までできず申し訳ございません。いったん締めさせていただいて、自分でじっくりいじってから再度質問あげる形にしようと思います。お手数おかけしました。ありがとうございました。