| 用VB制作九九乘法表是VB编程入门的经典练习之一,通过九九乘法表的制作,可以有效掌握ForNext循环的用法,还能非常直观的观察每一次循环的过程,加深对分步骤ForNext循环的理解。本课程的案例通过Access数据库呈现,课程讲解分为5个部分: 1.完整代码 2.需求讲解 3.代码讲解 4.视频讲解 5.课后作业 
 
 学完课程实现的效果
 — 1 —完整代码简单九九乘法表的完整VBA代码(基于Access数据库)如下:
 
 复制代码Private Sub Text1_AfterUpdate()
'两次循环,i循环和j循环(但注意i是第2个乘数,j是第1个乘数)
'i循环换行,j循环做行
'九九乘法表非常好的演示了每次循环过程,很直观,少有的好案例
Dim i As Integer
Dim j As Integer
Dim Str As String
        Str = "" '设定文本起始量为空格
    For i = 1 To Val(Nz(Text1, 1)) '设置第2个乘数,第1层循环
    
        For j = 1 To i '设置第1个乘数,第2层循环
        
            Str = Str & j & "x" & i & "=" & i * j & "  "
            
            '设置每一行的乘法表,注意j在前,i在后
            '注意每次会降j循环结束后,再进行下一次i循环
            'j循环次数由i取值决定
            
        Next
            Str = Str + vbCrLf
            'i循环一次,增加一次回车换行
    Next
        Text2 = Str '将生成的结果赋值给Text2
        Me.Refresh '要实时刷新
End Sub
  本案例用Access数据库制作的窗体
 — 2 —需求讲解 1.用Access数据库制作一个交互的窗体,增添必要的组件,便于人机交互。2.第一个文本框里输入数字,可以控制九九乘法表的行数。
 3.第二个文本框里,显示九九乘法表的生成结果。
 
 — 3 —代码讲解
 
 九九乘法表的基本设计思路:利用两个ForNext循环,大循环i套小循环j,小循环j生成每一行的乘法和结果,大循环i生成各列。构思巧妙、代码简洁、便于理解。
 首先,设置变量,i和j是两个循环用的变量,Str是字符串,显示在文本框Text2里用的。
 复制代码Dim i As Integer
Dim j As Integer
Dim Str As String
Str = "" '设定文本起始量为空格
 设置变量i循环从1开始,循环到窗体里文本框Text1输入的数字。j循环从1开始循环到i的数值。注意,要等每次j全部循环完毕,才进行i的下一次循环。这也是ForNext嵌套的规律和巧妙之处。
 复制代码For i = 1 To Val(Nz(Text1, 1)) '设置第2个乘数,第1层循环
    
        For j = 1 To i '设置第1个乘数,第2层循环
        
            Str = Str & j & "x" & i & "=" & i * j & "  "
            
            '设置每一行的乘法表,注意j在前,i在后
            '注意每次会降j循环结束后,再进行下一次i循环
            'j循环次数由i取值决定
            
        Next
            Str = Str + vbCrLf
            'i循环一次,增加一次回车换行
    Next
 
 j循环算式,就是九九乘法的每一行,可以仔细观察这段代码,规律性很强,并不难理解。我们看看每次循环都会发生什么:第一次循环,i=1,然后:
 i=1,j=1,Str=1x1=1
 第二次循环,i=2,然后:
 j=1 to 2
 Str=1x2=2(j=1的情况)j第1次循环,紧接着j会进行第2次循环
 Str=1x2=2 2x2=4(j=2的情况,两个算式中间有个空格)注意:j这两个循环是紧挨着的,j循环完毕才进行下一次i循环。
 每次j循环结束后,生成了一行算式,然后在i循环里(注意不是j循环),对字符串Str加一次回车操作,Str=Str+vbCrLf,不然乘法算式会挤在一起不好看。VB语言里换行用的是vbCrLf。
 
  本案例有两个文本框,一个输入数字用、一个输出结果用
 以此循环往复,第一个文本框输入数字几,i就进行几次循环。 复制代码Text2 = Str '将生成的结果赋值给Text2
        Me.Refresh '要实时刷新
最后把得到的输出结果显示在Text2里作为答案。Text1输入数字用,Text2输出答案用。
 
 
 |