小杰为学校教务处编写了一个排考场座位的VB程序,考场采用“6排5列”共30人的模式,程序执行后,考生的考号与姓名显示在列表框List1中,单击“考场座位”按钮,考场号与座位显示在Text1中,程序运行界面如图所示,数据表如图
实现上述功能的VB程序如下,请回答下列问题:
(1)
程序中读取的数据库文件是
(2)
当“Form_load()
事件处理过程运行结束后,变量x的值为
(3)
请在划线处填入合适的代码Dim sName(100) As StringDim kh(100) as stringPrivate Sub Command1_Click()Dim y As IntegerDim start As Integer '考场第1位数据元素的下标Dim pa As Integer '数据库导入VB时学生数据下标Dim pb As Integer '考场座位数据下标Dim i As Integer,j As Integer,k As Integer,m As IntegerDim kcsName(100) As Stringstart = 1pa = startrecCount = x-1If recCount Mod 30 <> 0 Then For i = 1 To y ‘将当前考生人数添加到30的整数倍 recCount = recCount +1 sName(recCount) = " "Next iEnd IfFor j = 1 To recCount / 30 pa = startpb = startFor i = 1 To 30kcsName(pb) = sName(pa)pb = pb +1 If i Mod 5 = 0 Thenpa = start +i \5Else End If Next i start = start +30Next jText1.Text = " "start = 1For k = 1 To recCount /30 m = start Text1.Text = Text1.Text + "第" + Str(k) + "考场" + vbCrLf 'vbCrLf为换行标志符,实现Text1中内容换行显示 For i = 1 To 6 For j = 1 To 5 Text1.Text = Text1.Text +" " +kcsName(m) m = m +1 Next j Text1.Text = Text1.Text +vbCrLf Next i Text1.Text = Text1.Text +vbCrLf +vbCrLf Next kEnd SubPrivate Sub form_load()Dim conn As New ADODB.ConnectionDim rs As New ADODB.Recordsetconn.ConnectionString = "provider=microsoft.ace.oledb.12.0;data source=" & App.Path & "/kaochang.accdb"conn.OpenSet rs.ActiveConnection = connrs.Open "select * from banji"x = 1List1.AddItem " 考号 姓名"Do While Not rs.EOF 'kh(x) = rs.fields("kh")sName(x) = rs.fields("xm")List1.AddItem kh(x) + " " + sName(x)x = x + 1rs.MoveNextLooprs.CloseEnd Sub
答案: 【1】kaochang.accdb
【1】47
【1】y=30-recCount Mod 30或其它等价表达式【2】pa=pa+6【3】start=start+30