Foxtable(狐表)用户栏目专家坐堂 → EXCEL导入


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

主题:EXCEL导入

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/12 16:04:00 [显示全部帖子]

  Dim Sheet1 As XLS.Sheet = Book.Sheets("单据明细")
    Tables("ysmxhz").StopRedraw()
    Dim nms1() As String = {"项目","行次","金额"}
    Dim nms2() As String = {"kmmc","HC","ysje"}
msgbox(Sheet1.Rows.Count ) ‘弹出什么值’
    For n As Integer = 1 To Sheet1.Rows.Count -1

        Dim r As Row = Tables("ysmxhz").AddNew()

        For i As Integer = 0 To sheet1.Cols.Count -1
            Dim idx As Integer = array.indexof(nms1, sheet1(0,i).Text)
msgbox(idx) ‘弹出什么值’
            If idx >= 0 Then
                r(nms2(idx)) = sheet1(n, i).Text
            End If
        Next

    Next
    Tables("ysmxhz").ResumeRedraw()

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/12 16:25:00 [显示全部帖子]

说明明细表有添加数据,到后台数据库看看,检查是不是界面没有加载数据

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/12 16:35:00 [显示全部帖子]

        For i As Integer = 0 To sheet1.Cols.Count -1
            Dim idx As Integer = array.indexof(nms1, sheet1(0,i).Text)
msgbox(idx
            If idx >= 0 Then
msgbox(nms2(idx)) 
msgbox(sheet1(n, i).Text) 
                r(nms2(idx)) = sheet1(n, i).Text
msgbox(r(nms2(idx))) 
            End If
        Next

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/12 16:56:00 [显示全部帖子]

调换一下代码顺序试试


DataTables("yszb").Save()
DataTables("ysmxhz").Save()

DataTables("yszb").Load()

另外Tables("yszb").Save()和DataTables("yszb").Save()效果是一样的,没有必要调用2次

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/12 17:29:00 [显示全部帖子]

请上传实例测试

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/13 13:57:00 [显示全部帖子]

明细表不是自增主键,而是自定义的主键,新建的行没有给主键赋值,所以是无法保存的。导入的时候就已经有主键错误的提示了,测试的时候难道没看到么

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/13 14:15:00 [显示全部帖子]

新建的行必须给主键赋值,主键值不能重复,主键有值就可以

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/13 14:59:00 [显示全部帖子]

不是自增主键的,使用DataTable.addnew,不能使用Table.addnew增加行

Dim r As Row = Tables("ysmxhz").AddNew()
改为
Dim r As DataRow = DataTables("ysmxhz").AddNew()

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/15 13:47:00 [显示全部帖子]

保存是比较花时间的,数据越多就越慢

 回到顶部