2013-05-31 85 views
1

我試圖將表導出到.txt文件以加載到Fulfillment軟件中。我用訪問VBA導出

DoCmd.TransferText acExportDelim, "", "[Table Name]", "[Export Path Name]", False 

它的工作很好。但是有一個小問題。該表有10個產品插槽,Fulfillment軟件只有5個。我想找到一種方法使用VBA將5個產品的客戶信息導出,並檢查他們是否有第6個,然後如果真實地導出相同的客戶信息但這次與產品領域6-10

我找不到任何關於導出特定字段或檢查某些字段的方法,但我知道它可以完成。

對不起,如果這看起來模糊。我試圖解釋我能做到的最好。

在此事先感謝您的幫助。

回答

0

我建議建立類似以下內容的查詢,然後用DoCmd.TransferText將其導出,而不是導出表:

SELECT CustomerID, Product1, Product2, Product3, Product4, Product5 
    FROM [Table Name] 
UNION ALL 
    SELECT CustomerID, Product6, Product7, Product8, Product9, Product10 
    FROM [Table Name] 
    WHERE NOT 
     (
      (Product6 IS NULL) AND (Product7 IS NULL) AND (Product8 IS NULL) 
       AND (Product9 IS NULL) AND (Product10 IS NULL) 
     ) 
0

所以,如果我得到它,你的第一個目標是將表格導出到.txt文件?

在這種情況下,我會用這樣的記錄:

Public Sub ExportToTxt(varTableYouWantToExport As String, pathFile As String) 
    Dim filenumber 
    Dim db As Database 
    Dim rscurrent As Recordset 
    Dim strSQL As String 

    Open pathFile For Output As #filenumber 
    strSQL = "SELECT * FROM " & varTableYouWantToExport & ";" 
    Set db = CurrentDb 
    Set rscurrent = db.OpenRecordSet() 

    rscurrent.MoveFirst 

    While Not rscurrent.EOF 
     Print #filenumber, vbCrLf & _ 
      rscurrent("Product_Id") & ";" _ 
      rscurrent("Product_Price") ";" _ 
      ... 
     rscurrent.MoveNext 
    Wend 

    rscurrent.Close 
    db.Close 

    Close #filenumber 
End Sub