質問編集履歴
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
|
36
36
|
'** レコード処理
|
37
37
|
###この下の行で実行エラーが発生する
|
38
|
-
cn.Execute "INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)"
|
38
|
+
cn.Execute "INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431')"
|
39
39
|
|
40
40
|
'** トランザクション終了
|
41
41
|
cn.CommitTrans
|
@@ -48,23 +48,29 @@
|
|
48
48
|
#わかったこと
|
49
49
|
上記に記入したプログラムのINSERTの部分をクエリツールで実行してみたところ。
|
50
50
|
```SQL
|
51
|
-
before:INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)
|
51
|
+
before:INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431')
|
52
52
|
|
53
|
-
after:INSERT INTO "TRN_AUTOCAD" VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)
|
53
|
+
after:INSERT INTO "TRN_AUTOCAD" VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', '1-00-4467102610431')
|
54
54
|
|
55
55
|
```
|
56
56
|
このようにして、**テーブルにダブルコーテーションしなくてはいけない**ことが分かりました。
|
57
57
|
なので、上記をVBA側にうまく変換して挑戦してみようと思いました。
|
58
58
|
```VBA
|
59
|
-
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, '要確認',
|
59
|
+
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')"
|
60
60
|
```
|
61
61
|
文字列にするために、シングルクォーテーションで括りました。
|
62
|
+
そして、いろんな方からテーブルの列の名前を追加するといいといわれたため、
|
63
|
+
それも追加しました。
|
62
64
|
結果は
|
63
65
|
```Error
|
64
66
|
構文エラー:"TRN_AOTOCAD"周辺で構文エラーです。
|
65
67
|
```
|
66
68
|
と表示されるようになりました。
|
67
69
|
|
70
|
+
**pgAdmin側で、列の名前を追加したものを実行してみたところ、**
|
71
|
+
**構文エラーが出たので、列の名前を記入しない方がpgAdmin側ではうまくいきました。**
|
72
|
+
|
73
|
+
|
68
74
|
ほかにもいろいろと試しました。
|
69
75
|
|
70
76
|
#接続時にdbnameの追加する
|
@@ -79,8 +85,8 @@
|
|
79
85
|
#{接続先DB名}やpublicと付け足す
|
80
86
|
|
81
87
|
```VBA
|
82
|
-
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, '要確認',
|
88
|
+
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');"
|
83
89
|
|
84
|
-
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, '要確認',
|
90
|
+
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');"
|
85
91
|
```
|
86
92
|
ダメでした。
|
2
やってみたことの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,8 +54,33 @@
|
|
54
54
|
|
55
55
|
```
|
56
56
|
このようにして、**テーブルにダブルコーテーションしなくてはいけない**ことが分かりました。
|
57
|
-
|
57
|
+
なので、上記をVBA側にうまく変換して挑戦してみようと思いました。
|
58
|
+
```VBA
|
59
|
+
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`)"
|
60
|
+
```
|
61
|
+
文字列にするために、シングルクォーテーションで括りました。
|
62
|
+
結果は
|
58
63
|
```Error
|
59
64
|
構文エラー:"TRN_AOTOCAD"周辺で構文エラーです。
|
60
65
|
```
|
61
|
-
と表示されるようになりました。
|
66
|
+
と表示されるようになりました。
|
67
|
+
|
68
|
+
ほかにもいろいろと試しました。
|
69
|
+
|
70
|
+
#接続時にdbnameの追加する
|
71
|
+
```VBA
|
72
|
+
'** ODBC 接続
|
73
|
+
Set cn = CreateObject("ADODB.Connection")
|
74
|
+
cn.Open "dsn=XXX;uid=XXX;pwd=XXX;dbname=XXX"
|
75
|
+
```
|
76
|
+
|
77
|
+
ダメでした。
|
78
|
+
|
79
|
+
#{接続先DB名}やpublicと付け足す
|
80
|
+
|
81
|
+
```VBA
|
82
|
+
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`);"
|
83
|
+
|
84
|
+
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`);"
|
85
|
+
```
|
86
|
+
ダメでした。
|
1
わかったことの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -43,4 +43,19 @@
|
|
43
43
|
'** ODBC 接続解除
|
44
44
|
cn.Close
|
45
45
|
End Function
|
46
|
-
```
|
46
|
+
```
|
47
|
+
|
48
|
+
#わかったこと
|
49
|
+
上記に記入したプログラムのINSERTの部分をクエリツールで実行してみたところ。
|
50
|
+
```SQL
|
51
|
+
before:INSERT INTO TRN_AUTOCAD VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)
|
52
|
+
|
53
|
+
after:INSERT INTO "TRN_AUTOCAD" VALUES ('1-00-4467', 1026, 1043, 1, 1000, 250, 30, '要確認', 1-00-4467102610431)
|
54
|
+
|
55
|
+
```
|
56
|
+
このようにして、**テーブルにダブルコーテーションしなくてはいけない**ことが分かりました。
|
57
|
+
しかし、実行してみると
|
58
|
+
```Error
|
59
|
+
構文エラー:"TRN_AOTOCAD"周辺で構文エラーです。
|
60
|
+
```
|
61
|
+
と表示されるようになりました。
|