Microsoft Access 掲示板

パーセンテージ表示について

10 コメント
views
4 フォロー

元々記載していたものが解決したため、別の投稿に変更致します。スミマセン・・・

現在、見積のメインフォームに、サブフォームの計算結果を引っ張ってきているのですが
テーブルに保存したく、下記コードを使っています。

    If Me.小計 = Me.txt小計 Then
    Else
    Me.小計 = Me.txt小計
    End If

これについてはうまくいくのですが、パーセンテージ表示のものだけうまくいきません。
何か特別な処理が必要になりますでしょうか。

    If Me.利益率 = Me.txt利益率 Then
    Else
    Me.利益率 = Me.txt利益率
    End If
ポンタ
作成: 2020/11/09 (月) 16:02:21
最終更新: 2020/11/10 (火) 00:50:29
通報 ...
1

パーセンテージ表示はどのように実現してますか。
書式プロパティに 0% というような感じで設定してますか。

2
ポンタ 2020/11/11 (水) 11:58:13 0029a@1c915

ありがとうございます。現在「パーセント」としていました。変更して実験してみます!

同じく、パーセンテージに関わるのですが
チェックした全てのレコードに利益率を反映させたいです。

下記更新クエリを試すと、チェックした全てのレコードではなく1つのレコードの計算結果が、すべてに反映されます。
どのように修正すれば1件ずつ計算結果がでるようになりますでしょうか。

UPDATE T_見積明細 SET T_見積明細.利益率 = [Forms]![F_見積]![txt利益率反映], T_見積明細.提供単価 = Int([forms]![F_見積].[F_見積明細].[Form].[仕入価格]/(1-[forms]![F_見積].[F_見積明細].[Form].[txt利益率])/[forms]![F_見積].[F_見積明細].[Form].[txt数量]+0.5)
WHERE (((T_見積明細.[チェック])=Yes) AND ((T_見積明細.見積ID)=[Forms]![F_見積]![txt見積ID]));

3

クエリでフォームを参照すると、表示されているレコードの値あるいは計算値を参照します。

クエリ内で利益率を計算するようにしてください。

4
ポンタ 2020/11/11 (水) 16:37:48 0029a@1c915

パーセンテージ表示はうまくいきました。ありがとうございました。
>クエリ内で利益率を計算

下記に修正してみましたが、結果は変わらず1件の結果が他のものに反映されます…
勘違いしていますか?解決法はありますでしょうか。

UPDATE Q_見積明細 SET Q_見積明細.利益率 = [Forms]![F_見積作成]![txt利益率反映], Q_見積明細.提供単価 = Int([仕入価格]/(1-[利益率])/[数量]+0.5)
WHERE (((Q_見積明細.[チェック])=Yes));

5

Q_見積明細.利益率 = [Forms]![F_見積作成]![txt利益率反映],というようにフォームを参照するのではなく、クエリ内のフィールドの値を利用して利益率を計算するようにしてください。

7
ポンタ 2020/11/11 (水) 17:59:20 0029a@1c915 >> 5

 ご確認ありがとうございます。ご指摘の部分が、非連結のテキストボックスになっており、クエリ内に反映できない状況です。この部分はメインフォームで、その他はサブフォームになっています。
ヒントをいただいているのに、質問ばかりで申し訳ありません。

[Forms]![F_見積作成]![txt利益率反映]
10
ポンタ 2020/11/11 (水) 22:21:38 0029a@1c915 >> 5

すみません。解決しました。
具体的には、2個のクエリを使い、ご指摘の部分のみ1個目のクエリで変更。
2個目のクエリでそれ以外を変更し、うまくいきました。
ありがとうございました。

6
りんご 2020/11/11 (水) 17:30:13 48103@0e907

YESのデータが50件エクセル行みたいなイメージであるとします。1件目の先頭データ行に移動すると、フォーカスがあたり編集出来るっぽい状態になるかもしれない。そこで、更新クエリをすると、1件目の結果が反映。次の行に移動して、2件目の結果を反映。…1件ずつの結果を50回更新クエリする感じでしょうか?

8
ポンタ 2020/11/11 (水) 18:02:20 0029a@1c915 >> 6

ありがとうございます。
一旦該当のテキストボックスから数値を変数化して、クエリの部分をVBAにして、繰り返しさせるようなイメージでしょうか…

9
りんご 2020/11/11 (水) 19:59:12 48103@0e907 >> 6

更新ボタンを押したら、
以下、VBA
新データの先頭レコードに移動
旧データの非連結テキストボックス(事前準備)に新データのIDを代入
旧データを非連結テキストボックスとクエリ(事前準備)で絞り込み
旧データの利益率フィールドに新しい利益率を代入
新データの次行に移動
の繰り返しが出来れば、どうだろうという感じです。