Where条件で、指定した期間の合計金額を求めるという
設定を加えたところ、どうしてなのか、求めた金額が
正解の金額の2倍で表示されるんです。全ての項目の
金額。。金額フィールドは、演算子フィールドとして
自分で作成ものですが、特に2倍になるような式は、
たてていないんです。。すみません。。。考えられる
ことが思いつく方、ぜひご一報を。。

A 回答 (2件)

たくさんアクセスの勉強をしていらっしゃるようで、


質問を意見させて頂いておりますが、
設定や、計算式に関しては言葉で説明するよりも、
どういうフィールドがあって、どういう式を立ててとか、
プロパティのどの項目がどうなっていて,,,
ともう少し答える側のことを考えた質問のされ方をしたらどうでしょうか?

きっとその方がご自身の理解を深めることになると思うのですが…
良かったら今立てられている式、その式を作るために使用しているフィールド内容などを教えていただければと思います。
    • good
    • 0

元のデータが2倍(レコード重複)なんてこと、ないですか?



レコード数もカウントしてみると検証できると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qアクセス iif計算式 フィールド1 品名 フィールド2 単価 フィールド3 割り引きbit(1あり

アクセス iif計算式

フィールド1 品名
フィールド2 単価
フィールド3 割り引きbit(1あり、0なし)
フィールド4 割引後単価

上記なようなフィールドで割引きがあるに1が立った場合、フィールド4に一定の額100円をマイナスした額を返すには、iifではどのように書くのでしょうか?

Aベストアンサー

https://support.office.com/ja-jp/article/IIf-%E9%96%A2%E6%95%B0-32436ecf-c629-48a3-9900-647539c764e3

iif(条件式,trueの場合,falseの場合)
iif(割り引きbitが1か?,単価から100円マイナス,"")

Qアクセス 正味の算出 フィールド1 オートID フィールド2 顧客No フィールド3 商品名 フィー

アクセス 正味の算出

フィールド1 オートID
フィールド2 顧客No
フィールド3 商品名
フィールド4 単価

このようなテーブル構成で、顧客Noでグループ化して、IDのカウントした結果が1、2となります。
その際、1の場合は1、2の場合は0.5と別フィールドに記載する方法を教えて下さい。

Aベストアンサー

>本当はIDのカウントが2以下なら1を3以上なら999(数値で0、1以外なら何でも良いです)

IIf([IDのカウントした結果のフィールド名]>=3,999,1)

Q交通費精算表の作成(往復と記入したら金額を2倍に持っていきたい)

交通費の精算表を作っています。
 A    B    C    D     E
日付  経路  経路  金額  往復/片道  金額
6/17  東京  横浜  450   往復    900

上記みたいな感じにしたいのですが、
経路と金額は、INDEX関数とMATCH関数自動に飛ばすことにしましたが、往復と選ぶと金額が2倍に片道だとそのままの金額にしたいのですが、
IF関数を使って=IF(E4=往復,D4*2,D4)
とやっても、うまくできませんでした。
=NAME!! エラーがでたり、名前の定義で往復を登録したら今度は金額が0になってしまい。。。

何かほかにいい関数はありませんか?教えてください。お願いします。

Aベストアンサー

=IF(E4=往復,D4*2,D4)
往復を""で囲ってないからでは?

=IF(E4="往復",D4*2,D4)
ではどうです?

Qアクセスで、フィールド間の期間を求めたい。

アクセス2000を使っています、同一テーブル内、フィールド別々に入社日と退社日があり入社日には2003/4/1と入力されて居り、退社日には2005/9/30と入っています、退社日までの勤務日数を、何年何ヶ月何日で求めたいです、退社未記入の場合は、今日現在までの勤務日数を、何年何ヶ月何日で求めたいです、

Aベストアンサー

勤務日数: DateDiff("yyyy",[退社日],iif([退社日] is null,now(),[退社日]))+(Format([退社日],"mmdd")>Format(iif([退社日] is null,now(),[退社日]),"mmdd")) & "年"
&DateDiff("m",[退社日],iif([退社日] is null,now(),[退社日]))-(DateDiff("yyyy",[退社日],iif([退社日] is null,now(),[退社日]))+(Format([退社日],"mmdd")>Format(iif([退社日] is null,now(),[退社日]),"mmdd")))*12+ (Day([退社日])>Day(iif([退社日] is null,now(),[退社日]))) & "ケ月"&DateDiff("d", DateSerial(Year(iif([退社日] is null,now(),[退社日])),Month(iif([退社日] is null,now(),[退社日]))+(Day([退社日])>Day(iif([退社日] is null,now(),[退社日]))),Day([入社日])), iif([退社日] is null,now(),[退社日])) & "日"
これで求められると思います。

参考URL:http://www.accessclub.jp/

勤務日数: DateDiff("yyyy",[退社日],iif([退社日] is null,now(),[退社日]))+(Format([退社日],"mmdd")>Format(iif([退社日] is null,now(),[退社日]),"mmdd")) & "年"
&DateDiff("m",[退社日],iif([退社日] is null,now(),[退社日]))-(DateDiff("yyyy",[退社日],iif([退社日] is null,now(),[退社日]))+(Format([退社日],"mmdd")>Format(iif([退社日] is null,now(),[退社日]),"mmdd")))*12+ (Day([退社日])>Day(iif([退社日] is null,now(),[退社日]))) & "ケ月"&DateDiff("d", DateSerial(Year(iif([退社日] ...続きを読む

Qaccess 複数フィールドを1フィールドに

Access勉強中です。

委員名簿テーブルと、いくつかの行事テーブルを結合したいのですが、上手くいきません。
どうか教えてください。
access2003です。

委員名簿テーブル
 クラス   生徒名1   生徒名2   生徒名3
 1-1     ああ     いい   
 1-2     かか     きき      くく
 1-3     ささ
 1-4     たた     ちち      つつ

行事Aテーブル          行事Bテーブル
 生徒名   参加          生徒名    参加
  かか    true           ああ     false     
  ささ     true           いい     true         
  ちち    false           きき     true
                      たた     true
                      ちち     true

 このようなテーブルを結合して、次のようなテーブルを作りたいのです。

 クラス  生徒名   行事A    行事B
 1-1   ああ            false
 1-1   いい            true
 1-2   かか    true
 1-2   きき            true
 1-2   くく
 1-3   ささ     true
 1-4   たた            true
 1-4   ちち    false     true
 1-5   つつ

よろしくお願いします。

Access勉強中です。

委員名簿テーブルと、いくつかの行事テーブルを結合したいのですが、上手くいきません。
どうか教えてください。
access2003です。

委員名簿テーブル
 クラス   生徒名1   生徒名2   生徒名3
 1-1     ああ     いい   
 1-2     かか     きき      くく
 1-3     ささ
 1-4     たた     ちち      つつ

行事Aテーブル          行事Bテーブル
 生徒名   参加         ...続きを読む

Aベストアンサー

一応、質問の範囲での回答とします。

たとえば、以下のような「委員会名簿テーブル」があるとします。
フィールドの生徒名は生徒名6でも、生徒名100でもフィールドが
設定できるまでかまいません。

クラス 生徒名1 生徒名2 生徒名3 生徒名4 生徒名5
1-1   田中  佐藤   西田  山崎   内藤
1-2   東   南田   中川
1-3   豊臣  田中   中田  今井
1-4   谷   道上
1-5   徳川  佐竹   佐藤  西岡   中川


これを以下のようなテーブルに簡単に変更できますか?
また、下記では質問の最終的な結果を得るには下記の
ように「生徒ID」という各生徒を一意に区別するフィールドが
必要になります。これは最後に作るクエリで必要であるということと、
同じクラスあるいは他のクラスに同じ苗字の人物が存在する可能性が
あるかもしれないからです。


生徒ID クラス 生徒名
1        1-1  佐藤
2        1-1  西田
3        1-1  山崎
4        1-1  内藤
5        1-2  南田
6        1-2  中川
7        1-3田中
8        1-3  中田
9        1-3  今井
10        1-4  道上
11        1-5  佐竹
12        1-5  佐藤
13        1-5  西岡
14        1-5  中川


もし、データが多くて大変だというのであれば、以下のようにしてみてください。

(1) 以下のようなテーブルを作ります。
生徒ID  数値型  主キーを設定します。
クラス  テキスト型
生徒名  テキスト型

テーブルの名前を「委員会名簿テーブル」とします。
元の「委員名簿テーブル」を「委員会名簿テーブル元」
とします。

(2) 次に分かりやすく実行できるようにするために、
フォームを作り、そこにボタンを一つ設定します。
ボタンのクリック時のイベントに以下を設定します。
なお、ボタンの名前は出来上がったボタンの名前の
ままでいいです。

Private Sub コマンド0_Click()
Dim db As DAO.Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim i As Integer
Dim j As Long

Set db = CurrentDb
Set rs1 = db.OpenRecordset("委員会名簿テーブル元")
Set rs2 = db.OpenRecordset("委員会名簿テーブル", dbOpenDynaset)

j = 1
rs1.MoveFirst
Do Until rs1.EOF
For i = 2 To rs1.Fields.Count - 1
If rs1.Fields(i) <> "" Then
rs2.AddNew
rs2!生徒ID = j
rs2!クラス = rs1!クラス
rs2!生徒名 = rs1.Fields(i).Value
rs2.Update
j = j + 1
End If
Next i
rs1.MoveNext
Loop

rs1.Close: Set rs1 = Nothing
rs2.Close: Set rs2 = Nothing
db.Close: Set db = Nothing
End Sub

次に、コード表のコマンドバーのツールから
参照設定を選択し、Microsoft DAO xx Object Library の項目に
チェックを入れ、OKとします。なお、xx は3.6のような数字です。

(3) (1)、(2)ができたら、ボタンを押して「委員会名簿テーブル」
を確認してみてください。


(4) 次に、「行事Aテーブル」と「行事Bテーブル」
数値型の「生徒ID」というフィールドを追加し、できた「委員会名簿テーブル」
を参照して「クラス」と「生徒名」に合致した「生徒」を入れていってください。
本来は「生徒ID」があれば「生徒名」はこれらのテーブルでは必要はないのですが。
これらのテーブルの「生徒ID」は主キーを設定しません。


たとえば以下のように。

行事Aテーブル
生徒ID 生徒名 参加
1   佐藤    True
3   山崎    True
6   中川    True

行事Bテーブル
生徒ID 生徒名 参加
1    佐藤   False
6    中川   True
13    佐藤   True
14    中川   True


(5) 最後にクエリを作成します。下記のSQL文を新しいクエリを
SQLビューにして、貼り付けます。

SELECT 委員会名簿テーブル.生徒ID, 委員会名簿テーブル.クラス, 委員会名簿テーブル.生徒名, 行事Aテーブル.参加, 行事Bテーブル.参加
FROM (委員会名簿テーブル LEFT JOIN 行事Aテーブル ON 委員会名簿テーブル.生徒ID = 行事Aテーブル.生徒ID) LEFT JOIN 行事Bテーブル ON 委員会名簿テーブル.生徒ID = 行事Bテーブル.生徒ID;


あるいは、以下のようにしてもいいですが、こちらはフィールド名を変更しています。
変更は手動で書き変える必要があります。

SELECT 委員会名簿テーブル.生徒ID, 委員会名簿テーブル.クラス, 委員会名簿テーブル.生徒名, 行事Aテーブル.参加, 行事Bテーブル.参加
FROM (委員会名簿テーブル LEFT JOIN 行事Aテーブル ON 委員会名簿テーブル.生徒ID = 行事Aテーブル.生徒ID) LEFT JOIN 行事Bテーブル ON 委員会名簿テーブル.生徒ID = 行事Bテーブル.生徒ID;

上記のクエリをデザインビューで確認すると、「委員会名簿テーブル」
から「行事Aテーブル」と「行事Bテーブル」に結合線が向かっている
ことに注目してください。行事テーブルが追加されるような場合は
結合線の設定を同じようにしてください。

以上です。
わからないところがあれば補足してください。

一応、質問の範囲での回答とします。

たとえば、以下のような「委員会名簿テーブル」があるとします。
フィールドの生徒名は生徒名6でも、生徒名100でもフィールドが
設定できるまでかまいません。

クラス 生徒名1 生徒名2 生徒名3 生徒名4 生徒名5
1-1   田中  佐藤   西田  山崎   内藤
1-2   東   南田   中川
1-3   豊臣  田中   中田  今井
1-4   谷   道上
1-5   徳川  佐竹   佐藤  西岡   中川


これを以下のようなテーブルに簡単に変更でき...続きを読む


人気Q&Aランキング

おすすめ情報