提醒,subfilder是相对路径,不是绝对路径,看帮助中的例子:
如果表中有多个图片型或文件型列,那么应该在BeforeAttachFile判断列名,例如要求照片列只能插入JPG文件,而且存放在名为"照片"的子目录中,简历列只能插入Word文件,而且存放在名为"简历"的子目录中:
Dim ext As String
ext = e.FileName.SubString(e.FileName.LastIndexof(".") + 1)
Select Case e.DataCol.Name
Case "照片"
If ext = "jpg" Then
e.SubFolder = ext
Else
MessageBox.Show("此列只能插入jpg文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
e.Cancel = True
End If
Case "简历"
If ext = "doc" Then
e.SubFolder = ext
Else
MessageBox.Show("此列只能插入Word文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
e.Cancel = True
End If
End Select
是:
e.subfoldr = "jpg"
不是:
e.subfolder = ProjectPath & "Attachments" & "/jpg"
所以:
e.SubFolder= ProjectPath & "Attachments" & "\" & GetPY(dr("suitDocNumber")) & "\" & GetPY(dr("description1")) & "\" & dr("date").Year & "\" & GetPY(f(0)) & "." & f(1)
应该改为:
e.SubFolder= GetPY(dr("suitDocNumber")) & "\" & GetPY(dr("description1")) & "\" & dr("date").Year & "\" & GetPY(f(0)) & "." & f(1)
如果还有问题,用messagebox.show显示以下合成的路径和文件名就知道了。