2017-01-23 149 views
0

我已經構建了一個表單,用戶可以選擇一個或多個文件並將它們導入到一個表中。當用戶選擇文件或多個文件時,一旦導入完成,我想要在每一行上添加文件名,當然,這與正確的文件相關。使用文本文件將文件名添加到列導入

我能夠設置查詢手動添加文件名,但我怎麼能夠以更自動化的方式做到這一點。例如,如果用戶選擇一個文件,我如何編碼SQL查詢來自動檢測文件名並添加它?如果用戶選擇多個文件,那麼查詢如何爲每行寫入正確的文件名?

這裏是我的表單代碼:

Option Compare Database 

'Private Sub Command0_Click() 
Private Sub cmdFileDialog_Click() 

'Requires reference to Microsoft Office 12.0 Object Library. 

    Dim fDialog As Office.FileDialog 
    Dim varFile As Variant 

    'Clear listbox contents. 
    'Me.FileList.RowSource = "" 

    'Set up the File Dialog. 
    Set fDialog = Application.FileDialog(msoFileDialogFilePicker) 
    With fDialog 
     'Allow user to make multiple selections in dialog box. 
     .AllowMultiSelect = True 

     'Set the title of the dialog box. 
     .Title = "Please select one or more files" 
    .InitialFileName = "C:\Users\ABCCCCC\Desktop\January CMS reports for CCCCC" 

     'Clear out the current filters, and add our own. 

     .Filters.Clear 
     '.Filters.Add "Access Databases", "*.MDB; *.ACCDB" 
     .Filters.Add "Access Projects", "*.txt" 
     '.Filters.Add "All Files", "*.*" 

     'Show the dialog box. If the .Show method returns True, the 
     'user picked at least one file. If the .Show method returns 
     'False, the user clicked Cancel. 
     If .Show = True Then 
     'Loop through each file selected and add it to the list box. 
     For Each varFile In .SelectedItems 
      ' Me.FileList.AddItem varFile 
     Call InsertCMS_Reports_2ndSave(varFile) 
     Next 
     Else 
     MsgBox "You clicked Cancel in the file dialog box." 
     End If 
    End With 
End Sub 

模塊代碼:

Function InsertCMS_Reports_2ndSave(FileName As Variant) 
    'DoCmd.DeleteObject CopyOfCOMPRPT_CE, "CMS_Reports_2ndSave" 
    DoCmd.TransferText acImportFixed, "CMS_Reports_Import", _ 
    "CMS_Reports_Import", "C:\Users\ABCCCCC\Desktop\January CMS reports for CCCCC\FileName" 
    CurrentDb.Execute "UPDATE CopyOfCOMPRPT_CE SET FileName = 'HLTH_COMPRPT_1701011028174_h0062.txt' WHERE FileName is NULL", dbFailOnError 
End Function 

回答

0

只要你提供的是已經工作的代碼,那麼這應該爲你工作。

​​

如果你有問題,這是最有可能是語法問題與SQL字符串和引號將是最有可能是罪魁禍首。如果遇到問題,請在代碼中添加一條調試語句,以便查看生成的SQL語句。例如:

Function InsertCMS_Reports_2ndSave(FileName As Variant) 

    Dim strSQL as String 

    'DoCmd.DeleteObject CopyOfCOMPRPT_CE, "CMS_Reports_2ndSave" 
    DoCmd.TransferText acImportFixed, "CMS_Reports_Import", _ 
    "CMS_Reports_Import", "C:\Users\ABCCCCC\Desktop\January CMS reports for CCCCC\FileName" 

    strSQL = "UPDATE CopyOfCOMPRPT_CE SET FileName = '" & FileName & "' WHERE FileName is NULL", dbFailOnError" 
    debug.print strSQL 

    CurrentDb.Execute strSQL, dbFailOnError 
End Function 
相關問題