Foxtable(狐表)用户栏目专家坐堂 → SQL文本框查询


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

主题:SQL文本框查询

帅哥哟,离线,有人找我吗?
巷弄太过弯曲
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1800 威望:0 精华:0 注册:2019/2/16 10:17:00
SQL文本框查询  发帖心情 Post By:2019/11/18 10:23:00 [只看该作者]

老师,请问如图,我想要在文本框内出入物料名称的FItemID 列如 输入FItemID是57019,然后自动筛选出FItemID为57019的物料名称等数据

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20191118101331.png
图片点击可在新窗口打开查看


代码需要怎么改呢?

Dim Filter As String
filter = "  where a.finterid > 0 "

With e.Form.Controls("物料名称")
    If .Value IsNot Nothing Then
        Filter = Filter &  " and d.fitemid = '" & .Value & "'"
    End If
End With




Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinF orm.Com boBox
cmd.ConnectionN ame = "ceshi"
cmd.CommandText = "SEL E CT top 2000 a.fbillno as 单据编号,d.fname as 物料名称 " & _
" From POOrder a left join POOrderentry b on a.finterid = b.finterid " & _
" left join t_ICItem d on b.fitemid = d.fitemid " & filter
dt = cmd.ExecuteReader() 'SQL语句拼接表格


Tables("窗口1_Table1").DataSource = dt
Tables("窗口1_Table1").AutoSizeCols() '自动列宽

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/18 10:52:00 [只看该作者]

代码没有问题,提示什么错误?

 回到顶部
帅哥哟,离线,有人找我吗?
巷弄太过弯曲
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1800 威望:0 精华:0 注册:2019/2/16 10:17:00
  发帖心情 Post By:2019/11/18 10:57:00 [只看该作者]

是我事件写错地方,老师请问这个事件写在哪里可以做到数字一输进去就自动执行,我现在是输入后 鼠标要点一下表控件才会执行,我是结合扫码枪。数字直接通过扫码枪输入的

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/18 10:59:00 [只看该作者]

textchanged事件。建议做个查询按钮,点击后再执行,输入一个字就查询一次,效率很低的
[此贴子已经被作者于2019/11/18 11:02:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
巷弄太过弯曲
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1800 威望:0 精华:0 注册:2019/2/16 10:17:00
  发帖心情 Post By:2019/11/18 11:28:00 [只看该作者]


可以了,老师我还有一个问题,就是如果我改成数据增加一条要这么修改代码呢。配合扫码枪,扫一下就表控件里面增加物料名称列和数量,比如57019,10   10是数量

Dim Filter As String
filter = "  where a.finterid > 0 "

With e.Form.Controls("物料名称")
    If .Value IsNot Nothing Then
        Filter = Filter &  " and d.fitemid = '" & .Value & "'"
    End If
End With



Dim cmd As New SQLCommand
Dim dt As DataTable
Dim cmb As WinF orm.Com boBox
cmd.ConnectionN ame = "ceshi"
cmd.CommandText = "SEL E CT top 2000 a.fbillno as 单据编号,d.fname as 物料名称 " & _
" From POOrder a left join POOrderentry b on a.finterid = b.finterid " & _
" left join t_ICItem d on b.fitemid = d.fitemid " & filter
dt = cmd.ExecuteReader() 'SQL语句拼接表格


Tables("窗口1_Table1").DataSource = dt
Tables("窗口1_Table1").AutoSizeCols() '自动列宽
[此贴子已经被作者于2019/11/18 11:32:29编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/18 11:49:00 [只看该作者]

没看懂,截图说明一次

 回到顶部
帅哥哟,离线,有人找我吗?
巷弄太过弯曲
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1800 威望:0 精华:0 注册:2019/2/16 10:17:00
  发帖心情 Post By:2019/11/18 12:08:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20191118115958.png
图片点击可在新窗口打开查看
如图,我在文本框内,有57019,10 这串数字是用盘点机记录的,57019代表对于的物料名称,10则代表这个物料的数量,我希望的做到的是,当我用盘点机发送这串数据的时候,下面表控件能够自动增加一条物料名称和数量的数据 列如57019代码物料名称A4纸,数量为10


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/18 13:44:00 [只看该作者]

这个和您1楼的用法有冲突吧。每输入一个字符就加载一次数据,然后增加一条记录?确定要这样?

扫描枪也是逐个字符录入的,“57019,10”有8个字符,会触发8次textchanged的。先搞清楚到底要怎么做?

 回到顶部
帅哥哟,离线,有人找我吗?
巷弄太过弯曲
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:219 积分:1800 威望:0 精华:0 注册:2019/2/16 10:17:00
  发帖心情 Post By:2019/11/18 13:49:00 [只看该作者]

不做查询了,就做增加,就是打算做库存盘点,扫一下物料的二维码,输入数量后,吧数据发送到文本框内,然后表控件就会生成刚刚扫的物料名称和数量 请问这个需要怎么做

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/18 13:59:00 [只看该作者]

到keydown事件处理

if e.keycode = keys.enter
e.cancel = true
dim ar() as string = e.sender.split(",")
if ar.length = 2 then
dim r as row = tables(xx).addnew
r("第一列") = ar(0)
……

 回到顶部
总数 12 1 2 下一页