2011-04-05 78 views
1

我有一個'accdb'文件,它有一些查詢。MS使用VBA訪問純文本

現在我想使用查詢的輸出重定向到一個文本文件,每個字段由製表符分隔。

我可能要在一個月的過程中這種多次做的,所以我想一個按鈕,在單擊它,它由1需要查詢1和創建的每個查詢的一個新的文件。我怎樣才能做到這一點?

BTW的第一行是字段名稱。

回答

1

下面是代碼,你首先得創建像here這樣的規範,並用您的查詢名稱替換名稱YourName與它的名稱和Query1:

DoCmd.TransferText TransferType:=acExportFixed, _ 
SpecificationName:="YourName", _ 
TableNAme:="Query1", _ 
FileName:="d:\test.txt", _ 
HasFieldNames:=-1 
+0

這工作正常。有沒有一種方法可以自定義列名稱? – Vivek 2011-04-05 11:53:27

+1

您可以更改查詢中的名稱,也可以僅爲導出而進行其他查詢,並在那裏重命名該文件。這是最簡單的方法。 – Silx 2011-04-05 12:01:12

+0

我每遇到一個運行時錯誤說「...找不到對象test.txt'...」任何想法如何解決這個,我需要每次創建此文件 – Vivek 2011-04-05 12:36:18

0

您可以使用TransferText方法將其導出爲類型acLinkDelim。你可以這樣寫入位的按鈕的單擊事件代碼或把它變成一個公共函數,它接受查詢名稱和輸出路徑,並沒有休息爲您

+0

如何執行此操作?我不擅長VBA。 – Vivek 2011-04-05 11:30:30

+0

要更改列名稱輸出,只需構建一個查詢並將其導出即可。你可以去: 通過 LN 選擇FN爲姓,如LN從姓氏爲了tblCustomers上面的查詢將因此重命名列。如果您在sql視圖模式下不能在數據庫中輸入sql,那麼也可以在查詢生成器中執行此操作。因此,在查詢生成器中執行上面的操作,只需輸入列名 姓:FN 因此,上述將導致在Now中使用查詢的名稱替換表中的名稱。如上所示,這也將允許您設置訂單等。 – 2011-04-06 02:06:41