• 334.00 KB
  • 2022-04-22 11:46:38 发布

案_Visual_Basic_程序设计基础_浙江科技出版社_陈庆章_主编.doc

  • 34页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'《VisualBasic程序设计基础》教材习题参考答案第1章VisualBasic6.0程序设计概述一、判断题1.√2.√3.×4.√5.×6.√7.×8.√9.√10.×11.√12.√13.×14.√15.×16.√17.√18.√19.√20.√二、选择题1.C2.B3.D4.C5.B6.A7.D8.A9.B10.A11.C12.D三、填空题1.对象、事件2.属性、方法、事件3.控件、屏幕(Screen)4.对象5.Left、Top6.属性、<对象名>.<属性名>=<表达式>7.网格8.Form19.Load或Initialize或Resize或Activate(自动执行的先后顺序也按此排列)10.Activate、Deactivate四、程序设计题程序1.界面设计参看图10-1、10-2以及表10-1。表10-1实例2各控件的主要属性设置控件属性(属性值)属性(属性值)标签控件1Name(Label1)Caption("我的第一个VB程序")标签控件2Name(Label2)Caption("请输入你的姓名")FontUnderLine(True)FontItalic(True)命令按钮1Name(Command1)Caption("确定(&O)")命令按钮2Name(Command2)Caption("结束(&X)")过程设计如下:PrivatesubForm_Click()Command2.Enabled=FalseEenSubPrivateSubCommand1_Click()Label2.Visible=FalseLabel1.Caption=Text1.Text+":欢迎使用"+Label1.CaptionText1.Visible=FalseCommand1.Enabled=False:Command2.Enabled=TrueEndSub PrivateSubCommand2_Click()EndEndSub程序2.界面设计略,过程设计如下:PrivateSubCommand1_Click()"字体变大Form1.FontSize=Form1.FontSize+3Form1.Cls:Print"欢迎使用VB"EndSubPrivateSubCommand2_Click()"字体变小Form1.FontSize=Form1.FontSize-3Form1.Cls:Print"欢迎使用VB"EndSubPrivateSubCommand3_Click()"字体加粗Form1.FontBold=TrueForm1.Cls:Print"欢迎使用VB"EndSubPrivateSubCommand4_Click()"字体不加粗Form1.FontBold=FalseForm1.Cls:Print"欢迎使用VB"EndSub运行时,不得连续、过多次单击“字体变小”按钮,因为当FontSize属性值小于0会产生适时错误。程序3.界面设计略,过程设计如下(窗体Height值的计量包括标题、边框,而ScaleHeight值仅与窗体有效绘图区域的高度有关):PrivateSubForm_Load()Text1.Text="VisualBasic程序设计"EndSubPrivateSubForm_Resize()Text1.Top=0:Text1.Left=0Text1.Width=Form1.ScaleWidth/2"用Form1.ScaleWidth效果优于用Form1.WidthText1.Height=Form1.ScaleHeight/2"用Form1.ScaleHeight优于用Form1.HeightCommand1.Top=Form1.ScaleHeight-Command1.HeightCommand1.Left=Form1.ScaleWidth-Command1.WidthEndSub 第2章程序设计基础一、判断题1.√2.×3.×4.×5.√6.×7.√8.√9.√10.×二、选择题1.B2.D3.A4.C5.C6.B7.A8.D9.C10.A三、填空题1.String2.43."aaa"4.1455.66.37.188.False9.(xMod10)*10+x1010.10+Int(Rnd*90)11.a*bModc12.Log(x)+Sin(3.141593/6)13.ConstPI=3.141592614.日期15.Int(x)+1四、程序设计题程序1.界面设计略,过程设计如下:方法一、用文本框控件输入圆的半径PrivateSubCommand1_Click()DimxAsSinglex=Text1.TextLabel1.Caption=x*x*3.141593EndSub方法二、用InputBox函数输入圆的半径PrivateSubCommand1_Click()DimxAsSingle"若要求计算结果具有15位有效位数,声明x为Double类型x=InputBox("r=","输入圆的半径")Label1.Caption=x*x*3.141593EndSub第3章结构化程序设计与数组一、判断题1.√2.×3.√4.×5.√6.×7.×8.√9.×10.√二、选择题1.A2.D3.C4.C5.D6.B三、填空题1.Ifx>yThent=y:y=x:x=t2.IS3.Fori=0to9:B(i)=InputBox("B("&i&")="):Nexti4.Dim5.String6.8四、程序阅读题(写出下列程序的运行结果)程序1.05程序2.20程序3.2471116程序4.1491625 程序5.程序6.五、程序填空题1.(1)q*i(2)s+p*i/q(3)Nexti2.(1)r=0(2)mModn3.(1)i+j-1(2)7-i(3)Print4.(1)10+Int(Rnd*90)(2)i+1To30(3)a(i)=a(j)(4)a(i)Mod2=1六、程序设计题程序1.界面设计略,过程设计如下:PrivateSubForm_Click()DimxAsInteger,yAsInteger,zAsIntegerDimmaxAsInteger,middAsInteger,minAsIntegerx=InputBox("请输入x的值:")y=InputBox("请输入y的值:")z=InputBox("请输入z的值:")Ifx>yThenmax=xElsemax=yIfz>maxThenmax=zIfx3Theny=x+3ElseIfx>=1Theny=x*xElseIfx>0Theny=Sqr(x)Elsey=0EndIf PrintyEndSub程序3.界面设计略,过程设计如下:PrivateSubForm_Click()DimiAsInteger,jAsIntegerFori=1To9Forj=1To9PrintTab((j-1)*4);i*j;NextjPrintNextiEndSub程序4.界面设计略,过程设计如下:PrivateSubForm_Click()DimxAsSingle,sAsSingle,tAsSingleDimiAsInteger,nAsIntegerx=InputBox("请输入x的值:")n=InputBox("请输入n的值:")t=x/2:s=tFori=3Tont=t*x/is=s+tNextiPrintsEndSub程序5.界面设计略,过程设计如下:PrivateSubForm_Click()DimeAsSingle,tAsSingle,iAsIntegere=2:b=1:i=1Doi=i+1a=bb=b/ie=e+bLoopWhileAbs(b-a)>=0.0001Print"e=";e EndSub程序6.界面设计略,过程设计如下:OptionBase1PrivateSubForm_Click()DimnAsInteger,a(9,9)AsInteger,iAsInteger,jAsIntegern=InputBox("请输入n,0Abs(xmax)Thenxmax=x(i,j):ki=i:kj=jNextj,iEndSub 第5章常用控件一、判断题1.×2.×3.×4.√5.×6.√7.×8.√9.√10.√11.×12.×13.√14.√15.×16.×17.×18.√19.√20.×21.√22.×23.√24.×25.√二、选择题1.C2.D3.B4.B5.B6.C7.B8.B9.B10.A11.D12.C13.B14.B15.A16.D17.B18.B19.B20.A三、填空题1.上、下、左、左2.缇、无关3.&、+4.Enabled5.MaxLength6.Text1.SetFocus7.MultiLine8.Visible9.Alignment10.AutoSize11.ForeColor12.0或113.True14.115.AddItem16.117.List1.Clear18.文本框、列表框19.下拉式组合框、简单组合框、下拉式列表框20.Scroll21.Value22.Change23.定时器不起作用24.Timer25.65535四、程序阅读题程序1.116程序2.8程序3.23451程序4.小,你好!程序5.您好34512小李,你好!欢迎使用VisualBasic!程序6.李子程序7.y=6程序8.n=1苹果y=14n=3橘子n=5葡萄柚子香蕉五、程序填空题1.(1)a(i)=Mid(str1,i,1)或a(i)=Mid(Text1.Text,i,1)(2)p=j(3)a(i)=a(p)(4)Command2.Enabled=True2.(1)1To2*i–1(2)Command2.Enabled=True(3)Command2.Enabled=False3.(1)Text2.Enabled=False(2)p=2(3)Printi(4)Val(Text1.Text)<2或Val(Text1.Text)<=1(5)KeyAscii=134.(1)List1.ListCount(2)List1.RemoveItemI(3)i=i+15.(1)Timer1.Enabled=True(2)x3600(3)(xMod3600)60或(x-3600*h)60(4)x=x+1 6.(1)Label1.Left(2)Label1.Left=-Label1.Width六、程序设计题程序1.界面设计略,过程设计如下:PrivateSubCommand1_Click()IfCommand1.Caption="显示"ThenPrint"欢迎使用VisualBasic!":Command1.Caption="清除"ElseForm1.Cls:Command1.Caption="显示"EndIfEndSubPrivateSubCommand2_Click()EndEndSubPrivateSubForm_Load()Form1.Cls:Command1.Caption="显示":Command2.Caption="退出"EndSub程序2.界面设计略,过程设计如下:PrivateSubForm_Load()Text1.MaxLength=1:Text1.Text=""EndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)Label1.Caption=CStr(KeyAscii)EndSub程序3.界面设计略,过程设计如下:ConstpwdAsString="123456""预设密码为123456PrivateSubCommand1_Click()Cls:Print"欢迎进入!"EndSubPrivateSubForm_Load()Command1.Caption="进入":Command1.Enabled=FalsewText1.Text="":Text1.PasswordChar="*"EndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenIfText1.Text=pwdThenm=MsgBox("口令正确,欢迎进入!"):Command1.Enabled=TrueElsem=MsgBox("口令错误,请重新输入!"):Text1.Text="" EndIfEndIfEndSub程序4.界面设计略,过程设计如下:DimnumAsInteger,mAsInteger,recAsIntegerPrivateSubForm_Load()Command1.Caption="出题":Command1.Enabled=TrueText1.Text="":Text1.Enabled=False:rec=0EndSubPrivateSubCommand1_Click()Randomize:num=Int(Rnd*100)+1:Text1.Enabled=TrueLabel1.Caption="":Command1.Enabled=FalseEndSubPrivateSubCommand2_Click()EndEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Thenm=Val(Text1.Text):rec=rec+1:Text1.SelStart=0Text1.SelLength=Len(Text1.Text):Text1.SetFocusIfrec>10ThenLabel1.Caption="差!重新开始":CallForm_LoadElseIfm>numThenLabel1.Caption=Str(m)&"大了!"ElseIfm0ThenLabel1.Caption="选择了"&n&"个字,请选择下一步操作!"Command1(0).Enabled=True:Command1(1).Enabled=TrueElseLabel1.Caption=""EndIfEndSub程序6.界面设计如图10-4所示,过程设计如下:PrivateSubForm_Load()Label1.Caption="当前日期:":Text1.Text=DateOption1(0).Caption="显示日期":Option1(1).Caption="显示时间"Option1(0).Value=True:Command1.Caption="退出"EndSub PrivateSubOption1_Click(IndexAsInteger)SelectCaseIndexCase0Label1.Caption="当前日期:":Text1.Text=DateCase1Label1.Caption="当前时间:":Text1.Text=TimeEndSelectEndSubPrivateSubCommand1_Click()EndEndSub程序7.过程设计如下:PrivateSubForm_Load()Label1.Caption="当前日期:":Text1.Text=DateOption1(0).Caption="显示日期":Option1(1).Caption="显示时间"Option1(0).Value=True:Command1.Caption="退出"Combo1.AddItem"年-月-日":Combo1.AddItem"月-日-年"Combo1.AddItem"日-月-年":Combo1.Text="年-月-日"EndSubPrivateSubCombo1_Click()DimnAsStringSelectCaseCombo1.ListIndexCase0:n="yyyy-mm-dd"Case1:n="mm-dd-yyyy"Case2:n="dd-mm-yyyy"EndSelectText1.Text=Format(Date,n)EndSubPrivateSubOption1_Click(IndexAsInteger)SelectCaseIndexCase0:Label1.Caption="当前日期:":Text1.Text=DateCase1:Label1.Caption="当前时间:":Text1.Text=TimeEndSelectEndSubPrivateSubCommand1_Click()EndEndSub程序8.界面设计如图10-5所示,过程设计如下: PrivateSubForm_Load()List1.AddItem"happy":List1.AddItem"apple"List1.AddItem"student":List1.AddItem"computer"EndSubPrivateSubCommand1_Click()List1.AddItemText1.Text:Text1.SetFocusText1.SelStart=0:Text1.SelLength=Len(Text1.Text)EndSubPrivateSubCommand3_Click()List1.ClearEndSubPrivateSubCommand4_Click()EndEndSubPrivateSubCommand2_Click()IfList1.ListIndex<>-1ThenList1.RemoveItemList1.ListIndexEndSub9.界面设计如图10-6所示,过程设计如下:PrivateSubForm_Load()Option1(0).Caption="八进制":Option1(1).Caption="十六进制"Option1(2).Caption="二进制"EndSubPrivateFunctiontran(kAsLong,nAsInteger)AsStringDimxAsInteger,yAsString*1,k1AsLongtran="":k1=Abs(k)DoWhilek1>0x=k1ModnIfx>=10Theny=Chr(Asc("A")+x-10)Elsey=CStr(x)tran=y+trank1=k1nLoopIfk<0Thentran="-"+tranEndFunctionPrivateSubOption1_Click(IndexAsInteger)DimkAsLong,nAsIntegerk=Val(Text1.Text)SelectCaseIndexCase0 Label2.Caption="八进制":n=8Case1Label2.Caption="十六进制":n=16Case2Label2.Caption="二进制":n=2EndSelectText2.Text=tran(k,n)EndSub10.界面设计如图10-7所示,过程设计如下:PrivateSubForm_Load()Label1.Left=Width/2-Label1.Width/2Label1.AutoSize=TrueHScroll1.Min=1:HScroll1.Max=1000HScroll1.SmallChange=10:HScroll1.LargeChange=100HScroll1.Value=500:Timer1.Interval=500EndSubPrivateSubHScroll1_Change()Timer1.Interval=HScroll1.ValueEndSubPrivateSubHScroll1_Scroll()CallHScroll1_ChangeEndSubPrivateSubTimer1_Timer()Label1.FontSize=Label1.FontSize+2Label1.Left=Width/2-Label1.Width/2IfLabel1.FontSize>=72ThenTimer1.Enabled=FalseEndSub第6章图形控件和图形方法一、判断题1.√2.×3.√4.×5.√6.×7.×8.×9.√10.√二、选择题1.C2.B3.C4.A5.A6.C7.A8.C9.C10.B11.A12.B13.B14.C15.C三、填空题1.Circle(ScaleLeft+ScaleWidth/2,ScaleTop+ScaleHeight/2),800 2.LoadPicture3.AutoSize、Stretch、False、False4.选中、属性5.形状、矩形6.Picture1.Picture=LodePicture("C:WindowsCloud.bmp")7.图片框、其他控件8.缇、SclaeMode9.颜色10.颜色、圆弧起点处转角、圆弧终点处转角、椭圆纵轴与横轴长度之比四、程序阅读题程序1.转动一条红色直线,其轨迹形成一个圆程序2.在窗体上随机的位置、用随机的颜色、半径绘制1000个空心的圆。程序3.在图片框内绘制多个黄色边框矩形,填充样式在“实心”、“透明”间交替变换。五、程序填空题1.(1)Combo1.ListIndex(2)Shape1.BorderStyle(3)Combo2.AddItemStr(i)2.(1)Callpic(2)False(3)n=n+1(4)LoadPicture("c:windows1.bmp")(4)LoadPicture(fn)六、程序设计题程序1.界面设计略,过程设计如下:PrivateSubForm_Load()Picture1.ScaleMode=3EndSubPrivateSubCommand1_Click()Dimx1AsSingle,y1AsSingle,x2AsSingle,y2AsSinglex1=InputBox("x1="):y1=InputBox("y1=")x2=InputBox("x2="):y2=InputBox("y2=")Picture1.Line(x1,y1)-(x2,y2),,BEndSub程序2.界面设计略,过程设计如下:PrivateSubForm_click()DimrAsSingle,xoAsSingle,yoAsSingleIfForm1.ScaleHeight""ThenList1.AddItemText1.TextText1.Text=""EndSubPrivateSubCommand2_Click()"修改记录List1.AddItemText1.Text,List1.ListIndexList1.RemoveItemList1.ListIndexCommand1.Enabled=True:Command2.Enabled=FalseCommand3.Enabled=False:Text1.Text="""修改后,不可“删除”、“修改”EndSubPrivateSubCommand3_Click()"删除记录List1.RemoveItemList1.ListIndex"删除后,不可“删除”、“修改” Command1.Enabled=True:Command2.Enabled=FalseCommand3.Enabled=False:Text1.Text=""EndSubPrivateSubCommand4_Click()"保存文件,将列表框中所有表项输出到文件DimiAsIntegerOpen"d:student.dat"ForOutputAs#1Fori=0ToList1.ListCount-1:Print#1,List1.List(i):NextiClose#1EndSubPrivateSubCommand5_Click()"退出之前先保存文件CallCommand4_Click:EndEndSub 第9章数据库与数据访问技术一、判断题1.√2.√3.×4.√5.×6.×7.√8.√9.×10.×11.√12.√13.√14.√15.√16.×17.×18.×19.√20.√21.√22.×二、选择题1.A2.D3.C4.B5.C6.A7.C8.D9.D10.C11.A12.D13.A14.B15.B16.C三、程序设计题程序1.(1)数据访问控件以及数据绑定控件的相关属性设置如下Data1:Connect("Access")、DatabaseName("d:学籍.mdb")、RecordSource("学生)"Text1:DataSource("Data1")、DataField("学号")Text2:DataSource("Data1")、DataField("姓名")Check1:DataSource("Data1")、DataField("性别")Text3:DataSource("Data1")、DataField("出生日期)Text4:DataSource("Data1")、DataField("奖学金")Text5:DataSource("Data1")、DataField("简历")OLE1:DataSource("Data1")、DataField("照片")Adodc1:ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;_DataSource=E:GYHVB学籍1b.mdb;PersistSecurityInfo=False")CommandType("1-adCmdText")、RecordSource("select*from成绩")DataGrid1:DataSource("Adodc1")(2)主要事件过程代码OptionExplicitPrivateSubForm_Load()Caption="学籍信息编辑浏览"Label1.Caption="学号:":Label2.Caption="姓名:"Label3.Caption="出生年月:":Label4.Caption="奖学金:"Label5.Caption="简历:":Label6.Caption="照片:"Check1.Caption="性别(选中表示男,否则为女)"Label7.Caption="成绩信息查询显示":Adodc1.Visible=FalseEndSubPrivateSubData1_Reposition()Adodc1.RecordSource="select成绩.课程号,课程名,成绩from学生,课程,成绩"_&"where学生.学号=成绩.学号and"&"成绩.课程号=课程.课程号and"&_"成绩.学号=""&Data1.Recordset("学号")&"""&"orderby成绩.课程号"Label7.Caption=Trim(Data1.Recordset("姓名"))&"成绩信息查询显示" Adodc1.RefreshEndSub程序2.(1)数据访问控件以及数据绑定控件的相关属性设置如下:Adodc1:ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;_DataSource=E:GYHVB学籍1b.mdb;PersistSecurityInfo=False"CommandType("1-adCmdText")、RecordSource("select*from学生)DataGrid1:DataSource("Adodc1")(2)主要事件过程代码OptionExplicitPrivateSubForm_Load()DimiAsIntegerCaption="学籍信息查询浏览":Adodc1.Visible=FalseLabel1.Caption="选择查询方式:":Combo1.Text="全部都显示"Label2.Caption="全部表文件数据浏览表格:":Label3.Visible=FalseText1.Visible=False:Text1.Text=""Fori=0To2Combo1.AddItemMid("全部都显示按学号查询按姓名查询",5*i+1,5)NextiEndSubPrivateSubCombo1_Click()SelectCaseCombo1.ListIndexCase0Text1.Visible=False:Label3.Visible=FalseAdodc1.RecordSource="select*from学生"Label2.Caption="全部表文件数据浏览表格:":Adodc1.RefreshCase1Label3.Caption="输入查询条件(学号):":Text1.Visible=TrueLabel3.Visible=True:Text1.SetFocusCase2Label3.Caption="输入查询条件(姓名):":Text1.Visible=TrueLabel3.Visible=True:Text1.SetFocusEndSelectEndSubPrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=vbKeyReturnThenIfCombo1.ListIndex=1Then Adodc1.Recordset.MoveFirstAdodc1.Recordset.Find"学号=""&Text1.Text&"""IfAdodc1.Recordset.EOFThenAdodc1.RecordSource="select*from学生"Label2.Caption="全部表文件数据浏览表格:"Adodc1.Refresh:MsgBox"查无此人!"ElseAdodc1.RecordSource="select*from学生"&"where_学号=""&Text1.Text&"""Label2.Caption="学生"+Text1.Text+"的数据浏览表格:"EndIfElseAdodc1.Recordset.MoveFirstAdodc1.Recordset.Find"姓名=""&Text1.Text&"""IfAdodc1.Recordset.EOFThenAdodc1.RecordSource="select*from学生"Label2.Caption="全部表文件数据浏览表格:"Adodc1.Refresh:MsgBox"查无此人!"ElseAdodc1.RecordSource="select*from学生"&_"where姓名=""&Text1.Text&"""EndIfEndIfAdodc1.RefreshEndIfEndSub程序3.(1)数据访问控件以及数据绑定控件的相关属性设置如下:Adodc1(xs):ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;_DataSource=E:GYHVB学籍1b.mdb;PersistSecurityInfo=False")CommandType("2-adCmdTable")、RecordSource("学生")Adodc2(kc):ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;_DataSource=E:GYHVB学籍1b.mdb;PersistSecurityInfo=False")CommandType("2-adCmdTable")、RecordSource("课程")Adodc3(cjcx):ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;_DataSource=E:GYHVB学籍1b.mdb;PersistSecurityInfo=False")CommandType("1-adCmdText") RecordSource("select成绩.学号,学生.姓名,成绩.课程号,课程.课程名,_成绩.成绩from学生,课程,成绩where成绩.课程号=课程.课程号_and成绩.学号=学生.学号"DataGrid1:DataSource("cjcx")DataList1:RowSource("xs")、ListField ("姓名")、BoundColumn("学号")DataList2:RowSource("kc")、ListField("课程名")、BoundColumn("课程号")(2)主要事件过程代码OptionExplicitDimpAsBytePrivateSubForm_Load()DimiAsIntegerFori=0To4Label1(i).Caption=Mid("优秀良好中等及格差等",2*i+1,2)Text1(i).Text="":Text1(i).BackColor=RGB(205,205,192)Text1(i).Locked=TrueNexticjcx.RecordSource="select成绩.学号,学生.姓名,成绩.课程号,课程.课程名,"_&"成绩.成绩from学生,课程,成绩"&_"where成绩.课程号=课程.课程号and成绩.学号=学生.学号"cjcx.Refresh:Label2.Caption="成绩信息列表"Label3.Caption="选择学生姓名:":Label4.Caption="选择课程名:"xs.Visible=False:kc.Visible=False:cjcx.Visible=FalseCaption="学籍信息查询":p=0EndSubPrivateSubDataList1_Click()p=0:CallcjdctjEndSubPrivateSubDataList2_Click()p=1:CallcjdctjEndSubPrivateSubcjdctj()Dimcjdcjs(5)AsInteger,dcaseAsByte,iAsByteIfp=0Thencjcx.RecordSource="select成绩.学号,学生.姓名,成绩.课程号,"_&"课程.课程名,成绩.成绩from学生,课程,成绩"_&"where成绩.学号=""&DataList1.BoundText&"""_&"and(成绩.课程号=课程.课程号and"_&"成绩.学号=学生.学号)orderby成绩.课程号"Frame1.Caption="单位:门" Label2.Caption=Trim(DataList1.Text)&"成绩信息列表"Elsecjcx.RecordSource="select成绩.学号,学生.姓名,成绩.课程号,"_&"课程.课程名,成绩.成绩from学生,课程,成绩"_&"where成绩.课程号=""&DataList2.BoundText&"""_&"and(成绩.课程号=课程.课程号and"_&"成绩.学号=学生.学号)orderby成绩.学号"Frame1.Caption="单位:人"Label2.Caption=Trim(DataList2.Text)&"成绩信息列表"EndIfcjcx.RefreshIfNotcjcx.Recordset.EOFThencjcx.Recordset.MoveFirstWhileNotcjcx.Recordset.EOFIfcjcx.Recordset("成绩")<60Thendcase=0Elsdcase=(cjcx.Recordset("成绩")10)–5EndIfSelectCasedcaseCase4,5:cjdcjs(0)=cjdcjs(0)+1Case3:cjdcjs(1)=cjdcjs(1)+1Case2:cjdcjs(2)=cjdcjs(2)+1Case1:cjdcjs(3)=cjdcjs(3)+1Case0:cjdcjs(4)=cjdcjs(4)+1EndSelectcjcx.Recordset.MoveNextWendFori=0To4:Text1(i).Text=cjdcjs(i):NextiEndSub程序4.(1)数据访问控件以及数据绑定控件的相关属性设置如下:Adodc1:ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;_DataSource=E:GYHVB学籍1b.mdb;PersistSecurityInfo=False")CommandType("2-adCmdTable")、RecordSource("学生")LockType("4-adBatchOptimistic)Adodc2:ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;_DataSource=E:GYHVB学籍1b.mdb;PersistSecurityInfo=False") CommandType("2-adCmdTable")、RecordSource("课程")LockType("4-adBatchOptimistic")Adodc3:ConnectionString("Provider=Microsoft.Jet.OLEDB.4.0;_DataSource=E:GYHVB学籍1b.mdb;PersistSecurityInfo=False")CommandType("2-adCmdTable")、RecordSource("成绩")LockType("4-adBatchOptimistic")Text1:用于显示编辑"学号",但是本字段不设置数据绑定属性,输入或修改后的"学号"数据通过代码方式写入数据源中。Text2:DataSource("Adodc1")、DataField("姓名")Check1:DataSource("Adodc1")、DataField("性别")Text3:DataSource("Adodc1")、DataField("出生日期")Text4:DataSource("Adodc1")、DataField("奖学金")Text5:用于显示编辑"课程号",但是本字段不设置数据绑定属性,输入或修改后的"课程号"数据通过代码方式写入数据源中。Text6:DataSource("Adodc2")、DataField("课程名")Text7:DataSource("Adodc2")、DataField("学时数")Text8:DataSource("Adodc2")、DataField("学分数")Text9:DataSource("Adodc2")、DataField("开课学期")Text10:DataSource("Adodc2")、DataField("考试考查标志")Text11:用于显示编辑成绩表中的"学号",但是本字段不设置数据绑定属性,输入或修改后的"学号"数据通过代码方式写入数据源中。Text12:用于显示编辑成绩表中的"课程号",但是本字段不设置数据绑定属性,输入或修改后的"课程号"数据通过代码方式写入数据源中。Text12:DataSource("Adodc3")、DataField("成绩")(2)主要事件过程代码OptionExplicitDimvltAsBoolean,rnAsVariantPrivateSubForm_Load()DimiAsIntegerFori=0To7Command1(i).Caption=Mid("追加更新删除表首前翻后翻表尾返回",2*i+1,2)NextiCommand1(3).Enabled=False:Command1(4).Enabled=FalseLabel1.Caption="学号:":Label2.Caption="姓名:"Label3.Caption="出生年月:":Label4.Caption="奖学金:"Check1.Caption="性别(选中为男,否则为女)"Label5.Caption="课程号:":Label6.Caption="课程名:"Label7.Caption="学时数:":Label8.Caption="学分数:" Label9.Caption="开课学期:":Label10.Caption="考试考查标志:"Label11.Caption="学号:":Label12.Caption="课程号:"Label13.Caption="成绩"Label14.Caption="“追加”、“删除”或是修改操作完成之后必须按“更新”按钮"Caption="学籍信息浏览编辑"Text1.Text=Adodc1.Recordset("学号"):Text5.Text=Adodc2.Recordset("课程号")Text11.Text=Adodc3.Recordset("学号"):Text12.Text=Adodc3.Recordset("课程号")vlt=TrueEndSubPrivateSubCommand1_Click(IndexAsInteger)DimxhAsString,kchAsString,answerAsByteOnErrorGoToerrshowSelectCaseIndexCase0SelectCaseSSTab1.TabCase0Adodc1.Recordset.AddNew:Adodc1.Recordset("学号")="000000"Case1Adodc2.Recordset.AddNew:Adodc2.Recordset("课程号")="0000"Case2Adodc3.Recordset.AddNew:Adodc3.Recordset("学号")="000000"Adodc3.Recordset("课程号")="0000"EndSelectCase1SelectCaseSSTab1.TabCase0:Adodc1.Recordset.UpdateBatchCase1:Adodc2.Recordset.UpdateBatchCase2:Adodc3.Recordset.UpdateBatchEndSelectCase2answer=MsgBox("真的确定要删除当前记录吗?",1+32,"删除确认")Ifanswer=1ThenSelectCaseSSTab1.TabCase0xh=Adodc1.Recordset("学号"):Adodc3.Recordset.MoveFirstDoAdodc3.Recordset.Find"学号=""&xh&"""IfNotAdodc3.Recordset.EOFThenAdodc3.Recordset.Delete:Adodc3.Recordset.MoveNext ElseExitDoEndIfLoopAdodc3.Recordset.MoveFirst:Adodc1.Recordset.DeleteAdodc1.Recordset.MoveNextCase1kch=Adodc2.Recordset("课程号"):Adodc3.Recordset.MoveFirstDoAdodc3.Recordset.Find"课程号=""&kch&"""IfNotAdodc3.Recordset.EOFThenAdodc3.Recordset.Delete:Adodc3.Recordset.MoveNextElseExitDoEndIfLoopAdodc3.Recordset.MoveFirst:Adodc2.Recordset.DeleteAdodc2.Recordset.MoveNextCase2Adodc3.Recordset.Delete:Adodc3.Recordset.MoveNextEndSelectEndIfCase3SelectCaseSSTab1.TabCase0:Adodc1.Recordset.MoveFirstCase1:Adodc2.Recordset.MoveFirstCase2:Adodc3.Recordset.MoveFirstEndSelectCommand1(3).Enabled=False:Command1(4).Enabled=FalseCommand1(5).Enabled=True:Command1(6).Enabled=TrueCase4SelectCaseSSTab1.TabCase0IfNotAdodc1.Recordset.BOFAndAdodc1.Recordset.Bookmark>1ThenAdodc1.Recordset.MovePreviousElseCommand1(3).Enabled=False:Command1(4).Enabled=FalseEndIf Case1IfNotAdodc2.Recordset.BOFAndAdodc2.Recordset.Bookmark>1ThenAdodc2.Recordset.MovePreviousElseCommand1(3).Enabled=False:Command1(4).Enabled=FalseEndIfCase2IfNotAdodc3.Recordset.BOFAndAdodc3.Recordset.Bookmark>1ThenAdodc3.Recordset.MovePreviousElseCommand1(3).Enabled=False:Command1(4).Enabled=FalseEndIfEndSelectCommand1(5).Enabled=True:Command1(6).Enabled=TrueCase5SelectCaseSSTab1.TabCase0IfNotAdodc1.Recordset.EOFAnd_Adodc1.Recordset.Bookmark