以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  条件刷卡  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=11755)

--  作者:youyuweinihao
--  发布时间:2011/8/10 15:01:00
--  条件刷卡

求助ValueChanged代码如何写

需求如下:以下是对照我上传的表附件来说明需求的

在“客户信息”表的窗口---"会员消费"中的---与会员卡号对应的“TextBox1”控件ValueChanged代码如何写

 

TextBox1中刷卡,先检索表“客户信息”中是否存在此会员卡号,如果存在,再在表“服务包明细”检索此会员是否拥有与ComboBox5中值相同的“服务名称”,并且会员拥有此服务名称的“拥有次数”>0.都符合则执行:表“服务包明细”会增加一行。

 

其中1. “客户信息”与“服务包明细”时通过“客户ID”简历关联的

      2.“会员卡号”字段仅存在于表“客户信息”中

      3.“拥有次数”、“服务名称”都是表“服务包明细”中的字段


--  作者:youyuweinihao
--  发布时间:2011/8/10 15:02:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文件夹.rar


--  作者:youyuweinihao
--  发布时间:2011/8/10 15:03:00
--  

我弄了两天了,请求帮忙

谢谢


--  作者:狐狸爸爸
--  发布时间:2011/8/10 15:33:00
--  
1、既然这个TextBox1是用来刷卡输入客户编号的,然后根据这个编号找出客户信息,你就不能将其绑定到任何字段。
2、如果ComboBox5也是用来输入查询内容的,那么也不应该绑定到字段的。
2、然后设置TextBox1的ValueChanged设置代码:
 
Dim v As String = e.sender.value
Dim dr1 As DataRow = DataTables("客户信息").Find("会员卡号 = "  & v)
If dr1 IsNot Nothing Then
    v = e.Form.Controls("ComboBox5").Value
    Dim dr2 As DataRow = DataTables("服务包明细").Find("服务名称 = \'" & v & "\' And 拥有次数 > 0" )
    If dr2 IsNot Nothing Then
        \'你的其他代码
    End If
End If
   
 
 
 
[此贴子已经被作者于2011-8-10 15:33:40编辑过]

--  作者:youyuweinihao
--  发布时间:2011/8/10 21:21:00
--  

还是上午的问题结合附件,Textbox1的CURRENTCHANGED时间代码如下:                                                                                                       出现BUG:如果有一次刷卡会员卡号符合条件“Drw = DataTables("服务包明细").AddNew()”得到执行,那么后面接着刷卡即使卡号不符合dr2条件AddNew还是同样执行。怎么处理???

Dim v As String = e.sender.value
Dim dr1 As DataRow = DataTables("客户信息").Find("会员卡号 = "  & v)
If dr1 IsNot Nothing Then
       v = e.Form.Controls("ComboBox5").Value
    Dim dr2 As DataRow = DataTables("服务包明细").Find("服务名称 = \'" & v & "\' And 拥有次数 > 0" )
    If dr2 IsNot Nothing Then
       Dim drw As DataRow
              Drw = DataTables("服务包明细").AddNew()

          Else MessageBox.Show("请购买该服务!", "提示")

             
    End If
    Else MessageBox.Show("请先购买会员卡!", "提示")
End If
e.Form.Controls("TextBox1").value = Nothing
e.Form.Controls("textbox1").Select()