X

Access総合相談所 30

■ このスレッドは過去ログ倉庫に格納されています
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/
201191
垢版 |
2021/05/09(日) 17:38:37.48
>>200
ありがとうございます。
しかし、私の知識・経験不足でご教授の方法のイメージが湧かず理解ができていません。
お手数をおかけしてすみませんが、もう少し詳しくお聞き出来れば嬉しいです。
2021/05/09(日) 18:01:17.48
>>201
ボタンの付いてるFormをVBAデザイナで開いてボタンをダブルクリックしたらVBAエディタが出るから、そこにコーディングするだけ
203201
垢版 |
2021/05/09(日) 20:26:03.63
>>202
ありがとうございます。流石にそこは承知しています。
お聞きしたいのは、「クエリ実行 openForm」という部分です。
「Form開く前にクエリ稼働させる」と関係すると思うのですが、
考え方や具体的な命令がイメージ出来ておりません。
204名無しさん@そうだ選挙にいこう
垢版 |
2021/05/10(月) 07:56:03.57
完全外部結合を作りたいのですが、結合プロパティだけじゃ設定できず、SQL直接かかないと実現できないでしょうか?
2021/05/10(月) 10:56:52.88
>>203
いきなりVBA出来ないなら
マクロ組んで見れば良い
それをVBA化すれば良い
2021/05/10(月) 11:24:45.00
そのレベルはもう出来てるだろ
どーやってパラメータ渡すのがいいかを聞いてるんだからさ

ACCESSの場合テーブルデータにはダイレクトにアクセス出来るから
後でフォームフィルターをかけてもほとんど遅くはならない
ただしSQLサーバーのクライアントとして使うなら「フザケンナ」って言われるだろう

フィルター状態が嫌ならformのRecordSourceにSQLぶち込んでやってもいいんじゃない?
2021/05/10(月) 11:34:39.80
各フォーム入力用のテーブル(1行だけ)を作っておけばSQLがシンプルになる
複数人で単一MDBの使いまわしは出来ないけとね

ボタン押した時にレコード保存するのを忘れずに
208191
垢版 |
2021/05/10(月) 12:06:02.46
>>205
失礼なのですが話がどうもかみ合っていない気がします。
>>191>>194 を見て頂いて、方法1や方法2のレベル感で
教えていただけないでしょうか?
興味がありますし、こういった情報の共有は皆さんにも有用と思います。
>>199 のやり方とも違うようですし、「クエリ実行 openForm」の情報だけだと
大雑把すぎて理解できません。VBAやマクロ、SQLは一通り扱えます。)
209191
垢版 |
2021/05/10(月) 12:34:48.92
>>206
コメントいただいてありがとうございます。
フィルタ状態は正直ちょっと気持ち悪いのですが、
速度がほとんど遅くならず、SQLサーバへの移行も当面考えられないので
方法1が手軽で良さそうですね。
教えていただいてありがとうございます。
2021/05/10(月) 13:18:23.50
>>208
DoCmd OpenQueryでVBAに書き込むだけでしょ
FormのフィルタにするとForm開くの遅くなる
2021/05/10(月) 15:07:28.72
>>204
クエリデザイナ?画面にテーブル2つ表示して
結合線を引かなければいい
2021/05/10(月) 15:18:51.41
横からだけど 210 の人は説明を端折りすぎ。質問者の方は理解できないなら拘らなくていいよ。
実用上の差はほとんどない。
2021/05/10(月) 17:44:20.65
つまり>>197だろ
2021/05/10(月) 20:29:37.09
>>212
VBA出来るなら理解出来るハズだよ
215名無しさん@そうだ選挙にいこう
垢版 |
2021/05/10(月) 20:33:26.85
>>211
意外!そういう事でしたか、ありがとうございました
2021/05/10(月) 20:43:59.04
>>214
クエリーの中身が分からないので
ユーのやりたいことが分かりません
2021/05/13(木) 12:23:39.01
>>216
クエリの中身はもともとの出題者通り
2021/05/16(日) 15:45:10.01
生年月日から年齢を求める計算で、
年齢: IIf(Format(Date(),"mmdd")<Format([生年月日],"mmdd"),
DateDiff("yyyy",[生年月日],Date())-1,DateDiff("yyyy",[生年月日],Date()))
みたいな例をwebで見かけますが、
Datediff(略)&#8722;IIF(略,1,0)で問題ないと思いますが何故前者の例が多いのでしょうか?
視認性でしょうか?速度?
2021/05/16(日) 15:46:33.87
文字化けしました&#の部分はマイナス記号です。
2021/05/17(月) 10:55:07.84
このスレで質問するのもどうかと思うけど
今から作るならaccessよりもシェアポイントにデータ上げて
powerappでやる方がよさそうですかね?
2021/05/17(月) 11:39:56.61
そうした方が良いのは、初めからそうしてるし
2021/05/17(月) 17:04:22.56
おだって作り替えた1の文言、
大不評だったから
やっぱ元に戻してって言ったのに。
針のムシロだわ。
今は、少しaccess離れて、webアプリを作るためにphpやらjavascriptと格闘中。
powerappsを使う経費も貰えない。
2021/05/19(水) 23:34:52.75
集計フィールドで氏名を分割したいのですが、left関数とInStr関数を使うと構文エラーが出て困っています。
そもそも集計フィールドでこのようなことができないのでしょうか?
2021/05/20(木) 10:13:06.56
どのような事でしょうか?
2021/05/20(木) 10:50:52.13
instrって使えたっけ?
使えるなら引数の順番とか個数かな
226名無しさん@そうだ選挙にいこう
垢版 |
2021/05/28(金) 16:09:28.71
AccessってFXのローソク足グラフ作れね〜じゃん
2021/06/07(月) 07:19:58.61
なんか水を差すようで悪いが、運送業向け勤怠管理用パッケージソフトウェアじゃダメなんか?

内製しなきゃあかんなら、Accessなりなんなりで作らなきゃいかんが...
2021/06/08(火) 14:44:16.84
こちらで質問するのは初めてになります。不備がありましたらすみません。

【Windows】10 【Access】 365
【作りたいものの業務分野】
評価出力
【あなたのスキル】
VBAは勉強しています
【どのオブジェクトに関する質問か】
クエリー、レポート
【やりたいこと】
評価が3人行っているデータベースがあります(一次、二次、三次とします)

DB上

配属 氏名 種別 評価
△△ ○○ 一次 A
△△ ○○ 二次 B
△△ ○○ 三次 B
△△ ■■ 一次 A
△△ ■■ 二次 A
△△ ■■ 三次 B

これをクエリ上で整形してレポートで出力したいと考えています
クエリーで行いたい整形は以下の形です

配属 氏名 一次 二次 三次
△△ ○○ A   B   B
△△ ■■ A   A   B

クロス集計にするための部分は数値じゃないため使用できないのですが、
このような形にするには、一次、二次、三次のクエリーをまずいったん作成して
統合するクエリーを作成するしかないでしょうか
2021/06/08(火) 16:10:04.58
さらに追加ですみません
上で述べた形に整形したときに
抜け(null・空欄)があっても表示するようにしたいと思っています

配属 氏名 一次 二次 三次
△△ ○○ A   B   B
△△ ■■ A       B

accessでクエリーを作成するとき、値が空欄でも全て表示させるというところでいつも躓いてる気がします…
2021/06/09(水) 14:07:43.80
種別は1,2,3で良いのでは?
2021/06/09(水) 14:58:35.33
評価も1,2にすればクロス集計にしなくとも間に一つクエリを噛まして選択クエリでできるな
2021/06/09(水) 19:01:04.80
ありがとうございます!
種別や評価なんかはリレーションシップ使用して
見た目は文字列だけど内部は数値のようにしていくのが本来は良いんでしょうね

今DB自体はシェアポイントにぶち込んでて、リンクをアクセス内に持ってきてたのですが
一度リレーションシップがエラーになってしまって…

上記の問題はレポートにラベルで疑似的な表を作って、VBAでDBから該当場所に値を設定していくように無理やりしました
レポートやクエリーが本当難しくて、VBAに逃げてしまいます…

https://imgur.com/c3YFYeq.jpg
2021/06/09(水) 20:13:20.34
>>VBAに逃げて
一番ダメなパターンだな
クエリー駆使してデータ加工するのがAccessのキモなのに
2021/06/11(金) 10:52:47.43
>>233
ありがとうございます
本当にいい加減脱却したいです

年、期、種別、部門、氏名、評価内容、評価というようなフィールドがあったとして

https://imgur.com/c3YFYeq.jpg
種別、評価を数字に変更したとして、
クエリでを駆使して上のような画像のような一覧を作成させるには
どのように整形させればよいのでしょうか
2021/06/11(金) 11:35:07.26
Excelでピボットするのが正解
236名無しさん@そうだ選挙にいこう
垢版 |
2021/06/11(金) 11:45:40.75
ピボットはアクセスでもできる
マクロをコピペすりゃいい
2021/06/13(日) 15:41:48.42
indexはB木かbitmapか指定できますか
2021/06/13(日) 15:54:39.86
いいえ
2021/06/13(日) 18:55:46.52
列方向の2ペインってアクセス内ではVBA噛ませないと無理かも。
フィールド項目はそれで合ってると思うので
開発時間をかけたくないなら、EXCELに外部接続で流して
あとはピボットテーブル処理にしたほうが、見た目の手直ししやすい。
項目設定もビジュアル操作で完結するし。
ACCESS上からすぐ呼び出したいなら、
シェアポイントなりonedriveなりEXCELファイルの
URL仕込んで、ハイパーリング挙動にしたら良い。

個人的には、これって一覧表にする必要ある?という気もするが。
評価項目も多いだろうし、評価者が3段階もあれば
もはや「一覧」の域を逸脱しているというか。
やれ、と言われたからやってるんだろうけど。
あとTRANSFORMでは基本的に、X軸方向は有限的かつ固定的項目、
Y軸方向は無限的項目が普通なので、評価項目が20項目程度で
済む場合、XY逆だろうな、という気もする。(3人なら
別にいいんだけど)
そういうデータ設計論をぶっとばす優しい機能てんこもりなのが
EXCELのいいところです。
2021/06/14(月) 22:25:16.29
docmd.saveてバグってないか?
俺はフォームを開いてるのに、docmd.saveするとフォームが開いてないと怒られる。

おかしな挙動はここにも書いてある。https://tsware.jp/study/vol4/docmd_7.htm
>>'"frm社員マスタ"を上書き保存します
>>DoCmd.Save acForm, "frm社員マスタ"
>>と、オンラインヘルプの「使用例」にならって書いてはみたものの、実行するとエラーになってしまいます。
>>フォームのデザインを変更してフォームを閉じようとすると「変更を保存しますか?」というメッセージが出ますが、
>>フォームの読み込み解除時イベントなどでこのメソッドを実行してみても、やはりそのメッセージは出てしまいます。このメソッド、どのような使うかよく分かりません。
2021/06/15(火) 12:31:03.65
Me.Save
2021/06/26(土) 21:08:57.23
UIが進歩する可能性はないですかね?
2021/06/27(日) 07:39:44.68
VisualStudio, MSSQL Expressをただで配ってるだろ
好きなUI使え
244名無しさん@そうだ選挙にいこう
垢版 |
2021/06/27(日) 12:30:47.75
>>243
それ、連結フォーム作れるの?
2021/06/28(月) 14:07:21.05
>>244
ロジック実装すれば、、
2021/06/28(月) 14:59:51.89
ワロタ
247名無しさん@そうだ選挙にいこう
垢版 |
2021/07/05(月) 22:14:32.59
初めて質問させていただきます。
初歩的な内容で大変恐縮ですがお知恵をお借りできれば幸いです。

【Windows】10 【Access】 2016
【作りたいものの業務分野】
勤務記録
【あなたのスキル】
Lv2
【どのオブジェクトに関する質問か】
テーブル、クエリ
【やりたいこと】
Mod演算子を使用すると小数点以下が自動的に四捨五入されてしまいますが、四捨五入せずに元の数値をそのまま取得することはできないのでしょうか。
他にも\を使い
A - (A \ B) * Bのような式を作っても上手くいかず…
たとえばA=9.5、B=10
で計算すると-0.5となってしまいます。
何か良い方法がないものかと色々調べてこちらにたどり着きました。
お力添えのほど何卒よろしくお願いいたします。
2021/07/05(月) 22:42:26.50
>>247
何をしたいのかは知りませんが Mod 演算子の仕様です
小数部分はすべて切り捨てられます
2021/07/06(火) 10:05:28.15
1000倍にしとくとか
2021/07/06(火) 12:16:24.46
>>247
何をしたいのか教えてもらっても?
2021/07/06(火) 22:11:37.37
皆様お返事いただきありがとうございます。
仕様ということであれば諦めるしかないですが、一応何がしたいかだけ申し上げたいと思います。

長文になってしまい大変恐縮ですが、中途採用社員の過去の経歴に基づき、給料を決めるためのデータベースを作成しております。
@DateDiffで他社に居た時の雇用期間を算出し、所定の換算率を乗じます。
A換算率を乗じた年月を年と月に分けて算出、という事をやりたいです。
より具体的に言うと、例えば他社にH31.4からR3.3まで勤めていた者が、R3.4に弊社に採用となった場合、勤めていた2年間(24月)に90%を乗じて、1年と9.6月(21.6月)という期間を算出したいです。
上記の例で言えば、Int関数で21.6月を12月で割り→1(年)、21.6月をMod演算子で12月で割り→9.6(月)という風にしたいのですが、四捨五入されて10月になってしまいます。
 年 月      年 月
正:1  9.6 → 誤: 1 10

説明が下手ですみません。
あまり外部に情報が漏れないようにざっくりとした説明しかできないですが、概要としては以上です。
長文失礼しました。
2021/07/06(火) 23:04:49.93
21.6-12でええやん
2021/07/07(水) 01:32:36.43
>>251
上の方で誰かが書いていますが
n倍して Mod の結果を 1/n で戻せば良いんじゃないでしょうか?
n は 10 とか 100 とか必要な少数桁数分で
2021/07/07(水) 02:55:30.51
www
2021/07/07(水) 06:37:44.32
お返事いただきありがとうございます。
なるほど、そんな事にも気付かず大変恥ずかしいです。
それで試してみたいと思います。
お忙しいところ、ご教授いただきありがとうございました。
2021/07/20(火) 11:51:06.37
最近のアップデート後だと思うが、添付データのダイアログボックスが
英語になってしまった
実用上は問題無い
他のコントロールオブジェクトでも同様の問題が発生しているかも
2021/07/20(火) 11:54:15.45
アカウントの所で表示されるバージョン情報で
2104/2015は問題無かったが2016で英語になってるな
258名無しさん@そうだ選挙にいこう
垢版 |
2021/07/29(木) 14:51:26.34
Windows11対応AccessになってUI変わるのかw
2021/07/30(金) 14:24:27.94
今朝、Windows11のベータチャンネルが使用出来る案内が来たので入れてみました。
ACCESSのコマンドボタンが若干変わって見える以外は今のところ問題無いようです。
2021/07/30(金) 14:39:22.60
いや、Windows11用のUI版になるらしい、office全部が
2021/07/30(金) 16:01:07.60
そうですか。ACCESS365ですが今のところ大した違いは無いみたいです。
262名無しさん@そうだ選挙にいこう
垢版 |
2021/07/30(金) 18:34:02.19
 Microsoftは米国時間6月28日、「Windows 10」と「Windows 11」向けのデスクトップ版「Office」アプリのデザインを「刷新」したバージョンを「Office Insider」プログラムのテスター向けにリリースしたと発表した。
この刷新はWindows 11で「最大限の効果を発揮する」が、Windows 10にも対応している。
2021/07/31(土) 12:55:57.00
2GBの壁超えは永遠に無理なのか?
264名無しさん@そうだ選挙にいこう
垢版 |
2021/07/31(土) 13:44:52.50
あれ、久々に来たけど、64bitでもあかんの?
265名無しさん@そうだ選挙にいこう
垢版 |
2021/07/31(土) 18:25:12.82
アカン
おっきいのはSQLサーバーかアズール使ってください
2021/07/31(土) 19:37:27.12
2GBは知らなかった。
データファイル分離で使ってて
ファイルサイズ自体は4GBくらいになっても問題ないけど
実データサイズが2GB越えられないのかな。
2021/08/02(月) 13:05:48.42
win11でフォーム開くと、コマンドボタンの他にスクロールバーが変わってますね。マウスオーバーで上下矢印が表示されてバーが太くなります。
2021/08/27(金) 11:34:46.65
XPで開くと丸っこくなって青やら緑やらになります
2021/08/27(金) 12:32:50.93
>>260
どういうのになるんですか?
AccessのUIには辟易していたので改善されるならうれしいです
2021/08/27(金) 12:38:36.17
レポートでフィールドの文字をきっちりまんなかに表示させて、余計な隙間つくりたくないんですが目分量歯科できませんよね?
2021/08/27(金) 12:39:27.41
タイトルバーの文字が中央に表示される!!
2021/08/27(金) 12:53:26.04
>>271
右端のプロパティの極小文字とかレイアウト拡大できないとかの前時代的仕様はそのまま?
273名無しさん@そうだ選挙にいこう
垢版 |
2021/08/30(月) 15:33:29.99
▼━初心者用質問テンプレ ━━━━━━━━━━━━━━━━━
【Windows】 10 【Access】2010 Runtime 32bit+Windows10 64bit
【あなたのスキル】
LV3:VBAが打てる
【やりたいこと】
/cmdを使って引数を2つ渡してaccdbを起動したいです。
Y:\hoge.accdb /cmd "ABC,"DEF"
だと問題なく起動するのですが、2回実行すると別プロセスで開いてほしいため
"C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" "Y:\hoge.accdb" /cmd "ABC,"DEF"
のように設定すると、
MicroSoft Accessを起動するためのコマンドラインに、MicroSoft Accessでは認識できないオプションが含まれています。
MicroSoft Accessを終了し、正しいコマンドラインオプションを指定して、再移動してください。
というメッセージが出て、ファイルは起動しますがコマンドライン引数は渡せません。
引数を一つにして
"C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" "Y:\hoge.accdb" /cmd "ABC"
なら問題なく起動します。

実際には、別アプリが動的に引数をくっつけて起動するので、引数部のデリミタやダブルクォーテーションをコントロールすることはできません。
そもそもエラーが出る理由もよくわかっていないのですが…

正しいやり方があると思うのですが、教えていただけないでしょうか?
274名無しさん@そうだ選挙にいこう
垢版 |
2021/08/31(火) 08:52:36.40
/cmdが必ず最後
275名無しさん@そうだ選挙にいこう
垢版 |
2021/09/05(日) 03:06:10.33
a b c d
a b e f
a b g h
z y i j
zy k l
こんな一覧を以下みたいな帳票レイアウトを
標準機能でつくれます?

a b
―――-
c d
e f
―――
小計

違うページ

z y
―――-
i j
k l
―――-
小計
2021/09/05(日) 10:28:26.25
>>275
ACCESSというより、知能テストみたいな情報しかないな。
ようは、カラム名になるべき項目が複数列にわたって、行情報に
入ってるのをなんとかしたいってことでしょ。
ここではクエリーエディターを表示するわけにもいかんので
SQLで表現すると、
SELCT [3列目] AS a,[4列目] AS b from table WHERE [1列目]=a AND [2列目]=b
小計をレポート上で表現するか、クエリーに含めるかは考え方による。
上記クエリーをq1とすると
SQL * FROM q1
UNION ALL
SQL sum([a]) AS sumA,sum[b] AS sumB FROM Q1
みたいな感じ。

違うページ、上記のように中身を変えてもう一本作ることになる。
本当はTransを使いたいところだが、1列目の数値データは3列目、
2列目の数値データは4列目、と変な形なので、無理だと思う。
本来あるべき、データの原型は
a c
bd
ae
bf
zi
yj
2021/09/05(日) 18:37:36.13
勉強し始めなのですが、クエリで複数の都道府県でデータを抽出する問題でわからないことがあります
大阪府と京都府を抽出条件に入力し、並び替えを昇順にすると京都府→大阪府の順に並びます
昇順は五十音順で、あ→んに並び替えなのかと思ったのですが違うのでしょうか?
2021/09/05(日) 19:14:12.21
なんていうか、コンピュータが>>277の様な初心者が考える通りに動いてくれればいいのにって思うよねぇ
2021/09/05(日) 19:18:05.86
調べたら地図上の順番通りに並べ替えする方法が出てきたので、最初からその設定になっているわけではないんですよね?
昇順降順の決まりが謎です…
Windows10、Office365です
2021/09/05(日) 19:21:23.26
>>277
京→大
文字コードの順番じゃないの?
ユニコードか ShiftJIS かドッチかだったと思う
281名無しさん@そうだ選挙にいこう
垢版 |
2021/09/05(日) 19:55:46.48
>>280
文字コードですか
講師から何も説明なかったのでまったく考えついませんでした
ありがとうございます!
2021/09/05(日) 22:49:43.36
50音順なら
京→キョウ
大→ダイ
で正しいんちゃうんか?
Windowsもこうだろ?
2021/09/05(日) 23:55:30.06
京都人に、わてらが前に来ないのは何事かといけず言われるよ。
気持ちは今でも首都だから。

アルファベットだと何の苦労もなく並び替えられるけど、
漢字は音読み、訓読みあるし。
ちなみに、軽くググったら厚労省の県コード表が見つかったが
概ね北から南の順に並んでるけど
京都府26番、大阪府27番になっとった。
https://www.mhlw.go.jp/topics/2007/07/dl/tp0727-1d.pdf

実データのほかにこういった都道府県マスターを持っておいて
クエリーで接続して県コード順に並び替えるのが、いいんじゃないの。
284名無しさん@そうだ選挙にいこう
垢版 |
2021/09/06(月) 01:24:37.05
レポートのグループ化すると見出しみたいになるけど
複数フィールドでグループ化って出来ます?
2021/09/06(月) 14:12:12.98
連結した値でグループ化してもいいし
多段グループ化して上位グループヘッダーは非表示(高さゼロ)でも良い
286名無しさん@そうだ選挙にいこう
垢版 |
2021/09/10(金) 19:55:19.05
クエリって

フォームの例えばラジオボタンの状態で
丸々以下の二つのクエリを切り替えて実行することできないの?


select 出力カラムA
from テーブル名B
where 条件式1
and 条件式2

select 出力カラムC
from テーブル名D
where 条件式3
and 条件式4
2021/09/11(土) 02:07:35.84
・売上レコードが月に数千ずつ増えていくテーブルで取引先の売上の合計とかある期間の売上合計をだす
・労働時間管理で月間の時間を足す

というのはレコードが増えるたびに重くなっていきますか?
それぞれのテーブルにはどんどんレコードが増えていき、一番使うのは今月の合計だと思いますが
今月のをみるがために、1度すべてのレコードを抽出条件に適合するか判定するんですよね?
例えば10年前の、とかまで
2021/09/11(土) 09:36:01.85
>>286
onchange プロシージャ
if me!radio1=1 then
me.recordsource="なんたら"
else
me.recordsource="どうたら"
end if
2021/09/11(土) 09:49:25.32
>>287
はい。pcのマシンスペックに影響されます。
計算が遅いと感じるのであれば
昔の会計系でよく見られた技法の
集計保存テーブルを持っておくことです。
whereじたいは、計算コストがかからないので対象を絞っておいて、合計計算して
集計テーブルにinsertするというやりかたです。
過去データは集計の対象から外れるので全体的な処理が
軽くなる場合もあります。
2021/09/11(土) 12:28:23.05
>>289
どうやってつくるのでしょうか?
2021/09/11(土) 12:57:53.99
ちなみに一般的な販売管理などでは集計保存テーブルをつかうものですか?
2021/09/11(土) 14:30:25.96
>>291
売り掛け管理は、明確に締め請求という手順があるので
月間(または締め日期間)の精算額テーブルを持ってますよ。
支払の契約によっては、前月の請求額が必ずしも今月入金にならない業界もあるので
前月残高+今月売り掛-今月入金=今月請求額
という計算を行います。
2021/09/11(土) 14:35:36.21
>>287
"202109"みたいな値を格納した「年月」列を作って、インデックスをつける
「年月」列を使ってwhereなりgroup byする
2021/09/11(土) 15:13:39.06
>>293
日付そのまま使うのとなにか違うの?
2021/09/11(土) 16:05:18.28
>>294
whereで絞り込む時、yearとかmonthを使っちゃうとインデックスが使われない
不等号で年月を判定するなら日付にインデックスでもいいね
2021/09/11(土) 16:42:54.07
>>295
数字で格納するのは日付入力時にVBAで変換して格納するフィールドをつくるってことですか?
297名無しさん@そうだ選挙にいこう
垢版 |
2021/09/11(土) 17:59:25.00
>>288
フォーム側の機能、レコードソースの切り替えでしか無理か
クエリ、つまりSQLでは無理なんだな
2021/09/11(土) 18:36:42.70
>>296
そんな感じ
2021/09/12(日) 08:21:16.17
>>290
293さんの手法でwhereとgroup byで集計
insert 集計保管用テーブル(いわゆる追加クエリー)

集計のし直しは、集計保管用テーブルの対象レコードを見つけてupdate(いわゆる更新クエリー)
2021/09/12(日) 16:47:46.86
>>296
そんな事するなら日付を1日固定で日付型使った方がスッキリするよ
2021/09/12(日) 17:15:31.30
>>300
1日固定って?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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