以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  一个款号有多个,文件 文件,图片前缀名字跟款号名一致时,怎样自动批量插入  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27765)

--  作者:ppxxww
--  发布时间:2013/1/9 17:17:00
--  一个款号有多个,文件 文件,图片前缀名字跟款号名一致时,怎样自动批量插入
你好! 一个款号有多个 文件,  文件,图片前缀名字跟款号名一致时,怎样自动批量插入
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9.zip



--  作者:lin_hailun
--  发布时间:2013/1/9 18:12:00
--  
  你做一个按钮,然后运行代码。

Dim dlg As New FolderBrowserDialog
If dlg.ShowDialog = DialogResult.Ok Then
    For Each file As String In FileSys.GetFiles(dlg.SelectedPath)
        Dim fullname As String = FileSys.GetName(file)
        Dim ext As String = fullname.Substring(fullname.IndexOf("."))
        Dim name As String = left(fullname, 5)
        Dim fdr = DataTables("表A").Find("款号 = \'" & Name & "\'")
        If fdr IsNot Nothing Then
            Select Case ext
                Case ".jpg"
                    fdr("照片") &= fullname & vbcrlf
                    FileSys.CopyFile(file, DataTables("表A").DataCols("照片").DefaultFolder & "\\" & fullname, True)
                Case ".xls", ".xlsx"
                    fdr("资料") &= fullname & vbcrlf
                    FileSys.CopyFile(file, DataTables("表A").DataCols("资料").DefaultFolder & "\\" & fullname, True)
            End Select
        End If
    Next
End If
[此贴子已经被作者于2013-1-9 18:12:39编辑过]

--  作者:ppxxww
--  发布时间:2013/1/9 21:49:00
--  
林老师,谢谢您!Foxtable功用真的不可思议,非常神!!!
--  作者:ppxxww
--  发布时间:2013/1/10 9:02:00
--  
早上!林老师,能否加上一名代码,不用每次选择文件夹,事先设置好指定 文件夹
--  作者:lin_hailun
--  发布时间:2013/1/10 9:04:00
--  
 这样

Dim filePath As String = "d:\\"

For Each file As String In FileSys.GetFiles(filePath)
    Dim fullname As String = FileSys.GetName(file)
    Dim ext As String = fullname.Substring(fullname.IndexOf("."))
    Dim name As String = left(fullname, 5)
    Dim fdr = DataTables("表A").Find("款号 = \'" & Name & "\'")
    If fdr IsNot Nothing Then
        Select Case ext
            Case ".jpg"
                fdr("照片") &= fullname & vbcrlf
                FileSys.CopyFile(file, DataTables("表A").DataCols("照片").DefaultFolder & "\\" & fullname, True)
            Case ".xls", ".xlsx"
                fdr("资料") &= fullname & vbcrlf
                FileSys.CopyFile(file, DataTables("表A").DataCols("资料").DefaultFolder & "\\" & fullname, True)
        End Select
    End If
Next

--  作者:ppxxww
--  发布时间:2013/1/10 9:14:00
--  
不好意思,再麻烦你了,每点击一次按钮,就自动插入,点击N次,就有N个相同内容循环插入,我想 点击N次,只有一个循环的代码
--  作者:lin_hailun
--  发布时间:2013/1/10 9:28:00
--  
 Dim filePath As String = "d:\\"

For Each file As String In FileSys.GetFiles(filePath)
    Dim fullname As String = FileSys.GetName(file)
    Dim ext As String = fullname.Substring(fullname.IndexOf("."))
    Dim name As String = left(fullname, 5)
    Dim fdr = DataTables("表A").Find("款号 = \'" & Name & "\'")
    If fdr IsNot Nothing Then
        Select Case ext
            Case ".jpg"
                If fdr("照片").IndexOf(fullname) = -1 then
                    fdr("照片") &= fullname & vbcrlf
                    FileSys.CopyFile(file, DataTables("表A").DataCols("照片").DefaultFolder & "\\" & fullname, True)
                End If
            Case ".xls", ".xlsx"
                If fdr("资料").IndexOf(fullname) = -1 Then
                    fdr("资料") &= fullname & vbcrlf
                    FileSys.CopyFile(file, DataTables("表A").DataCols("资料").DefaultFolder & "\\" & fullname, True)
                End If
        End Select
    End If
Next
--  作者:ppxxww
--  发布时间:2013/1/10 9:43:00
--  
谢谢!林老师
--  作者:冰31脚
--  发布时间:2013/1/23 18:35:00
--  

非常神奇,我也想要做这个,但有个问题是我的文件名是 “编号、日期| 来确定的 

如文件名:34、2013-01-09河池移动韦岚凤仅回收.doc

FOXTABLE中是

编号   |  日期

  34   |  2013-01-09

“|”表示不同列

这样有没有办法实现批量添加?

[此贴子已经被作者于2013-1-23 18:42:20编辑过]

--  作者:冰31脚
--  发布时间:2013/1/23 19:00:00
--  

如果只识别前面的编号也是可以的,编号是按月编的,每月一个文件夹,

还有一个问题是代码执行下来,文件都会拷贝到Attachments文件夹中,那样的话项目会越来越大,能不能不拷贝文件,只是建立起表跟原文件之间的一个连接,方便从表中直接打开文件就可以了