Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]关于进度条的问题

chinasa  发表于:2015-03-25 13:25:37  
复制

   

下面的代码是我用来读取特定文件夹中文本文件信息的代码,有如下问题需要请教:

1.   尽管我使用了 Me.JDT.Requery进行刷新,但文本框JDT并没有进行实时刷新,而是过几秒刷新一下。

2. 目前我的进度条JDT只能显示读取文件的个数,我本想显示百分比的进度条,但不会取文件夹中文件的总数。

 

请尽量在此代码基础上修改,我百度了很多方法但都没办法结合到我自己的代码中,万分感谢!

 

 i = 0
    Dim fso As New FileSystemObject
    Dim fld As Folder, f As File
    Dim ssql As String
    folderpath = "Y:\EDIBAK\"

    If fso.FolderExists(folderpath) = True Then
        Set fld = fso.GetFolder(folderpath)
        For Each f In fld.Files
            '向表中新增记录
            If f.Name <> "pagefile.sys" Then
           
            Close #1
            Open folderpath & f.Name For Input As #1    ' 打开文件。
            Line Input #1, ediwj    ' 读入一行数据并将其赋予某变量。
            bwlx = Mid(ediwj, 4, 6)
  If bwlx = "BAPLIE" Then

              Line Input #1, ediwj    ' 读入一行数据并将其赋予某变量。
              
               If Mid(ediwj, 1, 3) <> "10:" Then
                 Line Input #1, ediwj
               End If
               If Mid(ediwj, 1, 3) <> "10:" Then
                 Line Input #1, ediwj
               End If
                   wz10_1 = InStr(1, ediwj, ":", 1)
                   wz10_2 = InStr(wz10_1 + 1, ediwj, ":", 1)
                   wz10_3 = InStr(wz10_2 + 1, ediwj, ":", 1)
                   wz10_4 = InStr(wz10_3 + 1, ediwj, ":", 1)
                   wz10_5 = InStr(wz10_4 + 1, ediwj, ":", 1)
           
              cmhc = Mid(ediwj, wz10_2 + 1, wz10_3 - wz10_2 - 1) & "/" & Mid(ediwj, wz10_4 + 1, wz10_5 - wz10_4 - 1)
           
            'MsgBox "创建时间:" & f.DateCreated & vbCrLf & "修改时间:" & f.DateLastModified & vbCrLf & "访问时间:" & f.DateLastAccessed, vbInformation, f.Name & "属性"

           ssql = "insert into TB1 (文件名,报文类型,创建时间,船名航次,字节) values ('"
            ssql = ssql & f.Name & "','"
            ssql = ssql & bwlx & "','" & _
                    f.DateCreated & vbCrLf & "','" & _
                    cmhc & "'," & _
                    Round(f.Size / 1024, 0) & ")"
  
            CurrentDb.Execute ssql
           End If
        End If 'BAPLIE
        i = i + 1
        Me.JDT = i
        Me.JDT.Requery
        Next
    End If
   
    Set f = Nothing
    Set fld = Nothing
    Set fso = Nothing

 

Top
chinasa 发表于:2015-03-26 08:19:55

实时刷新的问题解决了,在 Me.JDT.Requery后面加上 DoEvents。

谁有办法能得出文件夹下文件个数(不需要计算子文件夹)?



煮江品茶 发表于:2015-03-27 07:49:26

fld.files.count

但凡对象是集合,皆有count属性,所有语言概莫如此。



chinasa 发表于:2015-03-27 08:58:24
哈哈,行家一伸手就知有没有,这么简单就搞定。感激不尽啊..........

总记录:3篇  页次:1/1 9 1 :