2016-08-03 72 views
-1

我試圖將選定的文件名和文件路徑保存到表中的字段中。我正在使用一個表單,並插入一個按鈕,並應用我在網上找到的一些代碼來獲取文件名和路徑到一個msgbox。MS Access - 將文件名和文件路徑保存到表中的字段

Private Sub Command0_Click() 

    Dim f As Object 
    Dim strFile As String 
    Dim strFolder As String 
    Dim varItem As Variant 

    Set f = Application.FileDialog(3) 
    f.AllowMultiSelect = True 
    If f.Show Then 
     For Each varItem In f.SelectedItems 
      strFile = Dir(varItem) 
      strFolder = Left(varItem, Len(varItem) - Len(strFile)) 
      MsgBox "Folder: " & strFolder & vbCrLf & _ 
       "File: " & strFile 
     Next 
    End If 
    Set f = Nothing 

End Sub 

有誰請幫我解釋一下我怎麼現在得到來自消息框所產生的數據放入我的表中的字段(場目的地被稱爲「ImageFilePath」 &「ImageFileName」)。

謝謝你們夥計

+0

上的信息之後,將整個路徑保存到了我的字段中。這是基本的ms-access數據庫工作 - 查找添加新記錄並試用某些東西的示例。這不是您分享的相關代碼 – dbmitch

回答

0

這是一個調整好的代碼片段。將這些項添加到相關表的記錄集中,以存儲具有外鍵的完整文件名/路徑。我將所有的我使用Save AS移動到一個文件夾。

dim obj as object 
dim rsimg as dao.recordset 
Set obj = CreateObject("WScript.shell") 
Set rsimg = CurrentDb.OpenRecordset("tbltostorefilenameswforeignkey", dbOpenDynaset) 
Set fdialog = Application.FileDialog(msoFileDialogFilePicker) 
With fdialog 
    .AllowMultiSelect = True 
    .Title = "Select Images To Add - Multiples OK" 
    .InitialFileName = obj.specialfolders("desktop") 
    .InitialView = msoFileDialogViewLargeIcons 
    .Filters.Clear 
    .Filters.Add "Images", "*.jpg,*.gif,*.png" 
    If .Show = True Then 
     For Each varfile In .SelectedItems 
     Name varfile As Currentproject.path & "\yourfilefoldername" & "\" & Right(varfile, Len(varfile) - InStrRev(varfile, "\")) 
     rsimg.AddNew 
     rsimg("ItemId") = Me.ID 
     rsimg("filepath") = Currentproject.path & "\yourfilefoldername" & "\" & Right(varfile, Len(varfile) - InStrRev(varfile, "\")) 
     rsimg.Update 
     Next varfile 
    End If 
End With 

如果你只使用一個文件的每個記錄,並想將它們保存在接盤.allowmultiselect = false表,刪除for each next循環,代替varfile只是使用.selecteditems.item(1)

當你得到它,

dim itm as string 
itm = f.selecteditems.item(1) 
me.imagefilename = dir(itm) 

和相同的文件夾路徑

0

我用你的代碼和味精後我添加的框線(我。「FieldName你想保存路徑」。 value = strFolder & strFile),它在顯示msgBox