質問編集履歴

3

修正

2018/08/16 05:24

投稿

jun_endo
jun_endo

スコア56

test CHANGED
File without changes
test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
  ###この下の行で実行エラーが発生する
74
74
 
75
- cn.Execute "INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)"
75
+ cn.Execute "INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431')"
76
76
 
77
77
 
78
78
 
@@ -98,11 +98,11 @@
98
98
 
99
99
  ```SQL
100
100
 
101
- before:INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)
101
+ before:INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431')
102
102
 
103
103
 
104
104
 
105
- after:INSERT INTO "TRN_AUTOCAD" VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)
105
+ after:INSERT INTO "TRN_AUTOCAD" VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431')
106
106
 
107
107
 
108
108
 
@@ -114,11 +114,15 @@
114
114
 
115
115
  ```VBA
116
116
 
117
- cn.Execute "INSERT INTO 'TRN_AUTOCAD'(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', `1-00-4467102610431`)"
117
+ cn.Execute "INSERT INTO 'TRN_AUTOCAD'(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431')"
118
118
 
119
119
  ```
120
120
 
121
121
  文字列にするために、シングルクォーテーションで括りました。
122
+
123
+ そして、いろんな方からテーブルの列の名前を追加するといいといわれたため、
124
+
125
+ それも追加しました。
122
126
 
123
127
  結果は
124
128
 
@@ -129,6 +133,14 @@
129
133
  ```
130
134
 
131
135
  と表示されるようになりました。
136
+
137
+
138
+
139
+ **pgAdmin側で、列の名前を追加したものを実行してみたところ、**
140
+
141
+ **構文エラーが出たので、列の名前を記入しない方がpgAdmin側ではうまくいきました。**
142
+
143
+
132
144
 
133
145
 
134
146
 
@@ -160,11 +172,11 @@
160
172
 
161
173
  ```VBA
162
174
 
163
- cn.Execute "INSERT INTO public.TRN_AUTOCAD(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', `1-00-4467102610431`);"
175
+ cn.Execute "INSERT INTO public.TRN_AUTOCAD(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431');"
164
176
 
165
177
 
166
178
 
167
- cn.Execute "INSERT INTO {接続先DB名}.TRN_AUTOCAD(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', `1-00-4467102610431`);"
179
+ cn.Execute "INSERT INTO {接続先DB名}.TRN_AUTOCAD(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431');"
168
180
 
169
181
  ```
170
182
 

2

やってみたことの追加

2018/08/16 05:24

投稿

jun_endo
jun_endo

スコア56

test CHANGED
File without changes
test CHANGED
@@ -110,7 +110,17 @@
110
110
 
111
111
  このようにして、**テーブルにダブルコーテーションしなくてはいけない**ことが分かりました。
112
112
 
113
- しかし実行してみ
113
+ なので上記をVBA側にうまく変換して挑戦してよう思いました。
114
+
115
+ ```VBA
116
+
117
+ cn.Execute "INSERT INTO 'TRN_AUTOCAD'(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', `1-00-4467102610431`)"
118
+
119
+ ```
120
+
121
+ 文字列にするために、シングルクォーテーションで括りました。
122
+
123
+ 結果は
114
124
 
115
125
  ```Error
116
126
 
@@ -119,3 +129,43 @@
119
129
  ```
120
130
 
121
131
  と表示されるようになりました。
132
+
133
+
134
+
135
+ ほかにもいろいろと試しました。
136
+
137
+
138
+
139
+ #接続時にdbnameの追加する
140
+
141
+ ```VBA
142
+
143
+ '** ODBC 接続
144
+
145
+ Set cn = CreateObject("ADODB.Connection")
146
+
147
+ cn.Open "dsn=XXX;uid=XXX;pwd=XXX;dbname=XXX"
148
+
149
+ ```
150
+
151
+
152
+
153
+ ダメでした。
154
+
155
+
156
+
157
+ #{接続先DB名}やpublicと付け足す
158
+
159
+
160
+
161
+ ```VBA
162
+
163
+ cn.Execute "INSERT INTO public.TRN_AUTOCAD(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', `1-00-4467102610431`);"
164
+
165
+
166
+
167
+ cn.Execute "INSERT INTO {接続先DB名}.TRN_AUTOCAD(CONSTRUCTION_NO, PAGE_START, PAGE_END, STONE_NO, HEIGHT, WIDTH, THICKNESS, STATUS, P_ID) VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', `1-00-4467102610431`);"
168
+
169
+ ```
170
+
171
+ ダメでした。

1

わかったことの追加

2018/08/16 05:15

投稿

jun_endo
jun_endo

スコア56

test CHANGED
File without changes
test CHANGED
@@ -89,3 +89,33 @@
89
89
  End Function
90
90
 
91
91
  ```
92
+
93
+
94
+
95
+ #わかったこと
96
+
97
+ 上記に記入したプログラムのINSERTの部分をクエリツールで実行してみたところ。
98
+
99
+ ```SQL
100
+
101
+ before:INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)
102
+
103
+
104
+
105
+ after:INSERT INTO "TRN_AUTOCAD" VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)
106
+
107
+
108
+
109
+ ```
110
+
111
+ このようにして、**テーブルにダブルコーテーションしなくてはいけない**ことが分かりました。
112
+
113
+ しかし、実行してみると
114
+
115
+ ```Error
116
+
117
+ 構文エラー:"TRN_AOTOCAD"周辺で構文エラーです。
118
+
119
+ ```
120
+
121
+ と表示されるようになりました。