Foxtable(狐表)用户栏目专家坐堂 → [求助]代码出错(已解决)


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

主题:[求助]代码出错(已解决)

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 14:51:00 [显示全部帖子]

 上例子,上数据。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/10 16:30:00 [显示全部帖子]

 楼主,我测试了一下,是你Excel表格数据的问题,第一张表,有14列,但列看不见,你重建一下表格吧。

 或者改一下代码

Dim ny As String = Forms("合并").Controls("ComboBox1").Text
Dim y1 As String = CInt(Left(ny,4))-1
'生成ysmx临时表
Dim o As new QueryBuilder
o.TableName = "ysmx"
o.SelectString = "Select DISTINCT 年月 From {应收明细} WHERE Left(年月,4)>= '" & y1 & "'"
o.Build
If DataTables("ysmx").Find("年月 = '" & ny & "'") IsNot Nothing Then
    messagebox.show("当月数据已导入","提示")
    Return
End If
Dim Book As New XLS.Book(ProjectPath & "应收明细.xls")
MainTable = Tables("应收明细")
For i As Integer = 0 To Book.Sheets.Count -1
    Dim a As String = Book.Sheets(i).Name
    If a = ny  Then
        Dim Sheet As XLS.Sheet = Book.Sheets(i)
        Tables("应收明细").StopRedraw()
        For r As Integer = 1 To Sheet.Rows.Count - 1
            Dim Filter1 As String = ""
            For c As Integer = 0 To Sheet.Cols.Count - 1
                If c > 0 Then
                    Filter1 = Filter1 & " And "
                End If
                If sheet(r,c).Value <> "" AndAlso CurrentTable.DataTable.DataCols(sheet(0,c).Value).IsNumeric Then
                    Filter1 = Filter1 & sheet(0,c).Value & " = " & sheet(r,c).Value
                ElseIf sheet(r,c).Value = "" And sheet(0, c).Value <> "" Then
                    Filter1 = Filter1 & sheet(0,c).Value & " is null "
                Else
                    Filter1 = Filter1 & sheet(0,c).Value & " = '" & sheet(r,c).Value & "'"
                End If
            Next

            If CurrentTable.DataTable.Find(Filter1) Is Nothing Then
                Dim dr As Row = CurrentTable.AddNew()
                For c As Integer = 0 To Sheet.Cols.Count - 1
                    dr(Sheet(0,c).Value) = Sheet(r,c).Value
                Next
            End If
        Next
        DataTables("应收明细").ReplaceFor("年月", ny ,"[年月] is null")
        '数据格式化
        Dim t As Table = Tables("应收明细")
        Dim s As String
        For Each dc As DataCol In t.DataTable.DataCols
            If dc.name <> "年月" AndAlso dc.name <> "单位" Then
                s = "0.00"
                t.DataTable.DataCols(dc.Name).SetFormat(s)
            End  If
        Next
        Tables("应收明细").Sort = "年月,单位"
        Tables("应收明细").AutoSizeCols()
        DataTables("应收明细").DeleteFor("[单位] is null ")
        Tables("应收明细").ListMode = True
        DataTables("应收明细").Save()
        Tables("应收明细").ResumeRedraw()
        Return
    End If
Next
Messagebox.show("需导入的数据不存在!","提示")

 回到顶部