以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]更新了主键之后出问题了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46170)

--  作者:chnfo
--  发布时间:2014/2/18 13:18:00
--  [求助]更新了主键之后出问题了
因为原来采用系统的_Identify作为主键,后来更改了。
结果报出这个错误
错误代码位置:项目,MainTableChanged
System.MissingFieldException:找不取字段:“UserCode.SoftProID”.
在UserCode.MainTableChanged()

这个错误咋个查找在哪里?

--  作者:Bin
--  发布时间:2014/2/18 14:05:00
--  
MainTableChanged 事件看看你的代码
--  作者:chnfo
--  发布时间:2014/2/18 14:11:00
--  
\'切换主表时,使光标停留在第一个单元格上
With MainTable
    If .Rows.Count > 0 Then
        For Each cl As Col In .cols
            If cl.visible Then
                .Select(0,.cols(cl.name).index)  \'这是定位在第一行
                Exit For
            End If
        Next
    End If
End With

Select Case MainTable.Name
    Case "TbBuider"
        MainTable.Filter = "ProID = \'" & SoftProID & "\' and SysAdd = 0 "
    Case "TbMatStore"
        Dim dmp As New TableDataMap
        dmp.DataTable = "TbStorage" \'指定数据来源表
        dmp.ValueCol = "ID" \'指定取值列
        dmp.DisplayCol = "Title" \'指定显示列
        \'指定下拉列表时显示哪些列的数据
        dmp.ListCols = "Code,Title,Address,Head"
        dmp.Sort = "Code" \'指定排序方式
        dmp.Filter = "SysAdd = 0 "
        Tables("TbMatStore").Cols("StorageID").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
    Case "TbConFM"
        Dim dmp As New TableDataMap
        dmp.DataTable = "TbCon" \'指定数据来源表
        dmp.ValueCol = "ID" \'指定取值列
        dmp.DisplayCol = "Title" \'指定显示列
        \'指定下拉列表时显示哪些列的数据
        dmp.ListCols = "Code,Title,YouTitle"
        dmp.Filter = "ConType = 2 "
        dmp.Sort = "" \'指定排序方式
        Tables("TbConFM").Cols("ConID").DataMap = dmp.CreateDataMap() \'生成并设置DataMap
End Select




--  作者:Bin
--  发布时间:2014/2/18 14:18:00
--  
以上代码未见你有定义  SoftProID  这个变量啊

建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。