Access総合相談所 29
■ このスレッドは過去ログ倉庫に格納されています
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 https://mevius.5ch.net/test/read.cgi/bsoft/1535638568/ コンボボックスのリストに(選択してちょ)とか(なし)とか(すべて)とかを追加したいという案件では? >>757 1000件入ったテーブルがすてに有って、そのテーブルのデータを変更しないで見た目上3件増えた様に見せかけたいのね。 例えば、エクセルの表のピポットテーブルの合計行みたいなイメージかな? 多分、できないか非常に難しいと思われ。 同じフィールドのテーブルを作ってunionで連結するか、目印を付けて元のテーブルに追加書き込みをして使用後に削除するのがお勧め フォームを開くと「イベントプロパティに指定 した 式 開く時でエラーが発生 しま した オブジェクトまたはクラスがこのイベントセットをサポートし てい ません。」とでます。フォームには, https://hamachan.info/win10/access/textbox.html を模したマクロと、アクセスを閉じる、次レコード、前レコード、サブフォーム印刷プレビューマクロがあります。 訳わかんないエラーでたらVBE開いて、一カ所変更して元に戻して、再コンパイルすると、なぜか正常になっちゃう そういえば、昔はコンボボックスのウィザードなどで 特化機能を選択するとvba記述が生成されたのに 今はマクロビルダーで設定されて、 コードに変換、みたいなボタンを押してもvbaにならないよね。 マクロビルダーって裏でvba動いてないんだろうか。 なんか「マクロ」って苦手だわ。 >>757 SELECT * FROM t1 UNION ALL SELECT TOP 1 1001 as ID, 200 as DATA FROM t1 UNION ALL SELECT TOP 1 1002 as ID, 300 as DATA FROM t1 UNION ALL SELECT TOP 1 1003 as ID, 400 as DATA FROM t1 これでできないかな 共有フォルダでネットワーク経由で使うと マジで壊れまくるんだが どーしょもねーの? Idがうんたらかんたらと >>764 データ部分は共有フォルダに、プログラム部分は各クライアントのパソコンに入れる、と言う使い方をしてます。 不具合無く使えてます。 >>764 Accessは同時アクセスすると壊れる仕様です 会社など複数人で使用する場合にはMySQLやPostgreSQLなどのまともなデータベースソフトを使うべきです >>764 > 共有フォルダでネットワーク経由で使うと サーバーOSはWindowsでしょうか 全社でファイルサーバが統合されたことがあったんだけど、Windows以外でまともに使えないことがあった 結局、部門サーバーを復活させた Windowsサーバーでも、ファイルシステムのレプリケーションしてるボリュームに置いてると正しく機能しないこともあったよ 共有する必要性の低いものがAccessのままで残ってるのがあるけど、インフラが変わってダメだったことは時々ある 重要なのはSQLServerでレプリケーションしている 「Access でデータベースが '矛盾がある状態' にあると報告される」 で検索してみるんだ ここまで壊れやすいと、仕事として使うのもためらわれるよな >>769 けっこう弱いよね。テーブルあたりの同時使用数2人が限界かな。 一般的なデータ、フロント分離方式で、3、4人同時入力させてた時には よく矛盾が発生した。 本職が作るアプリみたいにレコード単位でローカルコピーかけて、編集後に書き戻す 方式にしてから壊れなくなったけど、とてつもないVBAコード行数になって くっそめんどくさかった。 アクセスからエクセルにエクスポートしたテーブルをインポートしたら、チェックボックスがYesNoになりました。一括でチェックボックスにする方法はありませんか? テーブルで通貨型フィールド作って一度保存すると 書式設定しても必ず強制的に書式が「通貨」になってしまうんだが これどうにかならんもんかな excelVBA使えて accessも使える って人は、労働者で全体で何割くらいいるんだろ? なんの、証拠もないけど500人に一人とフォーリングで感じてるが 業務に使う共用データベースシステムをAccessで作るやつの気が知れない 外注してもAccessでよこすのがいるから本当困る 発注者も製作者も無知で数百万数千万の金が動いて検収が済み、後でトラブルが発生して問題になるのを何度も見た 何億ならともかく数千万円の案件ならACCESSで納品しますよ >>774 さすがに1千万円以上クラスの予算だと 実行形式での納品は常識でしょ。 帳票出力のためのサブシステムとしてaccess使います、という提案を受けたことはあるけど。 私もaccess vbaを使えるなんて 社会ニーズゼロとわかってるので 時々、社内便利ツールを作る 宴会芸くらいに捉えてる。 >>773 excelVBAは、常に何行何列を 意識してなきゃならんので、すごく面倒くさい。 365だと関数も積極的に追加されてるし、excel自体が機能てんこ盛りの変態ソフトなので なるべくvba使わないようにしてる。 ACCESSみたいにフォームを作れて、テーブルのデータ形式が決められるソフトウェアって、他に知らない。 >>778 PHP+mysqlかポスグレで普通に作れるし >>778 FileMaker知らない? 他にもあるでしょ Accessみたいにってのが何を指すのかによるけどね Accessってレコードの同時編集や同時にExcelファイルからインポートしたら壊れますか? 365でも同じですか? >>785 追加です。 2台でインポート、編集は特に問題はありませんでした 必ず壊れるんならみんなやらないから問題ないんだよ たまに壊れるから厄介なんだよ だからAccessは基本的に一人で使うもの >>789 開けるのか、開けないのか、どっちだよw サーバーのデータファイルに各クライアントからリンクして使ってるけど、壊れた事無いな。運が良いだけなのか? 書き込むときトランザクションかけときゃ大丈夫だろ そもそもかけないと遅せーからな 度数分布表を作りたいのですが、クロス集計で作成すると 標本数が0の時に表示されなくなります。 _0 2 3 10 6 0 ←この0は表示されない。 20 9 2 30 3 0 ← 40 0 0 ←この行自体が無くなる。 50 2 0 ← これを常に0も表示させる方法はありますか? >>794 単純モデルでゼロという値を含むクロス集計を試したら ゼロは表示されたので、クロス集計の問題ではないですね。 必ず「ゼロというデータ」が発生するよう、一次データをクエリーで細工する必要があるのではないでしょうか。 たとえば、前レスで何度も出てきた union allを使って、強制的に固定的データをマージするとか。 Countの0は細工しようがなくないか? 元データの数を数えるんだからないものはないわけで 細工してデータ入れたら1とかになっちゃうよ それもそうだな。ゼロもカウント1個だし。 再度試したのはかなり泥臭いやり方です。 SELECT test.caption, Count(test.number) AS CNT FROM test WHERE test.number >=0 And test.number)<10 GROUP BY test.caption これを範囲ごとにクエリーとして保存します。クエリー名testCNT1,testCNT2などとします。次に、常にゼロを出力するダミーテーブルを作ります。 範囲 caption CNT 00-09 a 0 00-09 b 0 00-09 c 0 10-19 a 0(以下略) クエリーとダミーを全てUNION ALLします。 最終的にこれを使ってクロス集計クエリー(CNTの合計ということにしておく) をかければ、一応データなし個所にゼロは埋まります。 UNION ALLのくだりが説明不足だった。 こんな感じ。クエリーごとに範囲名を付与する。 SELECT "00-09" AS 範囲,* FROM testCNT1 UNION ALL SELECT "10-19" AS 範囲,* FROM testCNT2 UNION ALL SELECT "20-" AS 範囲,* FROM testCNT3 UNION ALL SELECT 範囲,caption,CNT FROM test_dummy 一日に10件ほど増えていく出退勤簿があります 年間や一週間ごとの合計勤務時間や休憩、前回の出勤から何時間空いているか、などを計算するとき 抽出したりしてレポートを作成する都度計算させるとどんどん重くなっていきますか? 重くなってから考えれば良いんですよ 当初の心配をよそに不自由なく何年も使えてしまう事も多々あります >>800 そんなもんなんですね ちなみに設計としては一般的なものなので 普通は何も考えずに都度計算する、という方法でつくりますか? たとえば一週間ごとのやつなら最初は普通に出てたのがそのうち重くなる そしたら抽出範囲を適当に狭めれば使える どうせ昔のは必要なくなるから そうやって適当にしのいでれば大して問題になることはない 集計結果を社内サイトのトップページに毎回表示する とかなら結果表を保存しとくかな? 1週間に1回しか使わないなら1分ぐらいまで待たせる >>802 >>803 毎日見るわけでもないので作り込むほうが時間の無駄って感じ感ですね 保存しておくというのはpdfなどでということですか? 10年で36500件って、わりと小さいテーブルだと思う。 計算式直打ちでも、もたつきは出ないんじゃないかな。 前日からのインターバルだけ、 データの検索が必要になるから 出勤入力確定時に、そういった動作をプログラムして フィールドに埋め込みしたほうがいいかも。 joinとかして掛け算で計算量増やさない限り大丈夫だろ >>805 どういうことですか? 知識なくて理解できませんでした >>808 ええ?的外れだった?ショックw >>807 「前回の出勤から何時間空いているか」に関する提案です。 カタカナでインターバルって言い換えただけで。 職場の自主管理や、改正労働時間設定改善法に関する項目でしょう。 「タイムレコーダー」っていうテーブルがあるとすれば、従業員全員をごっちゃに入れますよね。 recID 従業員ID (従業員名)始業時刻 終業時刻 1 1 Aさん 2021/1/25 9:00 2021/1/25 18:00 2 2 Bさん 2021/1/25 9:00 2021/1/25 18:00 3 1 Aさん 2021/1/26 9:00 2021/1/26 18:00 レコードID3からすれば、その人の直前の終業時間(レコードID1)と始業時間(レコードID3)の 差を取る必要があるわけです。 そのレコードID1を見つけるのが検索で、表示させるたびにこの動作を発生させたら マシンスペックや、レコード数によってはもたつくかもよ、という話です。 都度、計算でクエリーに埋めるとしたら 間隔:[始業時刻]-DMAX(“[終業時刻]”,”タイムレコーダー”,”[ 従業員ID]=”&[従業員ID]&” AND [終業時刻]<#“ & [始業時刻] & “#”) みたいな感じになるかと思います。(動作検証はしてないので自信なしdatediff関数を使うかもしれない) 表示するたびに、テーブル全体を舐めることになるので、 それよりかは、「間隔」とか名付けたフィールドを設置し、始業入力時のイベントプロシージャーで [間隔]=[始業時刻]-DMAX(“[終業時刻]”,”タイムレコーダー”,”[ 従業員ID]=”&[従業員ID]&” AND [終業時刻]<#“ & [始業時刻] & “#”) とでも記述したらいかがですか、という話です。 (その従業員の最初のデータでは間隔を作れないので、その処理の仕方はまだ考えてません) >>809 やはりすべてのレコードが対象になるので激重になりますよね 差を求める必要があるのならjoinするときにwhereで絞っておけば計算量減るからそんなに重くならない 従業員別のテーブルを作って集計をクエリでやるべきでは? それはアホだな リレーショナルデータベースというものを全く理解していないことがよくわかる >>811 何をjoinする? 前回のレコードIDを記録しとくか? なら時間記録したほうが早くね? >>816 本当にしたいことが何なのかよくわかんないけど、 出勤時と退勤時の差を求めるんなら、出勤時のSELECTと退勤時のSELECTをJOINしてONで同日指定してWHEREで必要な期間だけ抽出すればいいんじゃないの そもそも具体的な話を本人からしたことあったっけ? >>815 会社の総務なら人員が増減する度にDBもメンテするのは当たり前だし 個々のテーブルの追加・削除などVBからやれるようにしとけば何の苦も無い 変化のあった従業員IDを抽出し、それを元にメンテもフォームメニューから ワンタッチで出来るようなシステムにしとけば良いだけだろ >>818 従業員IDからテーブル名作ってSQL作るの? フォームのデータソース差し替えたりしちゃうんだ 面白すぎwww >>820 そんな感じするね Excelでシートごとに記録するのを当たり前にしてるような嫌な感じがする 集計の仕方が変わったり、項目自体が見直されたら、全テーブル作り直すためのプログラムを書きそう しなくて良い仕事を作ってそれが仕事だと思ってそう excelで思い出したけど このまえ、総合生産管理をexcelで組めって部長に言われた。 Accessとかdbサーバー使ったらダメだって。 製品マスタ、材料マスタ、使用材料展開表などからの 生産実績入力、分析、材料の在庫管理、生産予定管理、 材料必要数の展開、材料発注管理 無理です〜。 15年位前の日経パソコンにEXCELは手軽で強力な開発環境って連載があった様な。 生産管理システムをEXCELで始めて必要になったらACCESSに、みたいな記事だった気がする。 出来るって言ってる人が居るんだから自分にも理解できる(気がする)EXCELで作って欲しいのでは。 >>819 人員は毎年定期的に、そして不定期にも変化するもので その変化に応じたメンテを当然DBでもする必要がある 要はそのメンテを如何に楽に簡単に済ませられるかが肝だろう メンテ内容が、IDの追加/削除だけで済むなら内部構造の在り方など 管理者の好きにすれば良いだろう。 他のテーブルとリレーションさせてるレコードの編集では作業用テーブルを 書き出す必要もあるし、それをクエリから抽出させることも出来るし、 何を奇様に捉えてるのやら >>822 パソコンのEXCELなんでしょ? スマホ版だと無理だろうけどJETのドライバならWindowsに標準でついてるみたいだよね Macはどうなんだろうね エンジンが使えるならAccessでできるデータ処理はほとんどできるんじゃないか 見た目をEXCEL上で動かせば良い EXCELが必須じゃなけりゃMSForms使えば良い 「課題テーブル」 の項目「ファイル:添付ファイル型(拡張子は.xlsx)」をSQLで取得して(1)、 そのファイル名を変更して保存(2)しようと思っています。 (2)の処理は問題ないのですが、肝心な(1)の処理が分かりません SQLだと以下のような感じかと思うですが、これだと、「ファイル」の名称も取得すらできないようです。 なにかしらヒントをいただけないでしょうか。 検索にヒットするようなキーワードでもかまいません。 よろしくお願いいたします。 "SELECT ファイル FROM 課題テーブル where ID = 1" (件数は1件) 項目AとBがあって、Aは必ず値があります Bは値があるものとないものがあります Bで値がないものだけを抽出するには、WHERE句に何と書いたらいいでしょうか? あ、すみません、自己解決しました ISNULLでいけました >>828 a b間は a条件 or b条件でいいんじゃない? isnull 使うかなあ。 あと、最近はgoogle検索っぽいのを求められるので 半角スペースを条件列挙に展開するコードを書いて 条件句じたいはlike *キーワード* にするのがいいぞよ。 >>829 遅レスだが、なぜorでいいと思ったのかが知りたい ダメでしょ そもそも質問はb条件をどう書くかなのにそこは無視してるし >>826 添付ファイル型は使ったことないので動作が分からないけど、一旦取り出してからファイル名を変えて登録し直さないとダメとかじゃないの そもそも(1)ができないのに(2)はどうやって動作確認したの 大変興味深いので教えて 右端とかのプロパティの文字あたりは大きくできないの? あれ小さすぎだろ ところでレポート印刷してできるだけ枚数減らしたいときってフォントどのくらいまでさげてる? 7より下げるときつそうだが印刷すると問題ないかな? 最近はBIZゴ使ってる フォームやレポートのデザイン画面を拡大縮小できないのもキツい フォームや印刷関係などは使いやすい 別途のソフト経由させてもいいんだけど そういうのやりだすともはやプログラマの知識必要になるよね? GUIいちからつくって全部プログラム組んで mysqlとかやる羽目になるのね? Windows自体のダイアログのフォントが小さすぎて変えられないから無理でしょ 小型高精細モニタなんて珍しくもない時代なのに対応しないMSは何やってんだ Androidで簡易編集なり閲覧できないのがつらい 大したデータでもないからクラウドに上げてスマホで軽くやりたいときある 請求書などでレコード数により余白が出るとき どちらのほうが視認性がいい(または一般的)ですか? 1は表の最終ラインを固定位置にして間が空白になる 2はラインをレコード数によって上につめて、それよりしたが空白になります 1 https://i.imgur.com/vDIZtqA.jpg 2 https://i.imgur.com/bmZg91T.jpg 数値は適当にいれたので気にしないでください >>840 1は小計のしたが空白になって用紙の下辺りに太線(表の終わりを示すもの)があるけど 2は小計の下は空白がなく上につめる、ラインの下は空白になっています ACCESSだと多少面倒だけど決まった行数空欄のままラインいれるとかかな https://i.imgur.com/2T5hGcz.png いつも思うが一番下の小計みたいなのいる? こういうほうが見やすい https://i.imgur.com/Vxyopzf.png >>839 2番。 気軽に答えられるアンケート形式はいいね。 >>844 2番って用紙の3分の1くらいから下はまったくの白紙ってこと? こんなんつくったけど小計のとこはこんな書き方でいいんだろうか? 小計は4行にして高速代と料金は縦並びのほうが一般的? 数学とか会計的に矛盾した表組みとかいわれそうでこわい https://i.imgur.com/lYES4QA.png 高速代が頻繁に生じる業種ならこの形でいいと思う 一般の会社でたまたま高速代が生じたのなら明細を四行にして金額は縦並び、高速代には非課税の※印を付けるかするのが普通と思う >>846 あくまで試作だろうけど ちょっと笑った。 なんで高速代固定なのか。 まあ、高速代としましょうよ、etcの利用明細でも参考にしてくださいな。 普通は 伝票番号、伝票日付、品名 (高速利用料なら「利用料 あic〜いic」)、数量(利用料で特に何回とかまとめない場合は不要)、単価(絶対に単価=小計の場合は不要)、 小計 みたいな感じだと思う。 >>848 頻繁に生じます 表としてそこまで矛盾しているわけでもないってことですか? そもそも縦に小計や消費税が並ぶのも矛盾している気もしますけどね >>849 自己レス 思ったけど高速代って 高速道路じゃなくて 特急仕上げ料金とか、配達送料みたいなもんか。 それだったらなおさら 2行にわけて1行目が品代、2行目が高速代(その他オプション料金)です。 >>849 運送屋なんで指定があれば高速代を建て替えて実費を請求するのでそうしていました 一般的な運送屋の明細書は ○○行きとかで高速代は金額だけ書いていますね 伝票や受領書になどに高速の領収書をつけておくりますし 一番気になるのは小計のところの 高速代 と 料金 が横並びになって 縦に消費税にしていますが、表組みとしてそれでいいのかな、というところです 明細はこれでいいんじゃないか 区切り線以降は 課税小計2300/消費税230/非課税小計600/合計3130 を縦に並べるのがいいかな 高速代の真下の小計600はいらない >>849 絶対に単価=小計 だったんだがある仕事が増えたときに数量の概念うまれたときは困ったな 数量×単価の仕事ってことね 請求書とかつくるなら交互に網かけしたいところだよね Excelでできてなんでできないんだよ ここまでAccessと関係ない話題  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる