设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2149|回复: 9
打印 上一主题 下一主题

[模块/函数] 关于双色球中奖等级的判断!(有新问题了)(已解决)

[复制链接]
跳转到指定楼层
1#
发表于 2012-10-6 16:38:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sxgaobo 于 2012-10-15 22:55 编辑

请教!如何用自己选择的号码与公布的中奖号码对应判断出有几个中奖,中的几等奖啊?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-10-6 20:28:53 | 只看该作者
写个函数比对一下就完事了
3#
 楼主| 发表于 2012-10-8 22:14:55 | 只看该作者
{:soso_e115:}怎么写啊,版主出手好吗?
4#
发表于 2012-10-9 15:07:54 | 只看该作者
sxgaobo 发表于 2012-10-8 22:14
怎么写啊,版主出手好吗?

Function n(str0 As String, str1 As String) As Long
    Dim Arr0, Arr1
    Dim i As Long
    Dim m As Long
    Arr0 = Split(str0, "-")
    Arr1 = Split(str1, "-")
    m = 0
    For i = 0 To 5
        If Arr1(i) <> Arr0(i) Then
            Exit For
        End If
        m = m + 1
    Next
    Select Case m
        Case 6
            m = 2 + (Arr1(6) = Arr0(6))
        Case 5
            m = 4 + (Arr1(6) = Arr0(6))
        Case 4
            m = 5 + (Arr1(6) = Arr0(6))
        Case 3
            m = 5 + (Arr1(6) <> Arr0(6)) * 5
        Case 0, 1, 2
            m = 6 + (Arr1(6) <> Arr0(6)) * 6
    End Select
    n = m
End Function

SELECT 号码, 时间, n("08-16-18-20-26-32-09",[号码]) AS 中奖等级
FROM 自己选中号码;
5#
 楼主| 发表于 2012-10-9 16:12:08 | 只看该作者
{:soso_e100:}{:soso_e179:}版主真高人也~~~!!!
6#
 楼主| 发表于 2012-10-12 10:11:14 | 只看该作者
本帖最后由 sxgaobo 于 2012-10-12 13:29 编辑

{:soso_e115:}版主,存在问题啊!
如公布的中奖号码为:
01-04-20-24-28-29-16
自己选择的号码为:
01-04-05-28-29-30-10,应为5等奖,看判断的是0
01-04-10-28-29-30-16,应为4等奖,可判断的是6等
号码不分顺序,有皆为中
规则:
一等奖 :7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同)
二等奖 :6个红色球号码相符;
三等奖 :5个红色球号码和1个蓝色球号码相符;
四等奖 :5个红色球号码或4个红色球号码和1个蓝色球号码相符;
五等奖 :4个红色球号码或3个红色球号码和1个蓝色球号码相符;
六等奖 :1个蓝色球号码相符(有无红色球号码相符均可)。
7#
发表于 2012-10-12 20:25:04 | 只看该作者
sxgaobo 发表于 2012-10-12 10:11
版主,存在问题啊!
如公布的中奖号码为:
01-04-20-24-28-29-16

按规则改一下函数不就完事了
8#
 楼主| 发表于 2012-10-12 22:32:20 | 只看该作者
不好意思,您那函数真有些看不懂啊!!!
9#
发表于 2012-10-13 17:57:04 | 只看该作者
建立中奖规则表,如图



计算红球中奖个数:
  1. Function GetRedCount(str0 As String, str1 As String) As Integer
  2.   Dim Arr0, Arr1
  3.   Dim i As Integer
  4.   Dim J As Integer
  5.   Dim m As Integer
  6.   Arr0 = Split(str0, "-")
  7.   Arr1 = Split(str1, "-")
  8.   m = 0
  9.   For i = 0 To 5
  10.    For J = 0 To 5
  11.       If Arr0(i) = Arr1(J) Then
  12.          m = m + 1
  13.          Exit For
  14.       End If
  15.     Next J
  16.   Next i
  17. GetRedCount = m
  18. End Function
复制代码
计算蓝球中奖个数:

  1. Function GetBlueCount(str0 As String, str1 As String) As Integer
  2.   Dim Arr0, Arr1

  3.   Dim m As Integer
  4.   Arr0 = Split(str0, "-")
  5.   Arr1 = Split(str1, "-")
  6.   m = 0
  7.   If Arr0(6) = Arr1(6) Then
  8.      m = 1
  9.   End If
  10. GetBlueCount = m
  11. End Function
复制代码
查询中奖情况:
  1. SELECT 等级
  2. FROM 中奖规则
  3. WHERE 红球中奖个数=GetRedCount("01-04-10-28-29-30-10", "01-04-20-24-28-29-16") and 蓝球中奖个数=GetBlueCount("01-04-10-28-29-30-10", "01-04-20-24-28-29-16");
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
10#
 楼主| 发表于 2012-10-15 22:56:37 | 只看该作者
谢谢 andymark !!!
{:soso_e179:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-20 16:56 , Processed in 0.144946 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表