質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

2回答

2356閲覧

【access】旅費精算ソフト作成のアドバイスをください

zerobemy

総合スコア14

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2020/08/11 01:16

プログラム関連ではありませんがアドバイスを頂ければと思います。
今までExcelで旅費精算を行っていたのですが、頻繁にあるマスタの更新やその更新をするたびに
全部署にExcelを配布するという作業に無駄を感じ、すこしかじったことのあるaccessで作成しようと思いました。
まず、どんな入力画面にするかを考えてみました。(画像参照をお願いします。)

上がフォーム画面になります。
まずフォームヘッダーの部分に出張期間や場所などを入力する場所を作りました。
そして詳細フォームに入力されたデータを表示させるようにします。この場合表示の仕方は見やすければなんでも構いません。
詳細フォームにある出張の日付はヘッダーで入力した期間を自動で入れたいです。(できるのでしょうか?(-_-;))

色分けしているのは、データは手入力なのか、テーブル呼びだしなのかの違いです。
手当のテーブルは作成済みです。ここから関数を入れて自動で計算していくつもりです。
ところどころヘッダーに入力箇所に〇などがあると思いますが、こちらは丸をつけると手当が支給されるということです。

そして印刷ボタンを押すとレポートが立ち上がり詳細フォームに表示されている内容が請求書のフォームに入力され
印刷できるようにします。
そのレポートが下にある帳票になります。
請求書はA5に収まるサイズでA4用紙に二枚分印刷できるように設定します。
1枚の請求書には7日分の出張費が表示できそれ以上の日数の出張費であれば自動的に2枚目以降のレポートに出力するかたちになります。

このやり方では問題点などが多数あると思いますのでこうしたほうがいいなどのアドバイスを頂けるとありがたいです。
ここで質問するべき内容ではないかもしれませんが、こちらで回答をくださる方はは本当に的確に答えて頂けるので
是非お力を借りたいと思いました。
お手数をおかけしますが宜しくお願い致します。

情報不足などありましたら教えてください。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2020/08/11 01:46

> 全部署にExcelを配布するという作業に無駄を感じ、すこしかじったことのあるaccessで作成しようと思いました Accessでそれをどのように改善しようと思われているのですか? 配布ではなく、入力・照会をAccessでという事なら、Accessでの共有については考慮済みのレベルですか?
zerobemy

2020/08/11 02:05

社員が増えたら社員マスタの更新や、出張先が増えたらその更新とかでExcelだとそのたびに更新したことを知らせていたのですが、accessだと全部署に知らせる必要などないかと思いました。 また、関数やマクロが入っているからかExcelが重く使いずらいという声も多かったのでこの際変えてしまおうと思いました。 accessでの共有は実際社内でもaccessのショートカット作りそれを使ったりしているのでそれを大丈夫です。
guest

回答2

0

ぱっと見た目、苦労して作ったExcelファイルだと思います。
Accessに置き換えても、かなり苦労するのではと思います。
Excel、Accessのメリットとデメリットがあり、予測される変化を考慮して選ぶべきかと思います。

私は、下記に長々と書いてありますが、私の意見としては、
「Excelのままでいい。ただし、改良・改造する必要がある。」です。

無理に、Accessに変更しなくても、十分に対応できると思います。
逆に、Accessに置き換える時間の方が長くなると思います。

アドバイス内容は、Officeのバージョン(契約)によって、変わってくると思います。
(※ 前提条件があり社員全員が同じバージョンを使っているとします。)

◆ Office2010以前
Accessに置き換えるべきと思います。
それでも、良く考えてからだと思います。

1.Accessでアプリを作る時、後戻りが出来ない。
→ これは、データ設計が命ということです。
2.ファイルを分ける
→ マスターやデータを格納するAccessファイルと処理をするAccessファイルを分ける。
複数人数で使う場合、良くファイルが破損します。
もしもの場合に、バックアップの考えも考えた方が良いです。

◆ Office 2013移行の場合
Excelでもデータの共有が可能です。(ちょっとデータの更新する為に時間必要)
マスターデータは、Accessのテーブルでもいいし、Excelのワークシートでも問題ありません。
これであれば、今あるExcelワークシートが活かせます。

◆ バージョンに関係なく、Excelだけでやることも可能
マスターだけの問題であれば、マスターデータだけ、別ファイルに保存しておき、マクロ等で、データを引用する方法もあります。
既存のVBAのコードを大きく変更する必要があるので、あまりお勧めできません。

◆ Microsoft 365 E3などのサブスクリプション契約をしている
もし、Microsoft365の企業向けの契約を結んでいるのであれば、紙自体も無くなります。
要するに、ExcelもAccessも捨てるという考えです。(しかし一部制約がでる可能性あり)
承認フロー等の一連がローコーディングで、実装できます。
データは、SharePoint上で管理するような感じになります。
バックアップも問題なく、一番の理想の形になると思います
マスター等の変更があれば、自動通知機能もあります。

投稿2020/08/12 08:04

kai_keitai

総合スコア344

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

先ず、修正するという観点が漏れています。
その際の呼び出しとしては、社員番号入力後に出張先+出張期間の一覧から選択させるなどが必要ですね。

上記についてはテーブル設計を行いながら検討すべきでしょう。

また、印刷に関しては、入力データを列方向に変換する必要があるので、クエリーでの対応は厳しく、これもワークテーブル(共有ではなくローカルのファイルとして競合が起きないように)の設計が必要でしょう。

現状、エクセルがプログラムとデータを兼用しているので、そこを分離する観点が必要だと思います。

投稿2020/08/11 03:46

編集2020/08/11 06:50
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問