teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

説明追記

2020/08/27 01:48

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -40,4 +40,7 @@
40
40
  sSQL = "SELECT T資格管理.* INTO [" & textfileName & "] IN '' 'Text;DATABASE=" & folderPath & ";HDR=YES;' " & _
41
41
  "FROM T資格管理 IN '' [MS Access; DATABASE=" & ConPath & ";PWD=" & ConPass & ";];"
42
42
  CurrentDb.Execute sSQL
43
- ```
43
+ ```
44
+
45
+ ---
46
+ よく考えたら、saziさんの回答のAccessアプリケーションの OpenCurrentDatabase でデータベースを開いてそこでDocmdするのが一番素直ですね。寝起きでぼけてました。

3

コード追記

2020/08/27 01:48

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -22,4 +22,22 @@
22
22
  DoCmd.TransferDatabase acLink, "Microsoft Access", ConPath, acTable, "T資格管理", "T資格管理"
23
23
  DoCmd.TransferText acExportDelim, , "T資格管理", path, True
24
24
  DoCmd.DeleteObject acTable, "T資格管理"
25
+ ```
26
+
27
+ おまけ
28
+ ---
29
+ **リンクテーブルを使わずにやる方法**
30
+
31
+ SQLのIN句で外部データベースに接続して、SELECT ... INTO文で出力
32
+
33
+ ```vba
34
+ Dim folderPath As String
35
+ folderPath = "C:\Users\John\Desktop\資格管理DB\712\FE"
36
+ Dim textfileName As String
37
+ textfileName = "b#csv" '. は # に変更しておく
38
+
39
+ Dim sSQL As String
40
+ sSQL = "SELECT T資格管理.* INTO [" & textfileName & "] IN '' 'Text;DATABASE=" & folderPath & ";HDR=YES;' " & _
41
+ "FROM T資格管理 IN '' [MS Access; DATABASE=" & ConPath & ";PWD=" & ConPass & ";];"
42
+ CurrentDb.Execute sSQL
25
43
  ```

2

コード修正

2020/08/26 21:44

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -21,5 +21,5 @@
21
21
  path = "C:\Users\John\Desktop\資格管理DB\712\FE\b.csv"
22
22
  DoCmd.TransferDatabase acLink, "Microsoft Access", ConPath, acTable, "T資格管理", "T資格管理"
23
23
  DoCmd.TransferText acExportDelim, , "T資格管理", path, True
24
- DoCmd.DeleteObject acTable, "outテーブル1"
24
+ DoCmd.DeleteObject acTable, "T資格管理"
25
25
  ```

1

説明の改善

2020/08/26 21:03

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > DoCmd.TransferText acExportDelim, , db.TableDefs("T資格管理"), path, True
4
4
 
5
- DoCmd.TransferText の第3引数(TableName)はテーブル名またはクエリ名文字列指定します。
5
+ DoCmd.TransferText の第3引数(TableName)は**テーブル名またはクエリ名文字列として**指定します。
6
6
 
7
7
  [DoCmd.TransferText メソッド (Access) | Microsoft Docs](https://docs.microsoft.com/ja-jp/office/vba/api/access.docmd.transfertext)
8
8