No.3ベストアンサー
- 回答日時:
あまりこういう事はやらないと思うのですが、やってできない事もないので・・・
まず、標準モジュールに以下を記述しておきます
Public Function myCalc(vSrc, ParamArray vA()) As Variant
Dim sS As String
Dim i As Long
myCalc = Null
If (VarType(vSrc) <> vbString) Then Exit Function
sS = vSrc
For i = LBound(vA) To UBound(vA) Step 2
sS = Replace(sS, vA(i), Nz(vA(i + 1), 0))
Next
On Error Resume Next
myCalc = Eval(sS)
End Function
上記関数をクエリから呼び出し利用します。
補足にあったテーブル名を ★★ と仮定します
クエリのSQLビューに以下を記述し、表示してみてどうなりますか
SELECT ID, myCalc(siki, "[a]", a, "[b]", b) AS kekka FROM ★★;
※ myCalc の "[a]", a, "[b]", b 部分は、
sikiに記述している置換え文字列, その値 順のペアで何個でも記述できます。
また、a、b の順は問いません
標準モジュール部分は全く理解できていないまま使わせていただきました。
結果、思っていた通りのことが実現できそうです。
感謝します。ありがとうございました。
No.2
- 回答日時:
#1です。
テーブルの中に式を保存する、ということですが、アクセスはデータベースであり、表計算ソフト
であるエクセルとは異なりますのでそのようなことはできないと思います。
テーブルはテーブルとして保存しておき、必要な処理(や計算)をクエリでやるという仕組みでは
ないかと。
あくまでテーブルはデータを格納しておくだけのもの、
で、計算などが必要ならばその都度クエリで求める、という形だと思います。
お書きのことをやろうとするならば、強いて言うなら以下。
テーブル
ID a b
1 1 2
2 2 2
3 2 4
で、クエリを作るときのフィールドとして、
ID kekka:IIF([ID]=1,[a]*100+[b],IIF([ID]=2,[b]-3,[a]-700))
とするのではないかと思います。
(実用的ではないけど無理やり作ってみました)
詳しい方の回答が付くとよいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) VLOOKUP 構造化参照について 1 2023/04/24 19:39
- その他(Microsoft Office) excel テーブル 4 2023/03/18 16:11
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
Accessのテーブルのフィールドに式を入れる方法
Access(アクセス)
-
アクセス: フォーム上で計算した数字をテーブルに保存したい。
Access(アクセス)
-
Accessで計算式を挿入
Access(アクセス)
-
-
4
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
5
Acccessで2つのテーブルから1つのフォームをつくりたい
Access(アクセス)
-
6
Accessのリンク先を相対パスにしたい
その他(データベース)
-
7
新規レコード行を非表示にしたい
Access(アクセス)
-
8
テキストボックスにクエリ結果を表示させたい
その他(データベース)
-
9
access2013 フォームで計算した値をテーブルに代入したい
Access(アクセス)
-
10
ACCESSでタイトルバーを非表示にする方法
Access(アクセス)
-
11
Accessクエリーで両方のテーブルの全てのデータを表示することは可能ですか?
Access(アクセス)
-
12
accessのレポートであとから他のテーブルのフィールドを追加する方法
Access(アクセス)
-
13
access2000:フォームで入力した内容を新規レコードにコピー
その他(データベース)
-
14
AccessのフォームのテキストボックスにLOOKUPで表示したい
Access(アクセス)
-
15
アクセスVBAのMe!と[ ]
Access(アクセス)
-
16
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
17
Access サブフォームでの選択行の取得
その他(データベース)
-
18
「#エラー」の回避
Access(アクセス)
-
19
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
20
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クエリのデータをテーブルに入...
-
アクセス 項目毎にデータを横...
-
デザインビューにてテーブルが...
-
アクセスのクエリでSplit関数は...
-
クロス集計クエリの結果をテー...
-
アクセス:クエリの結合とリレ...
-
ACCESSで行数指定(5万行目~8...
-
Access「レコードが削除されま...
-
Accessのクエリで、抽出条件で…...
-
ACCESSでの重複レコードの削除
-
access インポート時、既にある...
-
ハイパーリンクの抽出・印刷に...
-
Accessで注文書を作成したいです。
-
テーブルへのデータ追加の元と...
-
accessでクエリの結果だけをリ...
-
Accessでテーブルやクエリのリ...
-
ACCESSのリレーション
-
教えてください! アクセスのac...
-
アクセスで新しいレコードの追...
-
Access 末尾に0を追加したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
Access「レコードが削除されま...
-
アクセス:クエリの結合とリレ...
-
access インポート時、既にある...
-
accessでクエリの結果だけをリ...
-
教えてください! アクセスのac...
-
デザインビューにてテーブルが...
-
アクセスのクエリでSplit関数は...
-
更新不可能なクエリに対して更...
-
ACCESSで行数指定(5万行目~8...
-
access テーブル作成クエリでテ...
-
Accessのクロス集計→テーブル作...
-
ACCESS テーブル作成の日付付与...
-
ACCESSでの重複レコードの削除
-
アクセス クロス集計クエリ→テ...
-
アクセスで新しいレコードの追...
-
ACCESS2000 クエリをテーブル化...
-
Access2010「クエリが複雑すぎ...
おすすめ情報
うまく説明できずすみません。
ID,a,b,sikiという4つのフィールドを持つテーブルを元に
下記のような結果となるクエリを作りたいのです。
数式を簡単に変更できるようにテーブルに保存しようと考えています。
テーブル
ID a b siki
1 1 2 [a]*100+[b]
2 2 2 [b]-3
3 2 4 [a]-700
クエリ実行結果
ID kekka
1 102
2 -1
3 -698