以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]判断文件,又没报错,但怎么没结果?求大师指点  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=65955)

--  作者:zgjmost
--  发布时间:2015/3/26 14:54:00
--  [求助]判断文件,又没报错,但怎么没结果?求大师指点
For Each R As Row In Tables("毕业生临时表").Rows
    If FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片")) = True Then
        r("是否有照片") = "提交照片"
    End If
Next

大师们:
上面的代码运行后,又没报错,但又没结果?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150326144736.jpg
图片点击可在新窗口打开查看


   If FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片")) = True Then这句代码的文件夹难道不是判断安装目录下的毕业生电子照下存不存在照片吗?


        r("是否有照片") = "提交照片"      这句垪赋值有问题?

求大师指点!

QQ78511721


--  作者:有点甜
--  发布时间:2015/3/26 14:57:00
--  

 你弹出一下看看是什么值

 

msgbox(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片"))


--  作者:有点甜
--  发布时间:2015/3/26 14:59:00
--  

试试这样写

 

Dim path As String = DataTables("毕业生临时表").DataCols("照片").DefaultFolder
If path = "" Then
    path = ProjectPath & "Attachments"
End If
For Each R As Row In Tables("毕业生临时表").Rows
    If FileSys.FileExists(path & "/毕业生电子照/" & r("照片")) = True Then
        r("是否有照片") = "提交照片"
    End If
Next


--  作者:zgjmost
--  发布时间:2015/3/26 15:01:00
--  
For Each R As Row In Tables("毕业生临时表").Rows
    If FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片")) = True Then
        msgbox(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片"))
        
        r("是否有照片") = "提交照片"
    End If
Next

这样执行,什么值都没有?

--  作者:有点甜
--  发布时间:2015/3/26 15:01:00
--  
 呃,看2楼,看3楼
--  作者:zgjmost
--  发布时间:2015/3/26 15:04:00
--  
DefaultFolder & "\\毕业生电子照" & r("照片")

这个是指向哪个地方?是不是下面这个地方还是他的IMAGES下?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150326150256.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2015/3/26 15:08:00
--  

 能不能看2楼和3楼?

 

 不然你就试试

 

For Each R As Row In Tables("毕业生临时表").Rows
    If FileSys.FileExists(ProjectPath & "毕业生电子照/" & r("照片")) = True Then
        r("是否有照片") = "提交照片"
    End If
Next


--  作者:狐狸爸爸
--  发布时间:2015/3/26 15:19:00
--  
For Each R As Row In Tables("毕业生临时表").Rows
    If FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder &  “\\" & r("照片")) = True Then
        r("是否有照片") = "提交照片"
    End If
Next
 
文件是包括子路径的,所以直接和DefaultFolder 合并就行,你临时将照片列改为文件列,看看其中的内容,就知道了。
[此贴子已经被作者于2015/3/26 15:21:17编辑过]

--  作者:狐狸爸爸
--  发布时间:2015/3/26 15:25:00
--  
以下是引用zgjmost在2015/3/26 15:01:00的发言:
For Each R As Row In Tables("毕业生临时表").Rows
    If FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片")) = True Then
        msgbox(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片"))
        
        r("是否有照片") = "提交照片"
    End If
Next

这样执行,什么值都没有?

 

 

显然,做这种调试的时候,你应该:

 

For Each R As Row In Tables("毕业生临时表").Rows
    msgbox(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片"))
    If FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片")) = True Then
        r("是否有照片") = "提交照片"
    End If
Next
 
你放在判断之后,如果路径错了,文件不存在,条件不成立,还显示什么呢,肯定放在在判断之前显示合成的路径和文件名。

--  作者:菲舍尔
--  发布时间:2015/3/26 15:28:00
--  
很明显的错误嘛


    If FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片")) = True Then
        r("是否有照片") = "提交照片"
    End If

按照楼上的信息:
FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照" & r("照片")) 合成的文件名肯定不存在

正确的应该是:
FileSys.FileExists(DataTables("毕业生临时表").DataCols("照片").DefaultFolder & "\\毕业生电子照\\” & r("照片")) 才对