Foxtable(狐表)用户栏目专家坐堂 → 向高手请教一下一个报错信息该如何改


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

主题:向高手请教一下一个报错信息该如何改

美女呀,离线,留言给我吧!
youngling
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
向高手请教一下一个报错信息该如何改  发帖心情 Post By:2014/12/2 11:12:00 [显示全部帖子]

各位高手,我是一个菜鸟,平时要带小孩,实在没有那么多时间来研究帮助文件,这个项目是以前有空的时候参考视频啊帮助文件做的,做了一半没有做好,现在想把它继续弄好,现在碰到个问题,应该是个很简单的问题,但我看了半天帮助还是没有弄好,请高手帮忙,谢谢啦。
 

问题描述:

 

点击 查询 按钮后 会报错

 

错误描述:

 

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,客户录入,ValueChanged
详细错误信息:
未将对象引用设置到对象的实例。

查询按钮 click 代码如下:(论坛搜到的,我改了下) 

 

Dim Filter ,colname ,txt As String    '定义变量
colname =e.Form.Controls("ComboBox1").Value   '定义组合框的值
txt  = e.Form.Controls("TextBox2").Value    '定义文本框的值
If colname  Is Nothing Then    '如果组合框的值为空
    Return   '返回
End If
For Each dc As Col In Tables("客户信息").Cols '遍历表的所有列
    ''If dc.DataCol.IsDate OrElse dc.DataCol.IsBoolean OrElse dc.DataCol.IsNumeric Then  '如果是时间列,逻辑列,数值列
      '  Continue For    '排除
    'End If
    If dc.Name = colname Then   '如果列名和组合框的值相符
        If Filter > "" Then      
            Filter  = Filter & " Or "
        End If
        Filter = Filter  & "[" & dc.Name & "] Like '*" & txt & "*'"    '定义筛选字符串
    End If  '根据控件值迷糊筛选
Next
Tables("客户信息").Filter = Filter  '将数据筛选出来

 

valuechanged 代码如下:

 

Dim djijl As WinForm.TextBox = e.Form.Controls("第几条记录")
Dim gjtjl As  WinForm.TextBox = e.Form.Controls("共几条记录")


With Tables("客户信息")
    If .Current.DataRow.RowState = DataRowState.Unchanged Then '如果当前行未曾修改
       gjtjl.value ="共"& .Rows.Count  & "条记录"
djijl.value ="目前是第" & .position + 1 & "条记录"
    End If
End With

 

要求解决的问题:

 

1. 如何改下代码,消去这个错误代码

 

2. 如何写代码实现 取消查询状态,返回浏览状态。(也就是如果查询结果是一个数据,点击 上一个,下一个按钮会失效,如何可以继续浏览呢)

 

 

其实应该是很简单的,但我就是不知道该上哪儿找的帮助文件,谢谢各位高手啦。


图片点击可在新窗口打开查看此主题相关图片如下:报错1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-12-2 14:42:00编辑过]

 回到顶部
美女呀,离线,留言给我吧!
youngling
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/2 12:24:00 [显示全部帖子]

谢谢 有点甜 和 Bin,这个问题我折腾了好几个小时,真真是惭愧的很。

 

根据有点甜的答复我改好了第一个问题。

 

至于第二个问题,我没看懂 有点甜 老师的答复,决定采取偷懒的方法,也就是取消这个按钮,需要实现这个功能就退出这个页面重新打开页面,毕竟对于新手来说,能用是第一位的,细节问题以后再慢慢完善吧。

 

 


 回到顶部
美女呀,离线,留言给我吧!
youngling
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/2 13:49:00 [显示全部帖子]

以下是引用jialihaha在2014-12-2 13:35:00的发言:
取消查询状态

代码:
tables(“表名”).filter = “”

 

对了,是我要的功能,谢谢啦。


 回到顶部
美女呀,离线,留言给我吧!
youngling
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/2 13:50:00 [显示全部帖子]

另外想请教下,如何我想查询 付款天数是 30 天的客户,我发现原来的代码就不行了,这个该如何改呢,谢谢。

 

错误提示 

 

 .NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
无法在 System.Int16 和 System.String 上执行“Like”操作。

 

付款天数在表格里是 短整型

客户名称等是 字符型

应该是语句错了。

一边等答复一边自己查找原因。

[此贴子已经被作者于2014-12-2 13:56:40编辑过]

 回到顶部
美女呀,离线,留言给我吧!
youngling
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/2 13:57:00 [显示全部帖子]

以下是引用jialihaha在2014-12-2 13:55:00的发言:
代码看看

查询按钮 click 代码如下:(论坛搜到的,我改了下) 

 

Dim Filter ,colname ,txt As String    '定义变量
colname =e.Form.Controls("ComboBox1").Value   '定义组合框的值
txt  = e.Form.Controls("TextBox2").Value    '定义文本框的值
If colname  Is Nothing Then    '如果组合框的值为空
    Return   '返回
End If
For Each dc As Col In Tables("客户信息").Cols '遍历表的所有列
    ''If dc.DataCol.IsDate OrElse dc.DataCol.IsBoolean OrElse dc.DataCol.IsNumeric Then  '如果是时间列,逻辑列,数值列
      '  Continue For    '排除
    'End If
    If dc.Name = colname Then   '如果列名和组合框的值相符
        If Filter > "" Then      
            Filter  = Filter & " Or "
        End If
        Filter = Filter  & "[" & dc.Name & "] Like '*" & txt & "*'"    '定义筛选字符串
    End If  '根据控件值迷糊筛选
Next
Tables("客户信息").Filter = Filter  '将数据筛选出来


 回到顶部
美女呀,离线,留言给我吧!
youngling
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/2 14:22:00 [显示全部帖子]

以下是引用jialihaha在2014-12-2 14:09:00的发言:
你把Filter  显示出来看看吧
MessageBox.Show(Filter)

 

 
MessageBox.Show(Filter)

 

这句 放到查询按钮 click 事件代码最后行,运行后,点击 查询按钮,显示

 

[客户全称] like '**'

 


 回到顶部
美女呀,离线,留言给我吧!
youngling
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/2 14:32:00 [显示全部帖子]

以下是引用有点甜在2014-12-2 14:26:00的发言:

Filter = Filter  & "Convert([" & dc.Name & "], 'System.String') Like '*" & txt & "*'"    '定义筛选字符串

 

老师,求助啊!

 

运行一下提示如下:

 

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
语法错误:“Convert”运算符后缺少操作数。

 

 

整体代码如下:

 

 

Dim Filter ,colname ,txt As String    '定义变量

colname =e.Form.Controls("查询类型").Value   '定义组合框的值
txt  = e.Form.Controls("输入查询内容").Value    '定义文本框的值
If colname  Is Nothing Then    '如果组合框的值为空
    Return   '返回
End If
For Each dc As Col In Tables("客户信息").Cols '遍历表的所有列
  Filter = Filter  & "Convert([" & dc.Name & "], 'System.String') Like '*" & txt & "*'"    '定义筛选字符串
    If dc.Name = colname Then   '如果列名和组合框的值相符
        If Filter > "" Then      
            Filter  = Filter & " Or "
        End If
        Filter = Filter  & "[" & dc.Name & "] Like '*" & txt & "*'"    '定义筛选字符串
    End If  '根据控件值迷糊筛选
Next
Tables("客户信息").Filter = Filter  '将数据筛选出来


[此贴子已经被作者于2014-12-2 14:53:36编辑过]

 回到顶部
美女呀,离线,留言给我吧!
youngling
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/2 15:06:00 [显示全部帖子]

好的,谢谢啦。


 回到顶部
美女呀,离线,留言给我吧!
youngling
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2014/12/2 15:07:00 [显示全部帖子]

以下是引用有点甜在2014-12-2 14:57:00的发言:

Dim Filter ,colname ,txt As String    '定义变量

colname =e.Form.Controls("查询类型").Value   '定义组合框的值
txt  = e.Form.Controls("输入查询内容").Value    '定义文本框的值
If colname  Is Nothing Then    '如果组合框的值为空
    Return   '返回
End If
For Each dc As Col In Tables("客户信息").Cols '遍历表的所有列
    If dc.Name = colname Then   '如果列名和组合框的值相符
        If Filter > "" Then      
            Filter  = Filter & " Or "
        End If
        Filter = Filter  & "Convert([" & dc.Name & "], 'System.String') Like '*" & txt & "*'"    '定义筛选字符串
    End If  '根据控件值迷糊筛选
Next
Tables("客户信息").Filter = Filter  '将数据筛选出来

图片点击可在新窗口打开查看 太棒了!!


 回到顶部