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

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

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

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

解決済

2回答

8623閲覧

Access 勤務時間集計クエリの作成方法

ryoya_access

総合スコア34

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

0クリップ

投稿2020/10/23 06:50

Accessで勤怠管理フォームを作成しているのですが、作成したクエリにフォームからの入力ができず困っています。

#やりたいこと
1.テーブル「T_勤務表」のフィールド【出勤、退勤、休憩、有給時間/分】から、【勤怠、稼働、残業、深夜、欠勤時間/分】を計算するクエリを作成する
2.「1」をフォームで表示し、フォームから入力できるようにしたい

#テーブルとリレーション
イメージ説明
〇T_従業員
・従業員ID:オートNo
・姓:短いテキスト
・名:短いテキスト など

〇T_従業員緒月別更新データ
・オートNo:オートナンバー
・従業員ID:数値
・月数:日付
・基準労働時間:数値型 など

〇T_勤怠
・オートNo:オートナンバー
・作業日:日付
・従業員ID:数値
・出社時間:以下、数値型
・出社分
・退勤時間
・退勤分
・休憩時間
・休憩分
・有給時間
・有給分

〇フォーム「F_勤務表」
イメージ説明

〇レコードソース「Q_勤務表_完成版」
イメージ説明

・Q_勤務表(レコードソース「T_勤務表」):【出勤、退勤、休憩時間/分】から、【勤怠、稼働、残業、深夜時間/分】を計算するためのクエリ
※計算したい項目の残り1つ、【欠勤時間/分】は、以下のような式で計算されるため、T_従業員緒月別更新データとリレーションを組まなければ計算できない。よって上の写真のように「Q_勤務表_完成版」を作成した。

欠勤時間: IIf([法定休日]=False And [法定外休日]=False,IIf([稼働時間]+[有給時間]+([稼働分]+[有給分])/60<[基準労働時間],Int([基準労働時間]-([稼働時間]+[有給時間]+([稼働分]+[有給分])/60)),0),0)
欠勤分: IIf([法定休日]=False And [法定外休日]=False,IIf([稼働時間]+[有給時間]+([稼働分]+[有給分])/60<[基準労働時間],60*([基準労働時間]-([稼働時間]+[有給時間]+([稼働分]+[有給分])/60)-Int([基準労働時間]-([稼働時間]+[有給時間]+([稼働分]+[有給分])/60))),0),0)

しかし、フォーム「F_勤務表」からレコードの入力ができません。複数のテーブルから作成したクエリを基にしているので、このように入力できないのでしょうか?また、そのような場合はどのように解決すればよいのでしょうか。

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

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

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

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

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

m.ts10806

2020/10/23 07:26

>フォーム「F_勤務表」からレコードの入力ができません ラベルにしてるとか、入力不可にしてるとかはないのでしょうか。
ryoya_access

2020/10/23 07:57

ラベル、入力不可ではないと思われます。 以前は欠勤時間/分の[基準労働時間]の部分を「8」と決め打ちし、「Q_勤務表」をレコードソースにしていたのですが、その時は問題なく入力できていました。 現在は、既に入力されている値をフォームから変更することや(表示はされる)、保存する(DoCmd.RumCommand acCmdSaveas)こともできなくなっています。
guest

回答2

0

ベストアンサー

「Q_勤務表_完成版」を更新可能なクエリーにして下さい。

多分追加した演算項目が原因です。
コントロールソースでレコードソースの項目を参照するのではなく、Dlookupなどで参照するようにすると、更新可能になると思われます。

投稿2020/10/26 02:51

sazi

総合スコア25327

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

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

0

入力のサブフォームと、結果出力のサブフォームに分けたらどうでしょうか?

投稿2020/10/23 08:39

kanda_ryuichi

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問