以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 为什么存入这段代码到狐表的Code.mdb,会报错? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=130125) |
-- 作者:chen37280600 -- 发布时间:2019/1/14 10:26:00 -- 为什么存入这段代码到狐表的Code.mdb,会报错? 存入一下代码,会报错。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编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/1/14 10:34:00 -- 1、加入msgbox定位出错位置;
2、做一个出错实例发上来测试。 |
-- 作者:chen37280600 -- 发布时间:2019/1/14 10:48:00 -- 回复:(有点甜)1、加入msgbox定位出错位置;?... 不是这段代码执行报错。我是想收藏这段代码,进去狐表的编辑器里,但是保存的时候,会报错 版主可以拷贝我的,收藏如狐表代码编辑器里,试试会不会报错
[此贴子已经被作者于2019/1/14 10:49:13编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/1/14 11:02:00 -- 测试没问题
Dim nr As Row = Tables("code").addnew |
-- 作者:chen37280600 -- 发布时间:2019/1/14 11:21:00 -- 回复:(有点甜)测试没问题 Dim nr As Row ... 不不不,不用这么专业的写入方法。我就是像平时用狐表编辑器那样,直接在“代码”栏目,新建这个代码进去 |
-- 作者:chen37280600 -- 发布时间:2019/1/14 11:41:00 -- 我找到问题了。Code.mdb里的Code字段,属于备注类型,不应该设置索引。但是不知道为啥被设置了索引。是一开始官方的原生Code.mdb就有这个问题? |
-- 作者:有点甜 -- 发布时间:2019/1/14 11:49:00 -- 以下是引用chen37280600在2019/1/14 11:41:00的发言:
我找到问题了。Code.mdb里的Code字段,属于备注类型,不应该设置索引。但是不知道为啥被设置了索引。是一开始官方的原生Code.mdb就有这个问题?
不会。code.mdb没有设置索引。你可卸载重装foxtable查看。 |