Access総合相談所 28

1名無しさん@そうだ選挙にいこう2018/08/30(木) 23:16:08.14
ACCESSに関する質問はこちらへ

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
  ・何がしたいのか
  ・どんな処理を試したか
  ・動作状況など駄目な理由
  テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
 範囲で詳しく書くと、早く回答が得られるかもしれません。
  図解があれば尚良し。
  聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
  大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
  ギブアンドテイクで情報を共有しましょう。

▼━質問テンプレ ━━━━━━━━━━━━━━━━━
【 システム環境  】 Windows**, Access**
【 VBAが使えるか 】 はい・いいえ
【 VBAでの回答  】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード

前スレ
Access総合相談所 27
http://mevius.5ch.net/test/read.cgi/bsoft/1424828244/

>>68
sqlで結構なことできまっせ、が基本だよね。sqlは一応共通言語なので覚えて損はないし。
accessはまだしも、なんでexcelでvba書くのか意味分からん。
頼むから取引先、vba付きexcel書式を送らないで欲しい。vbaでパソコン破壊とか、普通にできちゃうし。

FOMEってのはなんでしょうか?

>>67
1万レコードのうち数個を修正したときも
クエリをやり直してテーブルに保存しなおすってことになるんですか?

非連結でやるのは、単価×個数、請求書の総計など簡単なものだけなんでしょうか?

>>71
おれも探してしまった 新しい仕様なのか?と

>>71,73
FORMだったわすまん
>>72
1レコード変わったら集計値変わるでしょ
だから集計やり直しの為にクエリーもやり直し

>>72
究極的に言うと「やってみれば」なんですよ。
このフローが遅いな、と思ったら違う手法を試せばよい。
しかし売り上げ請求とか、給与計算など、ミスが信用に関わる案件にはいきなり手を出さない方がいいです。

AccessをVBの代わりに使うのは問題無いがExcelは代わりにはならんな
帳票化も面倒だし
グラフ表示ぐらいしかメリット感じられない

77名無しさん@そうだ選挙にいこう2018/10/13(土) 01:13:53.57
【 システム環境  】 Windows10, Access2010

ID, name, 日付, 昼飯
2, 山田, 2018/05/03, うどん
3, 山田, 2018/07/08, そば
4, 鈴木, 2018/01/03, ラーメン
5, 鈴木, 2018/10/08, カレー
6, 鈴木, 2018/02/05, 牛どん

↓ 

ID, name, 日付, 昼飯
3, 山田, 2018/07/08, そば
5, 鈴木, 2018/10/08, カレー

人ごとに最新の日付の昼飯を抽出するにはどうしたらいいのでしょうか

SELECT [T1].name, Max([T1].日付)
FROM T1
GROUP BY [T1].name;

ここから先に奨めません

>>74
非連結で計算するよりクエリのほうがはやいんですか?
レコード追加、削除、修正のたびに毎回すべてをやりなおすのは遅くないですか?
レコードに変更があったらそのたびにVBAでクエリやり直すんですよね?

>>62
商奉行とかってたいてい
https://i.imgur.com/EiRVBDQ.jpg
↑こういったUIですけど古臭いというか
ごちゃごちゃしていて入力し辛くないですか?
視点も操作もあちこちに移動しなければなりませんよね

伝票単位が基本ですが
伝票という概念がない(すべての売上が1レコード1売上になるので伝票が不要)業種は面倒なだけですよね
そもそも伝票自体紙ベースの名残なので旧態依然という感じもします

>>77
max(昼飯)
マックスむらい的な。
ただし、1日に2回、昼飯を食っていないものとする。

ちなみに単なるレコードidを集合に含めるのは得策ではない。
max(id)を加えてもいいけど。

>>78
めんどくさいやつだな。絡むなよ。
いいから、ダミーデータでやってみてから文句言え。
プロが作ったERPのデータベース構造見たことある?
たいていは伝票登録のトランザクションの中で集計用テーブルに同時更新(または追加)を埋め込んでる。
それがスタンダードだけど、小規模事業者なら1ヶ月のレコードなどたかが知れてるので、ほぼvbaがいらない年月ごと消して埋め直して、を提示しただけ。

>>79
これも愚問。それを言ったら、簿記は全ての金の動きが1件1伝票じゃ。
仕入れで、小規模なものなら親子関係をもたない構造にしてもいいけど
売上で親子関係を結ばないのは普通有り得ない。
工事費、材料費で一伝票(あるいは見積書)を作成するわけで、明細がないドンブリ勘定で商売してるわけではないでしょ?

>>82
うちは、
1受注1売上1レコードです
2018/10/13 業務A 20000円
2018/10/13 業務B 20000
2018/10/14 業務A 30000
といった感じです
一つの受注に項目が2つあることはありません
なので伝票テーブルはつくっていません

販売系の概念だから業種によっては伝票に違和感あるひともいるんじゃない?
運送会社の事務方やってたときは伝票Tなかったな
一回の運行いくらだから、複数注文ってのが事実上ないからね
無駄なテーブルが介在することになるし

売上Tに運行内容と売上内容が直接記録されていく感じ
請求書はそのレコードを明細欄に並べてた


>>78
少なくともAccessではクエリーの方が速い

Accessの有意義なメリットがクエリーを視覚的に作れる部分だから
FileMakerなんかSQL文をベタ書きして実行する仕組みしか無いのでデータ加工の面倒な事
個人的にはFileMakerがクエリーを視覚的に作れたら最強だと思うがライセンス料金高いクセに、そこがクソ

88名無しさん@そうだ選挙にいこう2018/10/13(土) 22:35:28.30
>>80
わけわかりません

>>88
where条件は?
日付=MAX(T1.[日付])

>>88
間違えた
日付=MAX([T1].日付)

>>88
ごめん、嘘こいた。
SELECT 名前,日付,昼飯
FROM テーブル1 INNER JOIN (
SELECT [テーブル1].名前 AS name2 ,Max([テーブル1].日付) AS 最新日付
FROM テーブル1
GROUP BY [テーブル1].名前) A ON テーブル1.日付=A.最新日付 AND テーブル1.名前=A.name2

これで合うか。

>>91
inner joinまで含めてSQL文手打ちするのか?
クエリー覚えさせた方が速いだろ

>>92 そうだね、最近サーバのビューやストアドに
長々手打ちするので、慣れてしまったけど、
もう少し前の自分なら 集計クエリーで一旦保存して
それを内部結合させる二段構えにするかな。

accessは今は全く使えません
もし私の希望の作動ができるのであれば、勉強したいと思います

PC内と当該フォルダ以下にある全動画ファイルのアドレスを取得し、
そのファイルを一つずつ順番に外部動画ソフト(MPC-BE)にコマンドライン付きで投げ、
MPC-BEが吐いた静止画ファイルを、その動画ファイルと関連付けしデータベース化

クエリで抽出したデータから、ファイルと関連付けされてる静止画をリスト表示
静止画をクリックすると関連付けされたファイルをMPC-BEに投げて再生する

やりたいことは動画ファイル管理ソフトの範疇なのですが、世にある動画ファイル管理ソフトがうまく使えなかったり、作動しなかったり、帯に短し〜だったりで
自分なりのものを作ろうと思うのですが、CやC#より、外部ソフト使ってこっちのほうが簡単かなぁ?と思うのです
コレができるなら、いろんな情報をデータベースに登録して、動画用鯖の使い勝手が凄く増すのですが、
こんな事は可能でしょうか?

>>94 可能。便利かどうかは定かではない。
データベースモデルとしては図書館の検索システムとか、マスコミ御用達と言われている大宅宗一文庫(雑誌図書館)のデータベース、オンライン画像検索サービス。
設計構造よりも引っ掛けるキーワードをいかに充実させるかにかかってるんじゃないかな。

>>94
基本的には可能
コマンドラインで同期実行できるアプリなら楽
非同期実行されてしまうなら面倒
外部API公開しているなら超楽

>>95
>>96
どうもありがとうございます
プレーヤー側の操作はVBAでもできそうなので、どうにかなりそうです
ありがとうございました
勉強してみます

>>86
10万レコードあるテーブルで計算が必要なときには
1レコード修正、追加するたびにクエリを作り直す処理にするものなんですか?

>>98
クエリーを作り直す訳無い
クエリーを実行し直す、と言う事

100名無しさん@そうだ選挙にいこう2018/10/15(月) 13:43:27.39
>>98
お前さんはレコード修正、追加と
集計結果の編集レポートを同列で話してるので解答者とは話がかみ合わない
FORMでレコードメンテナンスするのと帳票はタイミング違うだろ

101名無しさん@そうだ選挙にいこう2018/10/15(月) 14:48:28.36
>>100
例えば勤怠記録をつけるとき
今日の分を入力するフォームに今月の労働時間など各種合計を表示させるのは非連結でやるんですか?
別途一覧表示などのレポートをつくるときがクエリなんでしょうか?

請求書の明細欄の合計なども非連結で
過去の請求書一覧を表示させるときなどに消費税や年間合計などを表示させるときにクエリなんでしょうか?

102名無しさん@そうだ選挙にいこう2018/10/15(月) 21:00:14.79
>>101
用途次第ですね。退勤記録を、あたかもタイムカードを見ているかのように
一人ずつ表示していきたい、なおかつ集計も見たいというなら、サブフォームのフッターに合計突っ込んで、親フォームでは、そのフッターを参照する式を書きます。(ここら辺、昔からACCESSの挙動が変なのでちょっとコツが入りますが)
請求は、参照閲覧用としては上に同じですが、締めという概念が入ってくるので、最終的にはいくら請求したかというテーブルが1個必要になって来ます。

103名無しさん@そうだ選挙にいこう2018/10/15(月) 21:20:23.90
>>102
退勤記録は
https://i.imgur.com/DBuPHIo.jpg
https://i.imgur.com/H8jxEhA.png
こういった感じで、月ごと日ごと従業員ごと、のような感じで表示させたいです
それぞれその日までの通算時間などを表示させて、です
このような場合はどのような設計がいいでしょうか?

請求書に関しては、売上テーブルから月末に対象となるものを駐出してそれを明細欄には表示させ
非連結で合計請求書や消費税を計算するつもりですが、まずいですか?
別途用意するテーブルとはどのようなものになるのでしょうか?

104名無しさん@そうだ選挙にいこう2018/10/16(火) 01:11:01.18
>>103 まず請求。普通の売り上げ管理システムには
締め作業があります。
この操作によって、伝票の修正禁止フラグを立てると同時に
締め期間ごとの合計金額と消費税計算が請求テーブルに
書きこまれます。「確かにこの金額請求しましたよ」の記録で、
その後の処理も作るとしたら回収管理につながります。
私もこの手のシステムの設計のお約束を全て知ってるわけ
じゃないけど、基本的にはこの手のシステムは「冗長的な記録」
(参照で済みそうなことの記録)をあえて行っている、と覚えてください。

次に退勤ですが、やれないことはないけど開発時間の浪費が
懸念されます。たとえば、マックス株式会社のタイムロボという
タイムレコーダーは10万円前後で、よくできた退勤管理ソフトも
ついてきます。
どうしても内製にこだわるなら、私ならEXCELにデータソースリンク
を作って、ピボットでクロス集計かける。

105名無しさん@そうだ選挙にいこう2018/10/16(火) 01:57:24.83
>>104
フラグで制御するよりテーブル分けろよ
締めた時点で帳票、集計画面用テーブル作れば良いだけ
リアルタイム操作用テーブルはFORMとペアで専用で用意

106名無しさん@そうだ選挙にいこう2018/10/16(火) 02:09:21.13
画像でいうところの請求金額や、各項目の数量×単価の金額のフィールドって非連結でやってたけどこれって間違い?
正しくはどうやればいいんでしょうか?
これは末締めじゃなくて直接入力みたいだけど
取引先と日付指定して該当のレコードを売上テーブルからひっぱってくるようなときの計算です
https://i.imgur.com/hx6I9f2.png

107名無しさん@そうだ選挙にいこう2018/10/16(火) 03:32:29.01
>>106
テーブルに項目として計算結果持つ方法有る

108名無しさん@そうだ選挙にいこう2018/10/16(火) 04:39:12.60
>>106
俺も非連結でやってたけどここみてたらおかしいのかな?と思ってきた
教科書的にはどうやるの?

109名無しさん@そうだ選挙にいこう2018/10/16(火) 13:49:21.88
>>105
標準的な設計ってそっちだっけ?
売伝のコピー作るってことでしょ。

私はあまり責任の重くない買掛だけ作ったときに(仕入先の請求書のほうが基本的に正しいから)、月締め後は直接仕入れ伝票に「もう弄るな」フラグ仕込んでるけど。

110名無しさん@そうだ選挙にいこう2018/10/16(火) 18:22:52.74
>>108
絶対に小数点以下が出ないのであれば
非連結でもいいんじゃないかな。
世の中、単価1.2円みたいな業種もあるので、この時は丸め計算の結果は登録しておく。
あと、食い物取引の軽減税率対応のシステムは明細単位で消費税類計算するロジックを採用してるのが多い。

レコード登録のもう一つのメリットはsum(数×単価)を毎回かけなくていいこと。今時のpcで体感差は出ないが。

111名無しさん@そうだ選挙にいこう2018/10/16(火) 20:15:01.39
>>109
物理的に分けた方が間違い起こしにくい
フラグ判定だと、バグでフラグ変わったら死ぬぞ

112名無しさん@そうだ選挙にいこう2018/10/18(木) 00:18:09.90
結局、末締請求書などをつくるシステムをつくるときは
全部クエリで計算してその結果をレポートに表示するようにしたほうがいいんですか? 

それとも請求書を確定させたタイミングで
別テーブルに合計金額などを格納するレコードを作成して
idで紐づけたほうがいいんでしょうか?
(各明細の単価×個数などは非連結として)

よくわからなくなりました

113名無しさん@そうだ選挙にいこう2018/10/18(木) 06:27:23.95
出納の管理や税務を考えると後者

114名無しさん@そうだ選挙にいこう2018/10/18(木) 08:17:51.73
>>42
グラス片手にデータベース設計販売管理編とか読むといいかも

115名無しさん@そうだ選挙にいこう2018/10/18(木) 08:19:30.80
>>114
>>112
誤爆

116名無しさん@そうだ選挙にいこう2018/10/18(木) 12:45:09.75
>>112
どういう設計(システム的に)って話
これは経験しないと分からない

117名無しさん@そうだ選挙にいこう2018/10/18(木) 17:34:14.86
>>112
後者
締めた売上の変更不可を忘れずに

118名無しさん@そうだ選挙にいこう2018/10/18(木) 19:49:52.84
>>114
あれ、いい本だよね。この本と、webサイトのT’s wareさんには大変
お世話になってる。

119名無しさん@そうだ選挙にいこう2018/10/18(木) 22:07:21.44
>>118
ね。平易で読みやすい。
そのサイト知らなかった。見てみる。

120名無しさん@そうだ選挙にいこう2018/10/21(日) 20:26:37.42
ビジネスで優秀な人材育成する上司は何を教えているのか?
https://www.youtube.com/watch?v=apxtSqxjw08&t=13s
マクドナルド伝説の店長が教える、最強店長になるために必要なこと
https://www.youtube.com/watch?v=0wMbR7JIeeQ&t=3154s
「最強の働き方」長時間労働やノウハウよりも大切なこと
https://www.youtube.com/watch?v=JnMHbI1-e3E&t=3606s
美容師の楽しさ再発見!やる気スイッチが入る働き方セミナー
https://www.youtube.com/watch?v=DGzXQT799oY
もうダメだ…仕事が辛い時に乗り切るための3つの思考
https://www.youtube.com/watch?v=VEPf8viBpRU
視覚障がいを乗り越えた活法家
https://www.youtube.com/watch?v=6IuY_K3uFdo&t=805s

新着レスの表示
レスを投稿する