Foxtable(狐表)用户栏目专家坐堂 → [求助]求助关于日期判断的问题


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

主题:[求助]求助关于日期判断的问题

帅哥哟,离线,有人找我吗?
fjt4444
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
[求助]求助关于日期判断的问题  发帖心情 Post By:2013/7/23 8:47:00 [显示全部帖子]

表名:扣款表

 

  卡  号 

扣款日期      扣款金额    状态 
   111    2013-05-03    100.0    已扣
   222    2013-05-03    100.0    已扣
   111    2013-06-04    200.0    月扣
   222    2013-06-04    200.0    月扣

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

确定按钮的功能我已经实现,我现在就是不知道一个验证方法该怎么写。。。。情况是这样的,输入金额和日期后,单击确定,然后扣款表就会为“卡号表”中所有卡进行扣款,同时“状态”会变更为“月扣”。重点来了,我希望每次单击确定按钮的时候就验证一下,凡是相对应卡号在当年当月已经做过“月扣”处理的,

MessageBox.Show“已经在该月为该卡做过扣款处理”。   我完全不知道怎么把“2013-06-04”分解,提取出2013年和   06月来验证。求大神帮帮我。我确定按钮的代码如下,不知道IF 后代码怎么写……

 

 

Dim je As WinForm.TextBox = e.Form.Controls("TextBox3")
Dim rq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")

If “????????" Then
Messagebox.show("该月已经扣款!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
Else
For Each r As DataRow In DataTables("car").DataRows
    Dim dr As DataRow = DataTables("规费记录").addnew
    dr("卡号")=r("卡号")
    dr("车牌号")=r("车牌号")
    dr("车主")=r("车主")
    dr("扣款日期")=rq.Value
    dr("扣款金额")=je.Text
    dr("状态")="月扣"
Next
End If
Messagebox.show("扣款成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)


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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 9:12:00 [显示全部帖子]

文档上面只是说筛选  自己指定的年份月份。我希望分解我datetimepicker控件上输入的那个时间。。。。把它分解为年、月就行了。

您看?


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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 9:18:00 [显示全部帖子]

好的  我这就去试试

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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 9:46:00 [显示全部帖子]

Dim je As WinForm.TextBox = e.Form.Controls("TextBox3")
Dim rq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")


Dim d As Date = rq.Value
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y,m)) '获取该月的最后一天


For Each rx As DataRow In DataTables("规费记录").DataRows
If rx("扣款日期") >=  # " & dt1 & " # And rx("扣款日期")<= # " & dt2 & " #  And rx("状态")="月扣"  Then
Messagebox.show("该月已经扣款!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
Else
For Each r As DataRow In DataTables("car").DataRows
    Dim dr As DataRow = DataTables("规费记录").addnew
    dr("卡号")=r("卡号")
    dr("车牌号")=r("车牌号")
    dr("车主")=r("车主")
    dr("扣款日期")=rq.Value
    dr("扣款金额")=je.Text
    dr("状态")="月扣"
Next
End If
Messagebox.show("扣款成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Next

 

 

 

 

求助,红色代码出错。。。。。真心不知道怎么改


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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 10:08:00 [显示全部帖子]

For Each rx As DataRow In DataTables("规费记录").DataRows
If rx("扣款日期") >=   dt1  # And rx("扣款日期")<=  dt2  And rx("状态")="月扣"  Then
Messagebox.show("该月已经扣款!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
Else
For Each r As DataRow In DataTables("car").DataRows
    Dim dr As DataRow = DataTables("规费记录").addnew
    dr("卡号")=r("卡号")
    dr("车牌号")=r("车牌号")
    dr("车主")=r("车主")
    dr("扣款日期")=rq.Value
    dr("扣款金额")=je.Text
    dr("状态")="月扣"
Next
End If
Messagebox.show("扣款成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Next

 

 

 

 

这里用 For Each 不行哎,这个循环有问题。。。。能麻烦您帮我话一段吗?不用for  each


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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 10:13:00 [显示全部帖子]

没有报错,就是执行 代码的时候  循环了2次  第3个MESSAGEBOX才显示的是“该月已扣款。。。”

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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 10:17:00 [显示全部帖子]

关键是   For Each r As DataRow In DataTables("car").DataRows
    Dim dr As DataRow = DataTables("规费记录").addnew
    dr("卡号")=r("卡号")
    dr("车牌号")=r("车牌号")
    dr("车主")=r("车主")
    dr("扣款日期")=rq.Value
    dr("扣款金额")=je.Text
    dr("状态")="月扣"
Next

这个执行了两次……


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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 10:20:00 [显示全部帖子]

能不能把第一个for  each 换成    Dim rx As DataRow =

这种形式的吗?如果可以,=后面怎么写啊?图片点击可在新窗口打开查看


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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 10:22:00 [显示全部帖子]

有没有是哪个return造成的呢?

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


加好友 发短信
等级:幼狐 帖子:118 积分:906 威望:0 精华:0 注册:2013/3/21 12:44:00
  发帖心情 Post By:2013/7/23 10:43:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目100.zip

代码根本没有执行那段IF   进行检查筛选,我希望做到的就是凡是相应卡号的卡,在指定年份月份进行过“月扣”的,都不能够再扣款。

而且  代码执行2次“扣款成功”,第3次才“该月已经扣款”


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