Microsoft Access VB随机生成器



我需要使用蒙特卡罗协议开发一个模型,该协议将在0100到2300之间随机化开始时间。我试图在Microsoft Access中创建此程序,这将产生随机的开始时间以及随机的活动类型(Transit, Observe, Query)。活动类型不仅应该是随机的,而且应该加权(Transit=0.25, Observe=0.35,Query=0.40)。我正试图编写程序,以便用户可以按命令按钮生成一个报告,其中包含至少30个随机开始时间和活动类型的列表(即1700 Transit, 1500 Query等)。我了解如何在访问中创建一个随机数生成器,但我在挣扎,我希望用户能够生成一个以上的开始时间和活动类型。例如,我想在文本框中问"你想要多少个开始时间?"one_answers"你想要多少种活动类型?"如果我可以创建一个用户朋友界面,我也愿意在Excel中做。如有任何帮助,不胜感激

您没有指定要如何输出,但希望这段代码将使您开始创建随机时间的过程&加权的活动。您可以确定用户界面。

Sub CreateRandom()
    Dim intNumTimesNeeded As Integer
    Dim y As Integer
    Dim activity As String
    Dim StartMinute As Integer
    Dim FirstTime As Integer
    Dim EndTime As Integer
    Dim StartTime As Date
    FirstTime = 1 * 60  ' first time is 1:00 am
    EndTime = 23 * 60   ' last time is 11:00 pm
    intNumTimesNeeded = 10
    For x = 1 To intNumTimesNeeded
        Randomize
        y = Rnd() * 100
        Select Case y
            Case Is >= 60
                activity = "Query"
            Case Is > 25
                activity = "Observe"
            Case Else
                activity = "Transit"
        End Select
        StartMinute = Int((EndTime - FirstTime + 1) * Rnd() + FirstTime)
        StartTime = DateAdd("n", StartMinute, "01/01/1900")
        Debug.Print Format(StartTime, "hh:mm") & " - " & activity
    Next
End Sub

Excel or Access…对于应用程序开发来说,这并不重要,无论如何都是VBA。问题是:Excel和Access哪个对终端用户更好。我个人从未考虑过Access本身是一个终端用户工具(比如不开发应用程序;所以在这种情况下,我显然更喜欢Excel。

所以从策略上来说,你想要一个对话框窗口
  1. 捕获用户输入
  2. 产生一个或多个随机数
  3. 将结果呈现给最终用户

因此,无论是Excel还是Access,步骤1,2都是完全相同的-打开表单编辑器,移动文本字段,选项按钮和命令按钮(Access不将其绑定到表),并为OK按钮编写代码以创建输出

最新更新