以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]再帮看一个错误提示 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50065) |
-- 作者:花开的声音 -- 发布时间:2014/4/28 20:48:00 -- [求助]再帮看一个错误提示 在用窗口中的控件给表赋值时,提示如下图错误,麻烦帮看下。同样的代码和相似的界面,另一处这样写都没有错误。 代码如下: Dim t As Table = e.Form.Controls("基层法律服务人员信息表").Table For Each c As Col In t.Cols For Each ctl As WinForm.Control In e.Form.Controls If ctl.Name.Contains(c.Name) Then Select ctl.Gettype.Name Case "textbox","combobox","DateTimePicker" t.Current(c.Name) = e.Form.Controls(ctl.Name).Value End Select End If Next Next e.Form.Controls("基层法律服务人员信息表").Table.DataTable.Save |
-- 作者:有点甜 -- 发布时间:2014/4/28 20:56:00 -- 信息量不够。
你有一列 A4,是逻辑类型的?对应的你在窗口里用什么控件来赋值?值又是什么? |
-- 作者:有点甜 -- 发布时间:2014/4/28 21:02:00 -- 猜一下,你看红色代码,改成你对应的提示值。
Dim t As Table = e.Form.Controls("基层法律服务人员信息表").Table |
-- 作者:花开的声音 -- 发布时间:2014/4/28 21:15:00 -- 找到问题了,原来在窗口里面还有一个5个页面,其中里面有一个设置纸张大小的,默认的就是A4纸,呵呵。这个怎么排除掉呢? |
-- 作者:有点甜 -- 发布时间:2014/4/28 21:20:00 -- 你说的是这个控件的值是不需要的?
那么你看看这个控件的name是什么,看能否改一下,改成不同的,使这句代码不通过就行了 If ctl.Name.Contains(c.Name) Then
也就是说控件的名字 不能包含列的名字,这样才能排除。 [此贴子已经被作者于2014-4-28 21:20:58编辑过]
|
-- 作者:花开的声音 -- 发布时间:2014/4/28 22:00:00 -- 这个控件是组合框,控件名称是“选择纸张”,在这个窗口中,除了这个控件之外再也没有同名的,表中也没有这个名字的列。 |
-- 作者:有点甜 -- 发布时间:2014/4/28 22:09:00 -- 以下是引用花开的声音在2014-4-28 22:00:00的发言:
这个控件是组合框,控件名称是“选择纸张”,在这个窗口中,除了这个控件之外再也没有同名的,表中也没有这个名字的列。
呃,你用msgbox弹出一下两个值,看是哪两个名字出的错
Select ctl.Gettype.Name msgbox(c.Name & " " & ctl.Name) |
-- 作者:花开的声音 -- 发布时间:2014/4/28 22:15:00 -- 我改成下面的代码就没有提示错误了。 Dim t As Table = e.Form.Controls("基层法律服务人员信息表").Table For Each c As Col In t.Cols For Each ctl As WinForm.Control In e.Form.Controls If ctl.Name <> "选择纸张" Then If ctl.Name.Contains(c.Name) Then Select ctl.Gettype.Name Case "textbox","combobox","DateTimePicker" \'t.Current(c.Name) = e.Form.Controls(ctl.Name).Checked \'Case Else t.Current(c.Name) = e.Form.Controls(ctl.Name).Value End Select End If End If Next Next e.Form.Controls("基层法律服务人员信息表").Table.DataTable.Save |
-- 作者:花开的声音 -- 发布时间:2014/4/28 22:16:00 -- Dim t As Table = e.Form.Controls("基层法律服务人员信息表").Table For Each c As Col In t.Cols For Each ctl As WinForm.Control In e.Form.Controls If ctl.Name <> "选择纸张" Then If ctl.Name.Contains(c.Name) Then Select ctl.Gettype.Name Case "textbox","combobox","DateTimePicker" t.Current(c.Name) = e.Form.Controls(ctl.Name).Value End Select End If End If Next Next e.Form.Controls("基层法律服务人员信息表").Table.DataTable.Save
|
-- 作者:有点甜 -- 发布时间:2014/4/28 22:19:00 -- 最好是改一下你的这个控件的名字 【选择纸张】
你的列里面,肯定有一个叫做 纸张、选择、择纸... 类似列名 |