回答編集履歴

6

追記

2021/04/22 02:49

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -82,4 +82,4 @@
82
82
 
83
83
  ```
84
84
 
85
- この際、ODBCリンクテーブルかどうかは関係がありません。
85
+ そもそも更新するテーブルはACCESSのテーブルだったという事なので、この際、ODBCリンクテーブルかどうかは関係がありません。

5

推敲

2021/04/22 02:49

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  「出来ないのでしょうか?」という質問なので、やってみたけど出来なかったと思いました。
38
38
 
39
- SQLを組み立てる為の項目名の情報もありませんでしたし。
39
+
40
40
 
41
41
  > テーブルA(evaluation)のカラム名は
42
42
 

4

推敲

2021/04/22 02:13

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  select *, e_score as lower_score
60
60
 
61
- , Nz((select e_score from evaluation lag where lag.e_id = evaluation.id -1), 100) as upper_score
61
+ , Nz((select e_score from evaluation as lag where lag.e_id = evaluation.id -1), 100) as upper_score
62
62
 
63
63
  from evaluation
64
64
 

3

追記

2021/04/22 01:49

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -21,3 +21,65 @@
21
21
  [パススルー クエリを作成する](https://support.microsoft.com/ja-jp/office/%E3%83%91%E3%82%B9%E3%82%B9%E3%83%AB%E3%83%BC-%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-b775ac23-8a6b-49b2-82e2-6dac62532a42)
22
22
 
23
23
  [【MS Access】動的にパススルークエリを作成する](https://www.depthbomb.net/?p=258)
24
+
25
+
26
+
27
+ 追記
28
+
29
+ --
30
+
31
+ > sql文はどのように作成してよいかわからず、書けてません。
32
+
33
+
34
+
35
+ それが本題なのですね。
36
+
37
+ 「出来ないのでしょうか?」という質問なので、やってみたけど出来なかったと思いました。
38
+
39
+ SQLを組み立てる為の項目名の情報もありませんでしたし。
40
+
41
+ > テーブルA(evaluation)のカラム名は
42
+
43
+ > e_id(PK),e_score(点数),e_evaluation(評価)
44
+
45
+ >
46
+
47
+ > テーブルB(result)は
48
+
49
+ > m_id(メンバーID),m_name(メンバー名),s_id(教科ID),s_name(教科名),score(取得点数)evaluation(決定評価)
50
+
51
+
52
+
53
+ 要点は、evaluationの点数範囲をどのように表現するかです。
54
+
55
+ 以下のSQLで点数範囲を求めます。
56
+
57
+ ```SQL
58
+
59
+ select *, e_score as lower_score
60
+
61
+ , Nz((select e_score from evaluation lag where lag.e_id = evaluation.id -1), 100) as upper_score
62
+
63
+ from evaluation
64
+
65
+ ```
66
+
67
+ 上記を`Q_evaluation`というクエリーにしたとして、更新するクエリーは以下です。
68
+
69
+ ```SQL
70
+
71
+ update result set
72
+
73
+ evaluation=(
74
+
75
+ select e_evaluation from Q_evaluation
76
+
77
+ where result.score between lower_score and upper_score
78
+
79
+ )
80
+
81
+ where score is not null
82
+
83
+ ```
84
+
85
+ この際、ODBCリンクテーブルかどうかは関係がありません。

2

追記

2021/04/22 01:47

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -15,3 +15,9 @@
15
15
  [ADOX を使用して Access で SQLパススルー クエリを作成する方法](https://docs.microsoft.com/ja-jp/office/troubleshoot/access/adox-create-sql-pass-through-query)
16
16
 
17
17
  > データ アクセス オブジェクト (DAO) モデルを使用すると、外部データにアクセスSQLクエリを使用してパフォーマンスを向上させることができます。
18
+
19
+
20
+
21
+ [パススルー クエリを作成する](https://support.microsoft.com/ja-jp/office/%E3%83%91%E3%82%B9%E3%82%B9%E3%83%AB%E3%83%BC-%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-b775ac23-8a6b-49b2-82e2-6dac62532a42)
22
+
23
+ [【MS Access】動的にパススルークエリを作成する](https://www.depthbomb.net/?p=258)

1

追記

2021/04/21 02:46

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -11,3 +11,7 @@
11
11
 
12
12
 
13
13
  ですので、SQL SERVER内で完結するようにパススルークエリーを実行した方が良いかと。
14
+
15
+ [ADOX を使用して Access で SQLパススルー クエリを作成する方法](https://docs.microsoft.com/ja-jp/office/troubleshoot/access/adox-create-sql-pass-through-query)
16
+
17
+ > データ アクセス オブジェクト (DAO) モデルを使用すると、外部データにアクセスSQLクエリを使用してパフォーマンスを向上させることができます。