Access総合相談所 29 (638レス)
1-

1 2019/09/23(月) 20:02:25
ACCESSに関する質問はこちらへ
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ 質問内容は具体的に書いてください。
  業務上の守秘義務も大事ですが、貴方の所属組織を特定できるほど、特異な業務・システムは滅多にありません。
 作りたいものの内容を隠しすぎないようにし、列名、データ値を適当に変更して例示するなどしましょう。
★ 事前にGoogle等で調べられる範囲は調べてください。
★ 完全初心者はまず、新規作成テンプレから「NorthWind」を開いて、一通り触ってみてください。ACCESSの概念を理解する
もっとも簡単な方法です。
★ お金の管理でシステム設計ミスが会社経営に重大な支障が予見される場合は、パッケージソフトに誘導する場合があります。
格安なソフトもあるので設計に取りかかってから悩む前に、市場調査も行なってください。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。
▼━初心者用質問テンプレ ━━━━━━━━━━━━━━━━━
【Windows】 7, 8,10 【Access】 365,2013,2016,2019
【作りたいものの業務分野】
販売管理,買掛管理,営業予算管理,営業実績管理,生産管理,
財務管理,労務管理,学術研究統計,文字格納を主体としたDB,その他()
【あなたのスキル】
LV1:完全初心者,
LV2:ACCESSの基本要素(テーブルやクエリーなど)の役割を知っている
LV3:VBAが打てる
【どのオブジェクトに関する質問か】
テーブル,クエリー,フォーム,レポート,サブフォーム(サブレポート),リレーション,VBA
【やりたいこと】
(質問によっては各テーブル名と列名を例示)
(クエリーの場合は、左上の「表示」を押し”SQLビュー”に変更して表示される”SQL文”を貼り付けると回答者がわかりやすい)
(得たい出力結果や挙動)
【エラーメッセージに関する質問】
・エラーメッセージの内容 ・windowsは32bit版か64bit版か
前スレ
Access総合相談所 28
2chスレ:bsoft
2 2019/09/23(月) 20:17:20
桐にしとけ
3 2019/09/23(月) 20:42:11
あーウゼー
4 2019/09/23(月) 22:22:49
何このテンプレ・・・
誰も使わないだろう
5 2019/09/24(火) 14:10:28
>>4
申し訳ございませんでした。
調子こきました。
歴代のテンプレをひきつづきお使いください。

▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境  】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
6 2019/09/27(金) 02:19:34
FileMakerまたライセンス料金アップだってよ
7 2019/09/30(月) 21:30:10
mdbでフォーム読み込み時にピクチャのリンク先設定するVBA使って動かしてたんだが
(Me!ピクチャ.Picture= 画像フルパスの文字列(gifファイル) の形)

2019のaccdbに変換したら実行時エラー2220 ファイルが開けませんと出て開けなくなった…
最初画像が壊れたのかと思って確認したけど普通に開けるしフォームから直接リンク設定すれば表示される
変換前のmdbなら全く同じ構文のまま2019でもエラー出ずに表示されるのにどういう事なの…
多分mdbのままで運営する事になるのかなと思うけど何故こうなるのか解せん
8 2019/10/01(火) 20:58:26
参照設定でも見たらどうかな 何かが参照不可とかに変わってたり
9 2019/10/05(土) 22:05:43
【 システム環境  】 Windows10, Access2019
【 VBAが使えるか 】 はい
【 VBAでの回答  】 否
【 検索キーワード 】 文字列結合

データを文字列結合させたいのですが、どうやれば良いでしょうか?

1 abc
2 wxy
1 def
2 z
3 jkl

というデータがある時

1 abc|||def
2 wxy|||z
3 jkl

というデータを作りたいのです。連結文字列は「|||」・「$$$」など変化する可能性があります(とりあえず|||になる予定です)
右側のフィールドが空になることは無いので、そこは考慮しなくても大丈夫です
10 2019/10/05(土) 22:41:06
まず軽く業務フローを書きます
受注→業務→PCにデータ登録→請求です

この受注データは
作業A 10000円といったもので
別途夜間割増などがつきます

この夜間割増があるときに
請求書に
○月○日 作業A 10000
○月○日 夜間割増 5000

と2行にわけてかきたいです

いまは、はじめに登録するとき売上を入力して
夜間割増にチェックをいれて割増金額をいれています
これは一つのレコードでおこなっています

これはやめて親子関係の親売上 子割増
というテーブルにするべきでしょうか?
11 2019/10/06(日) 00:21:52
>>10
割増の種類が今後次々と増える可能性があるなら親子にした方がいいけど
そうでなければ増える度に同テーブルで列追加でいいんじゃないかと思うよ
処理を記述するなら同テーブルの方が楽だから、それとDBそのものに手を加える手間とのバランスでどうするか判断すればいいかと
12 2019/10/06(日) 02:42:33
>>11
請求書にするとき

○月○日 作業A 10000
○月○日 夜間割増 5000

のように分けて表示できますか?
レコードごとにあるように、1行ごとに仕切り線をいれたいです

割増はよほどのことがなければ3つで固定です
13 2019/10/06(日) 12:36:46
>>9
これ確かVBAしか無理だった気がする
ちなみになんでそんな事してるの?
14 2019/10/06(日) 13:47:31
>>13
データの移行元が前者、データの移行先が後者の形になっているためです
本来は移行先も前者の形で使うものなのですが、使いにくいので1レコードにまとめてほしいと利用者からの要望なのです
15 2019/10/06(日) 14:54:37
列は数値に対して合計や集計は出来るけど文字列連結は出来ないんだな、これが
16 2019/10/06(日) 18:23:25
データのフィールドが違うならアンド使えば簡単何だけどね
違うなら一回エクセルに出力して加工したほうが簡単かも
17 2019/10/06(日) 23:27:25
>>9です。
vba、DAOで作成しました。一応置いておきます
なにかの参考になれば幸いです

https://i.imgur.com/JYPGBrm.png
https://dotup.org/uploda/dotup.org1963052.txt

※5chにコード直接貼れませんでした
18 2019/10/10(木) 08:08:15
【 システム環境  】 Windows10, Access2016
【 VBAが使えるか 】 いいえ
【 VBAでの回答  】 否
【 検索キーワード 】 リレーション

前方一致でリレーションを繋ぐことは出来ますか?

○取引先テーブル
A社 北海道札幌市1-1
B社 北海道函館市1-2
・・・

○市区町村テーブル
011002 北海道札幌市
012025 北海道函館市
・・・

○作りたいもの
A社 北海道札幌市1-1 011020
B社 北海道函館市1-2 012025
・・・

vbaは使えないです、よろしくおねがいします
19 2019/10/10(木) 09:42:58
>>18
リレーションはクエリかテーブルに「独立したカラム」として存在している場合しか繋げないので無理
素直に、市区町村とそれ以降をわけましょう
A社 北海道札幌市 1-1

さらに、
取引先テーブル
id, 社名, 市区町村id, 住所

市区町村テーブル
(市区町村)id, 市区町村名
のようにしておいたほうがいいです。

VBA経由で正規表現使えば、これまでのテーブルのままでも可能だけど、
いまのデータの持ち方はよくないので、直したほうがいいと思います。
20 2019/10/10(木) 20:16:54
>>19
オーノー…
200万行ぐらいありますので、vba覚えます・・・ありがとうございました
21 2019/10/11(金) 08:25:44
>>20
おい!
おまえは、桐にしとけ
22 2019/10/11(金) 08:39:19
こんなデータのもたせ方で取引先が200万件か
いろいろとアレだな
23 2019/10/12(土) 15:01:44
すみませんが教えてください
かなり以前にアクセスでアプリを作成し、データとアプリを分離して、パソコン数台でデータを共有して運用してました
この度、新しいHDDにデータを移すのですが、データ参照場所の指定の仕方がわかりません
以前分離した時は、作成したアプリをコピーして配布した気がします
よろしくお願いします
24 2019/10/12(土) 16:52:50
そんなレベルなら止めといた方がいい
以前がどのくらい前なのか知らんが、ずっと蓄積してきたデータを迂闊に消し去っても
責任とれる? 近隣のシステム開発屋さんでAccess案件可能な所に相談しな

複雑な作りしてなきゃリンクテーブル張ってるだけだろうから、Accessがインスコされてる
端末でリンクテーブル張り直してキチンと動作するか確認してから、その端末のアプリ
を各PCにコピーすりゃ動作するだろうけど、ホントにそれだけでいいかは開発した人間に
ちゃんと確認するなり近隣の・・ に確認してもらわないと、思わぬ被害・損害を被る
でっかい授業料払う覚悟あるなら自己責任で

PC一台壊しても十万位で済むけど、会社の重要データ復旧できなくしたらどうなるかは
25 2019/10/12(土) 21:32:11
まあまあ、そんな厳しく指摘しなくても...
>>24の言うとおり、リンクテーブルマネージャでリンク先を更新すれば良いと思うよ
ただし、VBAのOprnDatabase関数で実ファイルを参照していると思うから、
検索してConst関数で指定しているようなら、そこを修正
何らかの自作関数を参照しているなら、そこを解析
やってみたけど意味不明状態なら、どう制御されているか、ここで再質問かな
26 2019/10/14(月) 15:54:03
23です
お答えありがとうございます
今はリンクテーブルマネージャーが出てこなくて困っています笑
なぜか2台とも出てきません
故障なのか、使い方が悪いのか???
焦ってアクセスをアンインストールしたら再インストールに手間取って、もう泣きたい気分です
仰る通りリンクテーブルにしてアプリを配布しただけです
ローカルテーブルに戻してからまたリンクテーブルに戻して配布すればいいんだなといまはかんがえています
リンクマネージャーが使えるパソコンが1台はあるので、それでチャレンジしてみようと思います
全部プロに丸投げしたいのですが、高いこと言われるんじゃないかと思うと踏み切れませんでした
ちな、1カ所ではHDDのデータ復活には20−30と言われました
かなり以前に自分でマクロで作ったアプリなので愛着があってまだ使っています
まだ先はありそうですが取り敢えずありがとうございました
27 2019/10/14(月) 16:02:43
頭に0をつける時、何か楽にする方法はありますか?
今はクエリを作成してformatで"000000"、テーブルにし、元のテーブルと置き換え…という手順を取っています
28 2019/10/14(月) 16:15:10
表示ならフォームで、印刷ならレポートで
その形でデータ持ちたいならデータマクロか入力規則で
29 2019/10/14(月) 16:24:09
質問が雑すぎてよくわからんけど、
入力時に0を付けたいなら、入力規則なりVBAで整形するなりすればいいし、
テーブルにあるデータを変えたいだけなら、更新クエリで一発
30 2019/10/14(月) 16:26:47
>>28-29
更新クエリってのがあるんですか、ありがとうございます、使ってみます
31 2019/10/14(月) 17:42:56
横だけど、クラッシュしたHDDからのデータ復旧ならその辺りが相場かも知らんが
データベースの機能使ってテーブルのデータ削除したのを元通り とかの作業だと
それを復旧させるには記録媒体の履歴を復活させるのに数日掛かるし、履歴が
キチンと残ってる可能性は極めて低くて10%は喪失したままの残骸が複数ファイルとして
ようやくサルベージできるレベルだぞ   そんなデータが信用おけるか? っつーと、まず無意味

例えば売上データとかで、紙媒体として最新の記録は別に残っている とかのケースなら
それと突き合わせで比較できるからまだマシだが

言いたいことは、ファイルのリカバリとDBMSのリカバリはやることが全く違う
し、相場で数十倍費用が違う 昨今簡単にリカバリできると思い込んでる連中が多いが
そういう発想でDB扱ってると痛い目に遭う  ということを強く言いたい
安易にレコード削除に繋がる操作をするな、と バックアップは意識して残せ、と

イメージできるサイト  https://www.oracle.com/technetwork/jp/articles/index-155208-ja.html
32 2019/10/14(月) 20:44:04
DAOって今時使うのか?
33 2019/10/14(月) 21:16:35
DAOとADOって何なのかすらよくわからない
34 2019/10/14(月) 21:16:52
それぞれどういう用途と違いがあるの?
35 2019/10/14(月) 21:20:31
・DAOは古くて安全。参照設定不要
・ADOは参照設定が必要
って認識

でも今となってはADOも十分枯れた技術になってきているのでどっちでも良いと思う
参照設定が嫌いだからDAO使ってるけど、基本クエリ使うからコードもほとんど変わらない
36 2019/10/14(月) 21:36:08
テーブル新設したりする場合はADOの場合はADO-Xまで必要じゃね?
37 2019/10/14(月) 21:41:13
>>33
VBAでmdbファイルにアクセスするためのライブラリ
これがあればAccess本体がなくてもmdbファイルを触れる(はず)
38 2019/10/14(月) 22:00:19
>>35
参照設定?
39 2019/10/15(火) 01:40:57
Access2007 からデフォルトの DB インターフェイスが DAO に変わったんです
だから VBA で ADO コードを書く際に参照設定が必要
40 2019/10/15(火) 06:33:56
ADOはactiveXベースというのが信用ならない
突然動かなくなりそう
41 2019/10/15(火) 15:10:01
【 システム環境  】 Windows10, Access2016
【 VBAが使えるか 】 はい
【 VBAでの回答  】 否
【 検索キーワード 】複数フィールド access 削除クエリ等

削除クエリで質問です

複数フィールドを指定するとandでフィルタされますが、
これをorでフィルタする方法はありますか?

クエリを分けるしかないでしょうか
42 2019/10/15(火) 16:37:59
ADOだと、一々、set nothing する必要がメンドイ
43 2019/10/15(火) 18:38:00
【 システム環境  】 Windows10, Access2016
【 VBAが使えるか 】 はい
【 VBAでの回答  】 否
【 検索キーワード 】複数テーブル like delete、指定されたテーブルから削除できませんでした

NGワードを設定し、テーブルからdeleteしたいのですが、
うまくいきません

メインテーブル
https://i.imgur.com/t8YbdY6.png

Ngワードのリスト
https://i.imgur.com/1cWBo8x.png

削除クエリ(うまく動きません)
https://i.imgur.com/1cWBo8x.png

表示すると消したいデータは一覧で表示されますが、
実行すると「指定されたテーブルから削除できませんでした」と出ます
お助け下さい
44 2019/10/15(火) 19:39:46
>>43
主キーの設定もれ
45 2019/10/15(火) 19:51:56
>>43です、3枚目の画像間違えてました

こちらになります
https://i.imgur.com/Ak3gn3F.png

クエリはこう設定しました
Like "*" & [ng_word]![word] & "*"

>>43
主キーは自動で設定されるものを残しています
テスト用で色々とデフォルトの状態です
https://i.imgur.com/bR5qmxR.png
https://i.imgur.com/i9STDtC.png
46 2019/10/15(火) 20:00:34
In (Like "*" & [ng_word]![word] &"*")
じゃねーの
47 2019/10/15(火) 20:05:43
>>46
だめでした・・・
48 2019/10/15(火) 20:14:57
主キーがあるとdelete出来ないのですね、すいません
ですが外してもdelete出来ませんでした。何が原因でしょうか
49 2019/10/15(火) 20:42:41
主キーが無いとdelete出来ないんだよ
クロス結合でdeleteしようとしてるみたいだけど、なんとなく無理な気がする
50 2019/10/15(火) 21:00:33
>>49
ありがとうございます
これ難しいんでしょうか

もう抽出条件に
Like "*あ*" or Like "*い*" or Like "*う*" or・・・
と書くしか無いでしょうか
51 2019/10/15(火) 21:39:31
>>50
SQLビューにして
DELETE FROM main
WHERE EXISTS (SELECT NULL FROM ng_word WHERE main.namae LIKE "*" & ng_word.word &"*")
を上書き貼り付けして実行

初心者向けのSQLだとは思わないので、VBA使えるなら一文字ずつng_wordテーブルから持ってきて
ループさせて変数に保持して、ループ内で簡単なDELTE文使えばいいと思う
SQLは沼
52 2019/10/15(火) 22:07:25
>>51
す、凄い・・・うまくいきました
少し教えて頂きたいのですが

・SELECT NULL
これは少しでも軽くするためにNULLにしているということでしょうか

・FROM ng_word
これはFROM ng_word,main とは書かなくても良いのでしょうか

サブクエリこわいので、しばらくはvba覚えようと思います・・・
53 2019/10/15(火) 23:02:42
>>52
NULLについては、値を使わないのでそう書いただけで、*でも1でもなんでもいいです。
SQL engineの実装の中身をみたことありませんけど、exists使ってる時点で、何をselect
してるかは無視していると思います。なので、パフォーマンスにも差はないと思います。

DELETE from main
WHERE EXISTS (SELECT ...)
は、
mainテーブルのデータうち、()内の条件を満たすものを削除しろということなので、
()内ではmainの項目(main.namae)は使用可能です。
()の外側で与えられたmain.namaeに対して、()内でng_wordテーブルのデータで
条件チェックする、と考えるのが簡単ですかね

ここで、FROM ng_word,mainと書いてはいけない理由は、
SQLビューで、SELECT * FROM ng_word,mainと書いてもらえれば解ると思います。
54 2019/10/16(水) 06:29:51
>>53
何回も読んでようやく理解できました
これは当分書けそうにないレベルとわかりました
ありがとうございました!
55 2019/10/19(土) 17:30:19
C言語みたいにライブラリはヘッダにimport某とか書けないのかよVBAって
56 2019/10/19(土) 23:26:21
(´∀`)<いんぽ
57 2019/10/19(土) 23:47:14
https://qiita.com/AquaMeria/items/a4ffeff03b81e7d03abb

このエクセルのように

お客様コードが書かれた売り上げデータがあります
担当者名とお客様コードが書かれたマスターがあります。
同じお客様でも担当が2人いたりします

お客様コードから
担当1〇〇
担当2■■と
別カラムに表示する方法はありませんか

リレーションとクエリでやると1万データが9000になったり
11000になったりします
ジャスト1万データのまま担当を追加する方法はありませんか
58 2019/10/20(日) 03:27:51
>>57 それは何用でしょうか。
担当者の成績管理ですか。
顧客コード|担当
1|A
1|B
というマスターがあり、
実績テーブルに
顧客コード|売上額
1|¥1000
1|¥500
といった情報しかないなら、按分ルールがない限りは無理です。
顧客コード|売上額|担当
1|¥1000|A
1|¥500|B
なら集計できます。
それとも
顧客コード|売上額|担当
1|¥1000|A、B
1|¥500|A、B
みたいな加工をしたいということでしょうか。
59 2019/10/20(日) 07:57:16
>>58

イメージとしては1番下です。

顧客コード|売上額|担当
1|¥1000|A、B
1|¥500|A、B
みたいな加工をしたいということでしょうか。

そのとーりです。

何用かと言えば仕事の仕入データの管理で
メーカーから仕入れてお客様まで直送したデータを
担当が2人持ってるところがあり
あとで手作業でこれはどっちが聞いて
メーカー発注したの?とアナログな事はしないといけません

その際、今はお客様コードから担当が誰と誰だったのか、から調べて、2人にこれはどっち?と聞いていますが
aかbまで絞れると楽になります

うまく伝えられなくてすいません
60 57 2019/10/20(日) 08:00:41
連投ですいません

accessのリレーションで
内部結合やら外部結合をすると

顧客コード|売上額|担当
1|¥1000|A、B
1|¥500|A、B
はならずに

レコードが増えて
顧客コード|売上額|担当
1|¥1000|A
1|¥500|A
1|¥1000|B
1|¥500|B
となってしまったりして
倍に表示されたりしてしまいます
61 2019/10/20(日) 08:04:13
>>60
アクセスは横方向に伸ばす事に弱い
vbaが必要になる
62 57 2019/10/20(日) 08:50:42
>>61
そーなんですね
access vbaはよくわからず。

やっぱりエクセルでどーにかした方が早そうですね
1万行とかで、
エクセルが開くのが遅すぎてaccess使ってみたいと思ったのです

少し考えてみます
63 2019/10/20(日) 10:28:35
>>62
ってか、。>>9>>17にそのコードがある
64 2019/10/21(月) 10:34:48
これってそもそもの問題として1000円と500円のものをAとBが別に売ってるか一緒に売ってるかの区別ってどうやってしてるんだろう?
区別するフィールドあるんならそれで結合できるんでは
てかちゃんとあるよねえ?なかったら2重に計上してる可能性もあるから大問題だよ
65 2019/10/21(月) 16:57:22
かなり泥臭いやり方(VBAなし版 ただし、
仕入担当100人といった無限ではないものとする)
3個くらいに分けて書きますよ。
テーブル名 master
ID(auto)|仕入先ID:数値 |担当者:文字列
1 1 A
2 1 B
3 2 C
4 2 D

クエリー1段階目 同じ仕入先IDのなかでindexをつける Q_master
"セレクト" master.仕入先ID, master.担当者,
DCount("仕入先ID","master","担当者<""" & [担当者] & """ AND
仕入先ID=" & [仕入先ID] & "")+1 AS [index] FROM master;
66 2019/10/21(月) 16:57:56
クエリー2段階目 クロス集計っぽく担当1、担当2、担当3と列を振り分ける
グループ化して重複をまとめる
Q_masterCross
"セレクト" Q_master.仕入先ID,
DLookUp("担当者","Q_master","仕入先ID=" & [仕入先ID] & " AND index=1") AS 担当者1,
DLookUp("担当者","Q_master","仕入先ID=" & [仕入先ID] & " AND index=2") AS 担当者2,
DLookUp("担当者","Q_master","仕入先ID=" & [仕入先ID] & " AND index=3") AS 担当者3
FROM Q_master
GROUP BY Q_master.仕入先ID,
DLookUp("担当者","Q_master","仕入先ID=" & [仕入先ID] & " AND index=1"),
DLookUp("担当者","Q_master","仕入先ID=" & [仕入先ID] & " AND index=2"),
DLookUp("担当者","Q_master","仕入先ID=" & [仕入先ID] & " AND index=3");
67 2019/10/21(月) 16:58:13
クエリー3段階目 文字結合 Q_concat
"セレクト" Q_masterCross.仕入先ID,
[担当者1]
& IIf(IsNull([担当者2]),"","、" & [担当者2])
& IIf(IsNull([担当者3]),"","、" & [担当者3])
AS 担当者リスト
FROM Q_masterCross;
68 2019/10/21(月) 19:23:29
自己レス 2段目 わざわざdlookup使う必要もないな。
”セレクト” Q_master.仕入先ID,
Max(IIf([index]=1,[担当者],Null)) AS 担当1,
Max(IIf([index]=2,[担当者],Null)) AS 担当2,
Max(IIf([index]=3,[担当者],Null)) AS 担当3
FROM Q_master
GROUP BY q_master.仕入先ID;
69 2019/10/22(火) 12:35:00
>>68
定義域集計関数は遅いので
それの方が良いですね。
70 57 2019/10/22(火) 16:45:03
皆様ありがとうございます。
メーカーのデータ
届先コード、届先名称、  商品名、仕入れ金額
1000、田中商店a、    たまご、100円
2000、田中商店b、    肉、300円
3000、鈴木運送事務所  野菜、200円
1000、田中商店a、    肉、300円


会社の担当データ マスタのような物
得意先名 届先名、     届先コード 担当者
田中商店 田中商店a、    1000 A
田中商店 田中商店b 2000 A
鈴木運送 鈴木運送事務所 3000 B
鈴木運送 太郎倉庫    4000 B
山田屋  田中商店b 2000 c

メーカーデータの届先コードを元に担当を探します
田中商店bに届けるパターンが
田中商店から頼まれる場合と
山田屋から頼まれる場合があり困っています

ーカーのデータ
届先コード、届先名称、  商品名、仕入れ金額 担当1 担当2
2000、田中商店b、    肉、300円 A c

このようにマッチング出来れば
田中商店bに届けたお肉は
田中商店か、山田屋のどちらかに売上するんだろうと思えます
71 57 2019/10/22(火) 16:59:25
>>64

売上データとして

得意先名 担当 商品名 〔掲載されてないけど〕
田中商店 A たまご200円 〔田中商店a〕
田中商店 A 肉400円    〔田中商店b〕
鈴木運送 B 野菜300円  〔鈴木事務所〕
山田屋  c 肉600円   〔田中商店b〕


とあるので色々まぜたら識別は可能です
手作業ですが、、、
72 2019/10/22(火) 18:29:12
>>70
一例だけど以下のようにいくつかのテーブルに分けて構成すべきだと思う。

T_得意先
得意先コード(主キー),得意先名

T_届先
届先コード(主キー),届先,得意先コード

T_担当
担当者コード(主キー),担当者名

T_商品
商品コード(主キー),商品名

T_仕入
仕入コード(主キー),商品コード,仕入れ金額,仕入日,担当者コード

T_納品
納品コード(主キー),届先コード,仕入コード,納品日,担当者コード

仕入日や納品日は無いとは考えられないので付けた。
届先コード以外の主キーはオートナンバーで同じ名称の主キーでないコードは、長整数型で
リレーションシップして、同じフィールド名を結合しておく。
73 2019/10/22(火) 22:19:44
基幹システムから出力したプルーフリスト(CSVとかexcelとか)を
再加工する試みですか。
用例がわりと冗長的なので。さらにいうと、架空とはいえ
仕入れと売り上げのプロセスの違いを理解しているか、疑問が残る。
仕入れの段階では「届け先」は関係ないはず。

71に示す実績(ようするに売り上げ伝票)に届け先がリレーショナル
データとして格納(または表示)されていないのが、
そもそもの問題だと思います。
伝票入力時に届け先項目はありますか?(摘要欄で届け先を
テキスト入力するのではなく)
もし届け先も入力しているなら71のプルーフリストに
「届け先」も表示するよう、基幹システムのベンダーに有料依頼
するなどしてください。
74 57 2019/10/22(火) 23:12:25
>>73
ご指摘ありがとうございます。
確かにデータが色々ダメなのです。
会社内にホストコンピューター?と言うものからデータを取り出してもらうのですが
社内の少しだけパソコンに詳しいひとが頑張って取り出してるレベルなので
データがこれ以上頑張れないと言われたので自分でなんとか繋げようとしている状況です。
外部委託して金を払ってでもして欲しいと心から思っております
75 2019/10/23(水) 00:46:21
>>74
ACCESSの話を離れ、ほぼ組織論になってくるけど
一連の書き込みを見てると、
・担当者とは(おそらく)提案営業と商品手配、
小売へのデリバリーまでやっている人。
・基幹システムでは売り上げ伝票に配送先が紐付けされていないか
プルーフリストでの出力が困難。
・ACCESSを使って知りたいのは、得意先ではなく「配送先」の
実績をもとに、誰が仕入れたのかの担当者の絞り込み。

私の中の小売り商流の概念からすると、かなり変わってる。
直の得意先が、「小売店」ではなく、おそらく貴方の
組織も卸業だとすると卸業を2つも挟むのは今時にしては珍しい。
(ただし、メーカーとしては同じ小売店直送でも、相見積もりか
何かの関係で、売りを立てる得意先が変わる、というのは
さほど珍しくない)
さらには、「仕入れた人の特定」が経理上、何のメリットがあるのか
もよくわからない。(仕入れ単価が、毎回スポット的で
「担当者」が見積書との照合・追認をする必要があるのか)

で、まず金をかけずに貴方が最初にすべきことは、リストを作って
くれた人と伝票入力オペレーターへのヒアリングです。
・ERPの標準機能で、ユーザー定義帳票ビルダーが実装されていて
それを使って出力したのか、直接、バックエンドDBにSQLを叩いて
出力したのか。
・売り上げ伝票には配送先項目や、担当者項目が実装および入力が
あるのかないのか。
76 57 2019/10/23(水) 01:53:19
>>75
基幹システムというのは
おそらくコボルで動いています
最新のERP?とかではないです。
データ見るのも昭和の黒い背景の緑の線で描かれた画面からデータを見ます

データを出すのにコボルプログラムを書かないとダメだから難しいと毎回言われます。
過去に作られたバッチファイル?が何かで出せるやつだけと、少し修正して出せる程度の物しか出てきません

担当を調べるというよりは担当者毎の粗利を調べるのも手計算みたいなものです
仕入れがあり、売上もわかるけど、
これはどっちが売ったのか?
が紐付いてないよーなイメージです
データを見せれると早いのですがお得意様の名前などがあるので難しいです。
77 57 2019/10/23(水) 01:58:08
>>65


>
> クエリー1段階目 同じ仕入先IDのなかでindexをつける Q_master
> "セレクト" master.仕入先ID, master.担当者,
> DCount("仕入先ID","master","担当者<""" & [担当者] & """ AND
> 仕入先ID=" & [仕入先ID] & "")+1 AS [index] FROM master;

とりあえず、これがなんとなく自分の力で出来そうなイメージです。、まず同じなのに重複しているものに番号振ってみます。
78 2019/10/23(水) 08:04:52
>>76,77
ホストコンピューターがCOBOLで稼働してても
DBがRDBならACCESSから接続出来ればデータ抽出出来るでしょ
79 2019/10/23(水) 12:37:47
>>78
>データ見るのも昭和の黒い背景の緑の線で描かれた画面からデータを見ます

ということなのでメインフレームをCUIのコンソールで操作してる状況でしょう
PCとの接続も無理かと

それでもCSVとかでデータは取り出せてるらしいから
Excelで加工してAccessに取り込む事は出来てるのでしょう
ただ、その取り込んだテーブルのフィールド構成が妙というか正規化されていないのでしょう。
80 2019/10/23(水) 12:50:50
>>70
Excel使ってそのデータを>>72のように正規化する事をお勧めします
なお担当者についてのデータは記録されてないなら
扱えません
元々のデータベースは担当者を記録していないからです
仕様が変更になった時点で記録をするよう修正すべきだったということです

おそらく運用でごまかして来たのでしょう
悪手です
81 2019/10/23(水) 12:56:19
>>70
追伸
Excelで加工する際
主キーとなるフィールドはExcelでが設定出来ませんのでAccess
に取り込んでから追加設定したしてください
82 2019/10/23(水) 13:47:32
昨今はオフコンデータも活用の途が拓けてるかと 例えば ↓
https://jp.fujitsu.com/platform/server/advantages/special/jokun/16-offcom/
マイグレーションとかで移行してく手も ↓
http://www.cobol.gr.jp/knowledge/material/040727_report/04.pdf

どっかのレジェンドが集まって格安でデータ吸い上げますよ なんてサービスもしてたような
83 2019/10/23(水) 21:11:33
>>82
そんな商売もあるのですね。
オフコンとCOBOLとVT100の呪縛から逃れられない会社もあるんですね。
世の中広い
84 2019/10/23(水) 21:14:25
さすがに西暦2000年問題で、年のデータが2桁しかないDBは消滅したと思い込んでいました。
85 2019/10/23(水) 23:17:39
富士通のNetCOBOL? 今世紀のリリースだけど
値切るとCUIで納品される みたいな奴 システム屋が限界なのかも知らんけど
86 2019/10/24(木) 08:24:18
未だに伝票記帳環境が
CUIというのは組織の業績が著しく悪いか
逆に組織が巨大すぎてシステムが財務まで繋がってるために変えられない、
のどちらかになる。
その場合、一般社員が頑張る必要は本当はない。
やるとするなら、Accessかexcelに仕入れ、売上をなるべく素に近い形でインポートかけて、
担当情報を付加する、伝票の清書のような仕組み。
1仕入れが1売上に直結するのは
今のerpパッケージでも想定していないので工夫は必要。
小売店の納品時に受領証のサインくらい貰うんだろうから
配送営業の担当者についでに判子でも押してもらえば良い。
87 2019/10/24(木) 08:31:56
連投だけど、用例から邪推すると
食べ物扱ってるとして
この度の増税対応(軽減税率対応)
どうするんだ。
適格請求書、作れなさそうだけど。
88 2019/10/24(木) 12:36:10
>>87
それは俺も気になった
そもそも相談者から仕入れ金額は示されてるけど
販売金額はどうするのか開示されてないんだよね

軽減税率の対象外のお酒を頼まれたらどうするのじゃなと
89 57 2019/10/25(金) 00:30:53
>>88
軽減税率とか、複雑なやつは、富士通さんにお願いしてると言ってました。
あと、、経理はオービック?が何か入ってて
お高いにつながってるよーで繋がってないシステムです
経理は凄く、しっかりしてますが
販売系のデータはいまいちと思います

オフコンって画面がまさに今の会社の画面でした
何とかエミュと画面に出て黒背景の緑文字で何かしら入力してます

システム変えないといけないと思いつつずーっといってる感じです
その場しのぎで、やりくりしてるから今更何がどーなのかわからんとの事です
90 57 2019/10/25(金) 00:34:30
https://i.imgur.com/dZxOaT5.jpg

画面はまさにこのイメージです。
91 57 2019/10/25(金) 00:38:05
https://i.imgur.com/5UVEWsx.jpg

色々csvデータをお願いすると
こんな画面でプログラムを作らないといけないから、
となります。
私のイメージは、ボタン1つでデータは出てくるものだと思ってました
92 2019/10/25(金) 02:54:36
>>91
うわ、懐かしい画面・・・
見やすかったけど。
93 2019/10/25(金) 07:29:24
>>91
まだこんな物が存在するのかw
94 2019/10/25(金) 07:49:44
桐にしとけ
95 2019/10/25(金) 11:19:36
AUTHOR Y.SHINOZAKI 氏に頼むのがスジだが
これで何ができるかを知るために上にあるツールバーやメニューを
探ってみるのもひとつの手

ヘルプが充実してればそこから手立てを見い出せるケースも
ボタン系は迂闊に押すとすぐ処理するものも有ったりするので自己責任に成るけど
96 2019/10/25(金) 14:02:29
Me.Dirty=False
でレコード編集確定できるのな
キャンセルだと思ってた
97 2019/10/25(金) 14:13:38
ずーっと前からそうだけど、仕様に明記されてないので、明日変わるかどうかは解らない
98 2019/10/25(金) 14:44:43
>>96
おお。10年使っても知らないことってあるもんだな。
これまでdocmd なんたらで
明示保存かけてたわ。
本当はレコードカーソル動かせば
勝手に確定するんだけど
普通の事務員さんからすると心地悪いんだって。
99 2019/10/26(土) 19:54:07
いや普通のシステム屋にとっても確定押さずに確定なんて気持ち悪いだろ
100 2019/10/26(土) 20:06:16
でも入力側は入力完了したつもりでいる事多いんだよね

入力したのに入ってない!と
登録ボタンで保存する設計なのに苦情来たこと何度か…
1-
あと 538 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.321s*