微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您可以为 MS Access 查询创建加权选项吗?

如何解决您可以为 MS Access 查询创建加权选项吗?

我想创建一个查询,为特定字段生成一组随机值。例如,让我们说眼睛的颜色。运行时,查询将返回随机的眼睛颜色。

我知道如何使用眼睛颜色值创建表格,以及如何随机化和选择一个值。 (How to get random record from MS Access database)

但是,我还想确定有多大可能将眼睛颜色作为一个值进行拉取。例如,蓝眼睛的可能性为 15/100,而棕色眼睛的可能性为 60/100。

是否可以创建字段和/或查询/sql 公式来实现此目的?我唯一能想到的就是将每个值实际添加 X 次到表中,但这与规范化背道而驰,感觉可能有更优雅的解决方案。

解决方法

你可以像这样创建一个简单的函数:

Public Function RandomEyeColour() As String

    Dim EyeColours      As Variant
    Dim EyeColourRange  As Variant
    Dim EyeColour       As String
    Dim EyeColourValue  As Single
    Dim index           As Integer
    
    EyeColours = Array("Brown","Blue","Grey","Hazel","Green","Amber")
    ' Eye colour distribution:
    ' 83%,8%,3%,2%,2%.
    ' Add up the values.
    EyeColourRange = Array(0.83,0.91,0.94,0.96,0.98,1)
    
    Randomize
    EyeColourValue = Rnd()
    
    For index = LBound(EyeColours) To UBound(EyeColours)
        If EyeColourValue < EyeColourRange(index) Then
            EyeColour = EyeColours(index)
            Exit For
        End If
    Next

    RandomEyeColour = EyeColour
    
End Function

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。