回答編集履歴

4

修正

2019/10/02 12:59

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
   
26
26
 
27
- 1. 小数点以下表示桁数プロパティは初期状態で存在しているので、そのまま設定できます。
27
+ 1.~~ 演算フィールドの小数点以下表示桁数プロパティは初期状態で存在しているので、そのまま設定できます。~~演算フィールドの小数点以下表示桁数プロパティは初期状態では存在していないので、同様にエラーチェックしてエラーの場合は生成して追加。
28
28
 
29
29
 
30
30
 

3

修正

2019/10/02 12:59

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  1. プロパティには、初期状態で存在しているものと、設定したときに生成されるものがあります。
14
14
 
15
- 書式プロパティは初期状態では存在しません。小数点以下表示桁数は存在しています。
15
+ 書式プロパティは初期状態では存在しません。小数点以下表示桁数は存在しています(ただし演算フィールドの場合は初期状態では存在しない)
16
16
 
17
17
   
18
18
 

2

コード修正

2019/10/02 12:55

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -50,10 +50,6 @@
50
50
 
51
51
  Public Sub クエリプロパティ変更(qd As DAO.QueryDef)
52
52
 
53
- Dim qd As DAO.QueryDef
54
-
55
- Set qd = CurrentDb.QueryDefs(クエリ名)
56
-
57
53
 
58
54
 
59
55
  Dim Fld As DAO.Field
@@ -70,6 +66,8 @@
70
66
 
71
67
  '書式プロパティを標準に設定
72
68
 
69
+ Dim prp As DAO.Property
70
+
73
71
  Fld.Properties("Format").Value = "Standard"
74
72
 
75
73
  '書式プロパティが存在しないとエラーになる
@@ -77,8 +75,6 @@
77
75
  If Err <> 0 Then
78
76
 
79
77
  '書式プロパティ生成してフィールドに追加する
80
-
81
- Dim prp As DAO.Property
82
78
 
83
79
  '書式プロパティのプロパティ値はテキスト型(dbText)
84
80
 
@@ -92,11 +88,27 @@
92
88
 
93
89
  End If
94
90
 
95
- On Error GoTo 0
96
-
97
91
  '小数点以下表示桁数を3に設定
98
92
 
99
93
  Fld.Properties("DecimalPlaces").Value = 3
94
+
95
+ If Err <> 0 Then
96
+
97
+ '書式プロパティ生成してフィールドに追加する
98
+
99
+ '書式プロパティのプロパティ値はテキスト型(dbText)
100
+
101
+ Set prp = Fld.CreateProperty("DecimalPlaces", dbByte, 3)
102
+
103
+ Fld.Properties.Append prp
104
+
105
+ Set prp = Nothing
106
+
107
+ Err.Clear
108
+
109
+ End If
110
+
111
+ On Error GoTo 0
100
112
 
101
113
  End If
102
114
 
@@ -105,6 +117,8 @@
105
117
  Next
106
118
 
107
119
  End Sub
120
+
121
+
108
122
 
109
123
  ```
110
124
 

1

補足追記

2019/09/30 02:08

投稿

hatena19
hatena19

スコア34073

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
   
18
18
 
19
- 1. 存在しているプロパティはそのまま設定できます、存在していないプロパティは生成(CreateProperty)してから追加します。一度、追加するとその後は必要ありません。存在しているのに追加するとエラーになります。
19
+ 1. 存在しているプロパティはそのまま設定できます、存在していないプロパティは生成(CreateProperty)してから追加します。一度、追加するとその後は必要ありません。存在しているのに追加するとエラーになります。
20
20
 
21
21
   
22
22
 
@@ -115,3 +115,15 @@
115
115
  引数を変更するだけで処理するクエリを指定できます。
116
116
 
117
117
  一つのクエリの処理に成功したら、あとは、`For Each qd In CurrentDb.QueryDefs` でループ処理すればすべてのクエリのプロパティを一気に変更できます。
118
+
119
+
120
+
121
+
122
+
123
+ 補足
124
+
125
+ ---
126
+
127
+ クエリでプロパティを変更しても、それをレコードソースとする作成済みのレポートには反映されない場合があります。プロパティ変更後に作成したレポートなら、反映されますが。
128
+
129
+ 今後、プロパティ変更が発生する可能性があるなら、レポートに対してプロパティ変更する処理を作成して、それを実行したほうが確実です。