回答編集履歴

3

コードの追加

2019/03/20 05:08

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -16,6 +16,64 @@
16
16
 
17
17
  SELECT A.*, B.WWW, B.TTT
18
18
 
19
- FROM ファイルA.csv AS A INNER JOIN ファイルB.csv AS B ON A.FFF = B.QQQ;
19
+ FROM FileA.csv AS A INNER JOIN FileB.csv AS B ON A.FFF = B.QQQ;
20
20
 
21
21
  ```
22
+
23
+
24
+
25
+ ---
26
+
27
+ `SELECT * INTO`文(テーブル作成クエリ)を使えば、ファイルCへの出力までSQL一発でできますね。
28
+
29
+ コード書いてみました
30
+
31
+
32
+
33
+ ```vbs
34
+
35
+ Option Explicit
36
+
37
+
38
+
39
+ Dim objADO
40
+
41
+ Dim strPath
42
+
43
+
44
+
45
+ strPath = "C:\test\"
46
+
47
+
48
+
49
+ Set objADO = CreateObject("ADODB.Connection")
50
+
51
+ objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=" & _
52
+
53
+ strPath & ";ReadOnly=0"
54
+
55
+
56
+
57
+ objADO.Execute "SELECT A.*, B.WWW, B.TTT INTO TableC.csv " & _
58
+
59
+ "FROM FileA.csv AS A INNER JOIN FileB.csv AS B ON A.FFF = B.QQQ;"
60
+
61
+
62
+
63
+ objADO.Close
64
+
65
+ Set objADO = Nothing
66
+
67
+ ```
68
+
69
+ 注意点は、
70
+
71
+ `ReadOnly=0` で更新可にすることがポイント。
72
+
73
+ あと、
74
+
75
+ ADOドライバーが32Bitだと、32BitのWScriptで実行しないとエラーになります。下記参照。
76
+
77
+
78
+
79
+ [64bitOS、32bitOffice環境でのWSH(VBS)でAccessデータベースに接続する \- hatena chips](https://hatenachips.blog.fc2.com/blog-entry-421.html)

2

コード修正

2019/03/20 05:08

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -16,6 +16,6 @@
16
16
 
17
17
  SELECT A.*, B.WWW, B.TTT
18
18
 
19
- FROM ファイルA AS A INNER JOIN ファイルB AS B ON A.FFF = B.QQQ;
19
+ FROM ファイルA.csv AS A INNER JOIN ファイルB.csv AS B ON A.FFF = B.QQQ;
20
20
 
21
21
  ```

1

コード修正

2019/03/20 02:30

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -16,6 +16,6 @@
16
16
 
17
17
  SELECT A.*, B.WWW, B.TTT
18
18
 
19
- FROM ファイルA As A INNER JOIN ON A.FFF = B.QQQ;
19
+ FROM ファイルA AS A INNER JOIN ファイルB AS B ON A.FFF = B.QQQ;
20
20
 
21
21
  ```