X



Access総合相談所 30

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@そうだ選挙にいこう
垢版 |
2021/04/07(水) 12:33:01.06
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総合相談所 29
https://mevius.5ch.net/test/read.cg/bsoft/1569236545/
0046名無しさん@そうだ選挙にいこう
垢版 |
2021/04/13(火) 15:56:53.07
Windows10 Pro (64bit) Access 2016 (32bit)
の環境です。昔作成したAccessのファイルを開いたところ、
非表示モジュール内でコンパイルエラーが発生しました。
「通常このエラーは、コードがこのアプリケーションのバージョン、プ
ラットフs (x86)\Common Files\Microsoft Shared\VBA\VBE6EXT.ODB#Microso
(表示されたものすべてです)」
のエラーが表示されて使えなくなってしまいました。
調べたところ、参照エラーとのことですが、
ファイルは
C:\Program Files\Microsoft Office\root\vfs\ProgramFilesCommonX86\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB
にあり、レジストリの
Computer\HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\0\Win32
の値も
C:\Program Files\Microsoft Office\root\vfs\ProgramFilesCommonX86\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB
と一致しております。
vb
解決策に心当たりがあれば教えてください。
0047名無しさん@そうだ選挙にいこう
垢版 |
2021/04/13(火) 17:28:30.17
>>46
VBAのコンパイルエラー
mdb開いて非表示VBAを探しだして非表示解除してVBA修正する以外に方法は無いよ
少なくともVBAだからクエリーでは無いな
004946
垢版 |
2021/04/13(火) 18:15:01.04
すみません
金曜日にITが黙ってでofficeを64bitに置き換えてました...
32bit版に戻して解決

ほんとにすみませんでした
0056名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 06:39:01.58
ACCESSってフォーム使うならVBAで更新いれられるけどそうじゃないと開いたときのままのレコードが表示されつづけるから不便じゃない?
集計クエリとか閉じたり開いたりしなきゃいけないよね
0060名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 07:24:34.41
>>58
確かにそうも取れるよね

こういうのはExcelでやったほうが早いと思うけどね
ピボット使えばフィルタリングなんかも楽だし計算してでた結果を何も考えずに表示させられるし
0065名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 12:27:03.16
>>63
>>64
すみません、書き方が悪かったです
テーブルにあるレコードの二週間ごとの合計値をだしたい、ということです
二週間を一単位として、日々加算していき次の二週間でまた一からはじめるということです
月初を起算日にします
0067名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 12:46:02.09
根本的にこの人は"タスク"と言う事が理解出来て無い様だな
2週間たって自動で自らAccessが起動かかる仕組みは中に実装出来ない
0072名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 14:44:28.71
Excelで計算してACCESSに戻すしかなさそう
ACCESSって基本的には計算や整理されたデータをいれとくだけのソフトだからねえ
あれもこれもはできない
0078名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 19:01:54.08
単に集計したのを表示・印刷するだけなのか集計結果をテーブルに保存するのか

何か後者前提で話してるヤツいるな
フォームとレポートに出すだけなら開く時に都度集計でもよくね?
0084名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 20:01:02.26
>>80
フォームに入力してボタンを押したらマクロでリフレッシュするようにすればいいだけ
Me.Requery
Me.Refresh
でできる
キー入力でイベント発生させてもいいけど入力途中でも集計されてしまうのを許容できるかによる
0090名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 21:32:26.31
便乗で、
年間の労働時間の合計を従業員ごとに集計するのはどうしたらいいですか?
集計フィールドにDSumだと激重ということみたいですが
0093名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 22:07:48.23
>>91
ありがとうございます
レコード増えたら実行時には重くなるけど現実的な量では問題ないということですか?

Sum(労働時間) 、について、労働時間:出勤時間−退勤時間
のフィールドをクエリに作っておくということですか?

フォームに2021年の労働時間を表表示させておき
更新ボタンで再度実行するかたちですか?
0094名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 23:15:07.77
最低単位が分なら
SELECT 従業員, Sum(Datediff(n,出勤時間,退勤時間)) AS 2021年の労働時間 FROM テーブル WHERE 年=2021 GROUP BY 従業員

というか、仕様を公開しないとどういう項目があるのかすらわからないだろ
更新ボタンでもいいしフォームのどこかをダブルクリックしたら更新するでもいいし、それはマクロのプロシージャをどれにするかだけの話
自分がやりたいことを細かく書き出して、どれができてどれができないからこれを教えてほしいと言わないと何度も手間になるだけ
0095名無しさん@そうだ選挙にいこう
垢版 |
2021/04/14(水) 23:49:07.36
>>94
一年間の変形労働時間制というものを採用していて
年間の労働時間というのが決まっています
日々の労働時間を入力していき、労働時間をその上限から引いていく
ということをしたいです

フォームで時間を入力したときに、残り時間は○時間だから休みをいれて調整しよう、とかの判断をしたいです

最初にあいまいな質問をして迷惑をおかけしました
0098名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 07:02:29.66
>>95
時間を入力したら残り時間が計算されるようにする→Datediffで労働時間を求めてSumしたやつを上限から引けば残り時間が出る

調整の判断をしたい→誰が?何の基準で?
人間が勝手に判断するのならAccessと関係ないから勝手にどうぞ
自動で判断したいのならどういう基準でどう判断したいのか、それによってSQLで済むのかVBAを使う必要があるのかが変わってくる

まだあいまいすぎる
本当に細かいところまで全部規格を詰めろ
0104名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 13:36:00.68
他人が考え出してくれたアイデアは掲示板では無料だからね
皆時間取って書き込みしてんだから一つ一つ精査して出来るか試してみれば良いのに
0105名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 14:21:01.19
部分的に教えてもらって残りは自分で作るんじゃなくて、クエリ1〜2行だけで全部思ったように動くようなものをずばり教えてもらえることを夢見てんじゃないの
0107名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 16:41:01.99
>>98
単純に考えて毎日出勤と退勤時間を入力していって
その時に年間の上限の労働時間から引いた値を表示させたい
それを目安にあと100時間しかないから休みをいれるか、とかの判断をするってことなんじゃないの?
0108名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 16:49:00.66
俺はそういうのはExcelで入力、計算させて月単位とかでインポートしてる
ACCESSで数値訂正すると合計がずれるから訂正はできないんだけどね
0109名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 17:24:10.81
>>107
そんなことはみんなわかってるよ
表示させたいのところはもう既出でできてるでしょ
だからその判断は具体的に誰がどうするのって話
100時間固定ならそれはそれでできるし、プログラムで複雑な判断をするのか、もしくは人が判断するからその部分は作らなくていいのか、そういうところが全く情報がない
0110名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 17:25:18.63
1.Formで毎日の出勤状況入力

2.ボタン押下で2週間毎(基準をいつにするか不明だが)に計算(クエリ使うかVBA)して一覧表示(社員毎)

3.それをレポート化

これぐらい体系立って考え無いとダメだで
0111名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 17:58:34.58
>>109
判断は誰がするのか?とか、そこが必要な部分について質問者は聞いてないんじゃない?

単に、2週間毎の集計をしたいと。
その先について、あなたが勝手に推測でしてもっと詰めろと、ひとりでいきりたってるようにしか見えないよ。

自分は、質問者の文面からは、超アナログに管理者なり労働者が今年はもう働きすぎだなあ、ちょっと調整するか、とか考えるレベルのことでいいと読み取れたけど。
0113名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 18:03:13.59
>>111
そもそも合計なんてフォームフッターでもレポートフッターでも標準機能だぞ?
何が分からないのか何を聞きたいんだかさっぱりなんだが?
0116名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 19:23:06.11
おさわがせしてすみません
やりたいことを細かく書きます

運送業をしていて法的に運行管理というものが必要で画像のような規則になっています

改正があったのか二週間の合計と言っていたのは計算しなくてよくなったようです
そのかわり15時間以上は週に二回、というカウントが必要です

上限が、
年間3516時間
月293時間(年に六ヶ月までは年間を超えない範囲で月320時間までよい)

毎日出退勤時間を入力して、これをオーバーしないように計算したい、オーバーしそうなときに残り時間をみて休みをいれたり早く帰ってもらってりする、ということです

https://i.imgur.com/F6KYmdv.jpg
0118名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 19:39:57.76
>>116
技術的には普通にできるね
条件設定がいろいろあって手間がかかるけど
それで、あなたはどこまでできて、何ができないから教えてほしいの?
全部丸投げでやらせようということ?
まさかそれでできたものを製品として発注元の運送業者に売ったりしないよね?
0122名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 20:20:31.40
>>119
ザル法なんでみんな守ってないし(7割が違反しているらしい)コロコロ変わったり運輸支局で解釈違ったりするので把握するのが難しいんですよね

>>118
テーブルと入力フォーム、レポートは作ってDsumで計算するようにしました
集計フィールドとクエリでの計算どちらもしてみましたが違いはわかりませんでした
まだ一年分(20人程度なので一日20レコード程度、どんどんレコードは貯まるので激重になるんですよね)もないので問題はなさそうですが、レコードが増えると全レコードが対象になるのでとても使えなくなるときいたので、改善したいです
0123名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 20:29:54.49
>>122
じゃあこのSQLはできていて、それをもっと軽くしたいということね
それなら今のSQL文を書いてもらわないと改善できないよね
細かいところ書きたくなければ大枠だけでも出してもらわないと
ただそもそも改善する必要があるのかどうか
レコード数の見積もりは増えたときにどの程度なの?
あとはSQL文内にJOINを使っているかどうかで処理数が変わってくるのでそこがわからないと正しいことは言えない
0126名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 21:18:09.52
>>123
SQLではなくクエリのフィールドに計算式をかきました
>>124
なるほど、重くなってきたら過去のレコードだけを格納しておくテーブルに移動させるということですね
>>125
そもそも移動させなくてもこれでいいんですかね
0128名無しさん@そうだ選挙にいこう
垢版 |
2021/04/15(木) 21:49:23.84
背景が出て来たね
要件定義しっかりしてまとめ直せば
Accessだけ(ただしVBAとかは必要かも)で出来る内容だな
まあ、受託開発かも知れないが施主にインタビューしっかりして情報全て出させ無いとちゃぶ台返しくらうからね
気を付けるこった
0129名無しさん@そうだ選挙にいこう
垢版 |
2021/04/16(金) 14:00:50.87
昔のRAM500MBみたいな環境じゃないんだから対象データは全部RAMに乗るしインデックスすら効果がわからない程度の改善しかできないだろう
今回ならDSUMやめてSUMしたのとJOINするぐらいか
0132名無しさん@そうだ選挙にいこう
垢版 |
2021/04/17(土) 02:21:03.65
SQLで2020年のレコードで絞り込むとき
WHERE 年=2020とかにするんですよね?
この年代の指定を非連結フィールドに入力した値にするにはどうしたらいいんですか?
非連結=2020 ですか?
手元にACCESSがないので検証できませんが出先で記述だけしておきたいです
0133名無しさん@そうだ選挙にいこう
垢版 |
2021/04/17(土) 05:59:17.62
年がテーブルのフィールド名、
text年が非連結のテキストボックスだとして、
select ・・・ where 年=text年;
かな。
年が独立した数字フィールドって事は無さそうだけど。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況