Foxtable(狐表)用户栏目专家坐堂 → 为什么存入这段代码到狐表的Code.mdb,会报错?


  共有2997人关注过本帖树形打印复制链接

主题:为什么存入这段代码到狐表的Code.mdb,会报错?

帅哥哟,离线,有人找我吗?
chen37280600
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
为什么存入这段代码到狐表的Code.mdb,会报错?  发帖心情 Post By:2019/1/14 10:26:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看




存入一下代码,会报错。Access有问题?:



'需求:
'1把ListBox里的文件,用Ftp方式上传到服务器.
'2上传时会创建独立的文件夹,方便日后管理
'3如果遇到重复的,要能提示是否覆盖

'思路:
'1以系统ID为前缀,为文件创建一个独立的文件夹
'2上传时检测该文件夹下是否存在同名的文件,提示是否覆盖
'3上传前把文件拷贝到本地路径,因为只读路径会因为不能创建缓存而上传失败
'4上传后,把本地缓存文件删除
'5更新行的附件清单

Dim LB As WinForm.ListBox = e.Form.Controls("ListBox_DocUpload")
Dim r As Row = Tables("ItemInfo").Current
If r IsNot Nothing Then
    If r.Isnull("ItemID") =False Then '判断ID存在,因为要用这个创立独立文件夹
        If lb.Items.Count > 0 Then '获取已经存在的附件清单,待会要追加内容
            
            Dim FileList As  List(of String) = r.DataRow.Lines("ItemDoc")
            MHPicFtp.Close '为了防止之前的FTP错误没退出,使用FTP前先关闭一次
            
            For i As Integer = 0 To LB.Items.Count - 1 '获取ListBox里所有要上传的内容
                Dim name As String =  LB.Items(i)
                Dim LastG As Integer = name.LastIndexOf("\")
                Dim LastD As Integer = name.LastIndexOf(".")
                If LastD <> -1 Then
                    Dim FileName As String = name.SubString(LastG+1,(lastD -LastG-1)) '获取文件名,例如  财务报表
                    Dim HZ As String =  name.SubString(lastD) '获取文件后缀,例如  .xls
                    
                    '服务器端创建独立文件夹---
                    Dim SavePath As String ="【" &  r.DataRow.DataTable.Name &  "】\【" & r.DataRow.DataTable.Name & "-" & r("ItemID") & "】" '例如 【ItemInfo】\【ItemInfo-5】
                    QQClient.Send(":FTPNew" & SavePath & "FTPNew:")
                    Dim UploadPath As String = "\" & SavePath & "\" & FileName & HZ '设置上传后的存储路径,例如   \【ItemInfo】\【ItemInfo-5】\财务报表.xls
                    '服务器端创建独立文件夹---
                    
                    Dim Send As Boolean = True '新建一个Boolean变量判断是否存在同名文件
                    If FileList.Contains(UploadPath) Then
                        If MessageBox.show("已存在重复的文件【" & FileName & "】,是否要覆盖?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning)  = DialogResult.No  Then
                            Send = False
                        End If
                    End If
                    
                    If Send = True Then
                        '把文件拷贝到本地目录,因为上传只读权限的电脑里的文件时,会I/O无法读取而强制退出----
                        Dim TempFile As String =ProjectPath & "Temp\" &  FileName & HZ
                        FileSys.CopyFile(LB.Items(i),TempFile,True)
                        '把文件拷贝到本地目录,因为上传只读权限的电脑里的文件时,会I/O无法读取而强制退出----
                        
                        If MHPicFtp.Upload(TempFile,UploadPath,True) Then '上传该文件,成功的话就返回True.然后我们更新一下附件清单
                            If FileList.Contains(UploadPath) =False Then
                                FileList.Add(UploadPath)
                            End If
                        End If
                        
                        '上传结束后删掉---
                        If FileSys.FileExists(TempFile) Then
                            FileSys.DeleteFile(TempFile,2,3)
                        End If
                        '上传结束后删掉---
                        
                    End If
                End If
            Next
            
            MHPicFtp.Close 'FTP用完就关闭,是个好习惯
            r.DataRow.Lines("ItemDoc") =FileList
            r.save
            lb.Items.Clear
            
        Else
            MessageBox.show("请先把要上传的文件拖到框内")
        End If
    Else
        MessageBox.show("系统编号不能为空")
    End If
Else
    MessageBox.show("请先选择行")
End If
[此贴子已经被作者于2019/1/14 10:26:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/14 10:34:00 [只看该作者]

1、加入msgbox定位出错位置;

 

2、做一个出错实例发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
回复:(有点甜)1、加入msgbox定位出错位置;?...  发帖心情 Post By:2019/1/14 10:48:00 [只看该作者]

不是这段代码执行报错。我是想收藏这段代码,进去狐表的编辑器里,但是保存的时候,会报错

版主可以拷贝我的,收藏如狐表代码编辑器里,试试会不会报错
[此贴子已经被作者于2019/1/14 10:49:13编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/14 11:02:00 [只看该作者]

测试没问题

 

Dim nr As Row = Tables("code").addnew
nr("category") = "abc"
nr("name") = "123"
nr("code") = "msgbox(1)"
nr.save


 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
回复:(有点甜)测试没问题 Dim nr As Row ...  发帖心情 Post By:2019/1/14 11:21:00 [只看该作者]

不不不,不用这么专业的写入方法。我就是像平时用狐表编辑器那样,直接在“代码”栏目,新建这个代码进去

 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2019/1/14 11:41:00 [只看该作者]

我找到问题了。Code.mdb里的Code字段,属于备注类型,不应该设置索引。但是不知道为啥被设置了索引。是一开始官方的原生Code.mdb就有这个问题?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/14 11:49:00 [只看该作者]

以下是引用chen37280600在2019/1/14 11:41:00的发言:
我找到问题了。Code.mdb里的Code字段,属于备注类型,不应该设置索引。但是不知道为啥被设置了索引。是一开始官方的原生Code.mdb就有这个问题?

 

不会。code.mdb没有设置索引。你可卸载重装foxtable查看。


 回到顶部