
确认好题目后扫微信二维码联系客服获取免费答案
题目顺序为随机,请根据题目开头和关键词查找(或按快捷键Ctrl+F输入题目中的关键词,不要输入整个题目)
VisualBasic程序设计形考任务一答案
请同学选择【第1章】-【实战演练】“实验1 欢迎程序”或【第2章】-【实战演练】“实验2 计时秒表程序”的其中之一,在VB集成开发环境中认真完成实验。
实验完成后,将调试好的程序保存在以“姓名+实验名称”命名的文件夹下,并将该文件夹压缩成.rar或者.zip格式进行提交。 本次实验满分15分,提交后需要辅导教师批阅打分。
实验目的
1学会VB(Visual Basic)6.0的安装,掌握启动与退出VB6.0的方法。
2熟悉VB集成开发环境,掌握工具栏、工具栏、属性窗口、工程资源管理器窗口、代码编辑器窗口的使用。
3掌握建立、编辑和运行一个简单的VB应用程序的全过程。
实验内容
本实验将要开发一个“欢迎”程序。程序运行界面如图1.15所示,完成的功能是:单击“显示”按钮,在文本框内显示“欢迎学习Visual Basic程序设计”字样。
图1.15 欢迎程序运行界面
实验步骤
1界面设计
(1)启动Visual Basic 6.0,在出现的“新建工程”对话框中,单击“打开”按钮,进入VB集成开发环境,出现Form1的窗体,如图1.16所示。
图1.16 “Form1”窗体
(2)在Form1窗体上添加控件。用鼠标单击工具箱中的文本框按钮 ,然后在Form1窗体上用鼠标拖曳,或者直接双击工具箱中的文本框按钮 ,在Form1窗体上形成一个默认名为Text1的按钮对象,用同样方法将工具箱中的命令按钮添加到Form1窗体上,调整好位置,如图1.17所示。
图1.17 在窗体上添加控件
(3)设置窗体的属性。单击Form1窗体,在属性窗口列表的左栏中选择Caption属性,并将右栏中的属性值改为“欢迎”,窗体效果如图1.18所示。
图1.18 设置了Form1属性后的窗体
(4)设置控件的属性。在窗体上单击Command1按钮控件,在属性列表的左栏中选择Caption属性,并将右栏中的属性值改为“显示”。单击文本框控件,在属性列表的左栏中找到Text属性,将其值Text1删除。更改了属性值之后的应用程序界面如图1.19所示。
图1.19 设置属性后的应用程序界面
2代码设计
双击窗体上的Command1按钮,可在代码编辑器窗口中自动建立起Command1_Click事件的代码框架。在Command1_Click事件过程中添加代码:Text1.Text = “欢迎学习Visual Basic程序设计”,如图1.20所示。
图1.20 Command1_Click事件的代码
注意:
代码顶部的Option Explicit语句用于要求对程序中的变量进行显示声明。要使该语句自动生成,可从“工具”菜单中选择“选项”,在弹出的“选项”对话框中,将编辑器选项卡中“要求变量声明”前的复选框选中即可。
3保存和运行工程
单击工具栏上的“保存”按钮,将窗体、工程分别以hy.frm、hy.vbp保存在磁盘上预先建立好的文件夹中。单击工具栏中的“启动”按钮,再单击运行界面上的“显示”按钮,在文本框中显示“欢迎学习Visual Basic程序设计”,如图1.15所示。
4生成可执行文件
从“文件”菜单中选择生成hy.exe,在“生成工程”对话框中,单击“保存”按钮。该文件可以脱离VB环境,在操作系统下单独运行。
VisualBasic程序设计形考任务二答案
请同学选择课程【第3章】-【实战演练】“实验3 冒泡排序程序”,在VB集成开发环境中认真完成实验。
实验完成后,将调试好的程序保存在以“姓名+实验名称”命名的文件夹下,并将该文件夹压缩成.rar或者.zip格式进行提交。 本次实验满分15分,提交后需要辅导教师批阅打分。
实验目的
1理解冒泡排序算法。
2掌握循环、分支结构的使用方法。
3掌握断点设置、监视跟踪等调试方法,深入分析该程序的运行过程、值的变化情况。
实验内容
本实验开发一个“冒泡排序”程序,并通过这个程序,巩固一下第2章所学的程序调试方法。这个程序的运行逻辑是:首先用户在Text1中输入一个整数,单击“添加到初始序列中”按钮后将该整数添加到“初始序列”List1中,如此多次后,再单击“排序”按钮,在List2中显示排序结果,我们期望的运行结果如图3.10所示。
图3.10 期望的程序运行结果
实验步骤
1界面设计
(1)首先请同学们参照图3.11完成排序程序的界面设计。
图3.11 排序程序的界面设计
2编写事件代码
“添加到初始序列中”按钮的Click事件:
Private Sub Command1_Click()
List1.AddItem Text.Text
End Sub
“排序”按钮的Click事件;
Private Sub Command2_Click()
Dim i, j As Integer
‘定义数组,以List1的项目个数为数组维数
Dim strList(List1.ListCount) As Integer
‘定义中间临时变量,用于数据交换
Dim strTmp As Integer
‘将List1中的项目导入到strList数组中
For i = 0 To List1.ListCount
strList(i) = List1.List(i)
Next i
‘按“冒泡”算法完成排序工作
For i = 0 To UBound(strList)
For j = i + 1 To UBound(strList)
If strList(i) > strList(j) Then
strTmp = strList(i)
strList(i) = strList(j)
strList(j) = strTmp
End If
Next j
Next i
‘将排序结果输出到List2中
For i = 0 To UBound(strList)
List2.AddItem strList(i)
Next i
End Sub
3运行程序并调试程序语法错误
(1)运行程序,在Text1文本框中输入一个整数,比如1,然后单击“添加到初始序列中”按钮,此时会出现如图3.12所示的错误提示。
[i图3.12 实时错误
(2)单击“调试”按钮,进入中断模式,VB编译器将自动标识出引发错误的语句行,如图3.13所示窗体。
图3.13 自动定位引发错误的语句行
(3)分析错误原因,很容易发现该行语句的正确写法应该是:
List1.AddItem Text1.Text
(4)修改错误后,按F5键继续执行程序,将出现如图3.14所示界面。
图3.14 排序程序运行界面
(5)依次输入整数序列21、9、8、6后,将出现如图3.15所示界面。
图3.15 输入初始序列后的界面
(6)单击“排序”按钮后,又出现如图3.16所示的运行错误。
图3.16 编译错误
(7)单击“确定”按钮后,再次进入中断模式,编译器以加重显示的形式指出了引发错误的位置,如图3.17所示。
图3.17 以加重显示的形式定位错误
(8)分析如图3.16所示的错误提示“要求常数表达式”后,发现引用错误的原因是不能用变量作为数组的下标,即下列数组声明语句不符合VB语法约定:
Dim strList(List1.ListCount) As Integer
为此我们作如下选择,即采用动态数组声明的方法。
Dim strList() As Integer
ReDim strList(List1.ListCount) As Integer
(9)选择完成后,按F5键继续执行,又会出现如图3.18所示的错误提示。
图3.18 类型不匹配错误提示
(10)单击“调试”按钮后,错误定位如图3.19所示。
图3.19 类型不匹配错误定位
(11)分析错误原因发现,我们将数组strList()声明为Integer数据类型,而List1.List()表示的是字符型数据,VB无法进行自动类型转换,因此我们只能通过Val函数进行转换:
strList(i) = Val(List1.List(i))
(12)按F5键继续,程序成功运行,出现如图3.20所示界面。这说明语法错误已基本排除了。但是观察运行结果,发现“排序结果”序列中多出了一个数值0。这种结果并不是我们期望的。
图3.20 有问题的运行结果
(13)关闭程序,重新运行,仍然出现图3.20的问题,这说明程序中存在逻辑问题,需要进一步调试。
4设置断点,分析逻辑错误
逻辑错误是最难定位的,对于那些逻辑稍微复杂的程序,常常需要花费大量的时间和精力查找分析。一般要用到设置断点、单步执行和立即调试窗等工具或技术。
(1)单击如图3.21所示位置,设置断点。
图3.21 设置断点
(2)按F5键运行程序并输入一组整数,比如5、4、3、2。单击“排序”按钮后,程序将进入中断模式,出现如图3.22所示界面。
图3.22 程序遇到断点
(3)在VB集成环境的“立即”窗口中,使用“?”打印strList数组的上界和相关的值,如图3.23所示。当然也可以使用Print、Debug.Print命令,它们等效于“?”。
[图3.23 在“立即”窗中观察变量的值
(4)仔细分析不难发现,List1.ListCount的最大值是4,说明数字序列中共有4个数,即5、4、3、2。但是List1.List()的下标是从0开始的,下标最大值应该为3,即:
List1.ListCount – 1
为此,我们需要选择strList()数组的上界和循环次数。
‘个性数组声明
ReDim strList(List1.ListCount – 1) As Integer
‘修改循环次数
For i = 0 To List1.ListCount – 1
strList(i) = Val(List1.List(i))
Next i
(5)修改后的完整代码及运行结果如图3.24、图3.25[并排这两个图]所示。
图3.24 修改后的代码
图3.25 最终的运行结果
5程序的进一步完善
这个程序经过调试能够正常运行了,但还是存在一些不足,比如我们可以在Text1中输入非整数、字符和汉字等。另外,当重新单击“排序”按钮后,数字序列会被重复添加到List2中。上述情况下,应用程序并不会报错,但这与我们的设计要求是不相符的,因此需要进一步完善程序功能,主要有以下两种措施,这些知识将在后续章节介绍。请同学们先提前思考一下。
(1)通过Keypress事件控制Text1控件的输入,使它只能接收数字。
(2)在“排序”按钮的Click事件中加入List2.Clear语句。
VisualBasic程序设计形考任务三答案
请同学选择课程【第4章】-【实战演练】“实验4 菜单设计”或【第5章】-【实战演练】“实验5鼠标MouseMove事件应用”的其中之一,在VB集成开发环境中认真完成实验。
实验完成后,将调试好的程序保存在以“姓名+实验名称”命名的文件夹下,并将该文件夹压缩成.rar或者.zip格式进行提交。 本次实验满分15分,提交后需要辅导教师批阅打分。
实验目的
1掌握菜单编辑器的使用方法。
2掌握下拉式菜单的制作。
实验内容
本实验主要开发一个如图4.21所示的菜单系统。在菜单栏中有“插入”和“颜色”两个菜单,其中“插入”菜单中包含“符号”“图片”“文本框”和“文件”4个菜单项,“文本框”子菜单又包含“横排”和“竖排”两个选项。“颜色”菜单中包含“红色”“蓝色”和“绿色”3个子菜单。
图4.21 简单菜单设计
程序的运行逻辑是:若文本框中没有文本,“颜色”菜单中的各项均为灰色显示,表示当前不可用。当用户向文本框中输入了文字后,单击“颜色”菜单中相应的选项可以改变文本框中文字的颜色。
实验步骤
1界面设计
(1)启动VB进入Visual Basic 6.0集成开发环境。单击工程菜单下的“菜单编辑器”命令,打开菜单编辑器对话框,如图4.22所示。
图4.22 菜单编辑器
(2)在标题框中输入“插入(&I)”,在名称框中输入Insert,这样就创建了“插入”菜单。各菜单控件设置如表4.3所示。
表4.3 菜单控件设置
|
菜单层次 |
标题(Caption) |
名称(Name) |
快捷键设置 |
|
顶层 |
插入(&I) |
Insert |
|
|
一级 |
符号(& S) |
Symbol |
|
|
一级 |
图片(&P) |
Picture |
|
|
一级 |
文本框(&X) |
Text |
|
|
二级 |
横排(&H) |
Horizon |
|
|
二级 |
竖排(&V) |
Vertical |
|
|
一级 |
? |
Sep |
|
|
一级 |
文件(&L) |
Document |
|
|
顶层 |
颜色 |
Color |
|
|
一级 |
红色(&R) |
Red |
|
|
一级 |
蓝色(&B) |
Blue |
|
|
一级 |
绿色(&G) |
Green |
|
(3)单击按钮,再单击按钮(条形光标的左端出现了“…”),在标题框中输入“符号(&S)”,在名称框中输入Symbol,即创建了“插入”菜单的一级子菜单:“符号”。
(4)单击[按钮,在标题框中输入“图片(&P)”,在名称框中输入Picture,创建了“插入”菜单的子菜单:“图片”。按照同样方法创建“文本框”子菜单。
(5)单击按钮,再单击按钮,在标题框中输入“横排(&H)”,在名称框中输入Horizon,即创建了“文本框”的下一级菜单:“横排”。用同样方法创建“文本框”的另一个子菜单:“竖排”。
(6)单击按钮,再单击按钮,在标题框中输入“?”,在名称框中输入Sep,创建了分隔条。
(7)单击按钮,在标题框中输入“文件”,在名称框中输入File,创建一级子菜单“文件”。
(8)单击按钮,再单击按钮,在标题框中输入“颜色”,在名称框中输入Color,创建了顶级菜单“颜色”。
(9)仿照上面的步骤,创建“颜色”菜单的一级子菜单:“红色”“蓝色”和“绿色”。创建了各菜单项的菜单编辑器如图4.23所示。
[i图4.23 创建了各菜单项后的菜单编辑器
(10)单击菜单编辑器上的“确定”按钮,生成了如图4.24所示的菜单栏。
图4.24 菜单设计窗体界面
(11)在Form1窗体上添加文本框Text1,并将文本框的Text属性值清空,将ScrollBars属性设置为3?both,将MultiLine设置为True。
2代码设计
单击工程资源管理器窗口中的“查看代码”按钮,打开代码编辑器窗口,编写如下程序代码:
Private Sub Color_Click()
If Text1.Text = “” Then
Red.Enabled = False
Blue.Enabled = False
Green.Enabled = False
Else
Red.Enabled = True
Blue.Enabled = True
Green.Enabled = True
End If
End Sub
Private Sub Red_Click()
Text1.ForeColor = vbRed
End Sub
Private Sub Blue_Click()
Text1.ForeColor = vbBlue
End Sub
Private Sub Green_Click()
Text1.ForeColor = vbGreen
End Sub
3保存和运行工程
单击工具栏上的“保存”按钮,分别以CDSJ(1).frm和CDSJ(1).vbp保存窗体文件和工程文件。单击工具栏中的“启动”按钮运行程序,在文本框中输入文字,检验效果。
如果程序出现运行错误或者未达到预期效果,则请同学们根据第2章学习的程序调试方法,找找原因并改正。
VisualBasic程序设计形考任务四答案
请同学选择课程【第6章】-【实战演练】“实验6 word文件显示程序”或【第7章】-【实战演练】“实验7 绘制图形程序”或【第8章】-【实战演练】“实验8 网络下载程序”的其中之一,在VB集成开发环境中认真完成实验。
实验完成后,将调试好的程序保存在以“姓名+实验名称”命名的文件夹下,并将该文件夹压缩成.rar或者.zip格式进行提交。 本次实验满分15分,提交后需要辅导教师批阅打分。
实验目的
1掌握建立图形坐标系的方法。
2掌握VB图形控件和图形方法以及常见几何图形的绘制方法。
实验内容
我们上网浏览一些精彩的网页时,会经常看到一串五颜六色的字符或漂亮的图片尾随着鼠标不断移动。在VB程序中要实现这一功能非常容易,只需要一个MouseMove事件就可以了,本实验就是要学习这种编程技巧。
实验步骤
1实验步骤
新建标准EXE工程,将默认窗体Form1的Caption属性改为“绘制三角函数图形”,在窗体上添加3个命令按钮Command1、Command2和Command3,将其Caption属性分别改为“建立坐标系”“y=Sin(x)”和“y=Cos(x)”,并按图7.18调整好位置。
2编写代码
双击窗体上的“建立坐标系”按钮,进入代码编辑器窗口,在代码编辑区的Command1_Click()中添加代码:
‘绘制坐标轴和坐标刻度
Private Sub Command1_Click()
Cls
Form1.Scale (-8, 2)-(8, -2) ??? ?’用Scale方法定义坐标系
Line (-7.5, 0)-(7.5, 0) ???? ‘用Line方法画X轴
Line (0, 1.7)-(0, -1.7) ??? ?’画Line方法画Y轴
CurrentX = 7.6: CurrentY = 0.1: Print “X” ?? ??’标识X轴
CurrentY = 0.5: CurrentY = 1.8: Print “Y” ??? ?’标识X轴
For i = -7 To 7
Line (i, 0)-(i, 0.1) ??? ?’在X轴上标记坐标刻度
CurrentX = i – 0.2: CurrentY = -0.1: Print I???? ‘在X轴上输出数字标识
Next i
For i = -1 To 1
If i <> 0 Then
CurrentX = -0.7: CurrentY = i + 0.1: Print I???? ‘在Y轴上输出数字标识
Line (0.5, i)-(0, i) ???? ‘在Y轴上标记坐标刻度
End If
Next i
End Sub
‘ 绘制正弦曲线
Private Sub Command2_Click()
CurrentX = -6.283: CurrentY = 0 ???? ‘曲线的起点坐标
For i = -6.283 To 6.283 Step 0.01
x = i: y = Sin(i)
Line -(x, y) ???? ‘用Line方法绘制正弦曲线
Next i
CurrentX = 2.5: CurrentY = 1: Print “y=Sin(x)”??? ?’输出y=Sin(x)
End Sub
Private Sub Command3_Click() ??? ?’绘制余弦曲线
DrawWidth = 2 ???? ‘设置线宽
CurrentX = -6.283: CurrentY = 1
For i = -6.283 To 6.283 Step 0.01
x = i: y = Cos(i)
Line -(x, y) ??? ?’绘制余弦曲线
Next i
CurrentX = -7: CurrentY = 1.2: Print “y=Cos(x)”??? ?’输出y=Cos(x)
End Sub
运行程序,并单击“建立坐标系”按钮,即绘制出坐标系,然后单击“y=Sin(x)”“y=Cos(x)”按钮,分别绘制出正弦、余弦曲线。
VisualBasic程序设计形考任务五答案
请同学选择课程【第9章】-【实战演练】“实验9 进销存管理信息系统”,在VB集成开发环境中认真完成实验。
实验完成后,将调试好的程序保存在以“姓名+实验名称”命名的文件夹下,并将该文件夹压缩成.rar或者.zip格式进行提交。 本次实验满分40分,提交后需要辅导教师批阅打分。
实验目的
1掌握利用SQL语句,通过ADO数据对象管理数据库的方法。
2理解数据库实用程序的框架体系。
3了解数据报表的制作方法。
实验内容
本实验主要开发一个“进销存”管理系统。要求同学们首先在SQL Server上创建名为“进销存”的数据库,并在该数据库上创建“物资台账”“物资入库”“物资出库”3张表。然后编写一个简单“进销存”数据库管理系统,它具有数据增加(Insert)、删除(Delete)、修改(Update)和查询(Select)功能,并能将查询结果在计算屏幕和打印机上输出。
实验步骤
1创建数据库
在进行本实验之前,请同学们先根据表9.4、表9.5、表9.6在SQL Server上创建“进销存”数据库。如果你不具备SQL Server实验环境,也可以在Access数据库上完成创建工作。无论采用哪种数据库,程序设计过程和代码基本相同。
表9.4 物资台账表结构
|
字段名 |
类型 |
长度 |
备注 |
|
物资编码 |
Char |
4 |
1.主关键字为“物资编码” 2.在主关键字上创建聚集唯一索引 3.“物资编码”由4位组成,其中第1位使用英文字母表示物资类别,后3位使用数字表示流水号。物资类别如下:A表示钢笔类,B表示橡皮类 |
|
物资名称 |
Varchar |
10 |
|
|
计量单位 |
Char |
2 |
|
|
单价 |
Money |
8 |
|
|
期初库存 |
Numeric |
9 |
表9.5 物资入库表结构
|
字段名 |
类型 |
长度 |
备注 |
|
物资编码 |
Char |
4 |
在主关键字“物资编码”上创建聚集不唯一索引 |
|
入库时间 |
Datetime |
8 |
|
|
入库数量 |
Numeric |
9 |
表9.6 物资出库表结构
|
字段名 |
类型 |
长度 |
备注 |
|
物资编码 |
Char |
4 |
在主关键字“物资编码”上创建聚集不唯一索引 |
|
出库时间 |
Datetime |
8 |
|
|
出库数量 |
Numeric |
9 |
同学们既可以利用SQL Server企业管理器,通过图形化界面完成数据库创建工作,也可以直接在SQL Server查询分析器中运行以下语句:
–创建“进销存”数据库容器
CREATE DATABASE 进销存
GO
USE 进销存
GO
–创建物资台账表
CREATE TABLE 物资台账 (
物资编码 char (4) NOT NULL ,
物资名称 varchar (10) NOT NULL ,
计量单位char (2) NOT NULL ,
单价 money NOT NULL ,
期初库存 numeric (18, 0) NOT NULL
) ON [PRIMARY]
GO
–创建物资入库表
CREATE TABLE 物资入库 (
物资编码 char (4) NOT NULL ,
入库时间 datetime NOT NULL ,
入库数量 numeric(18, 0) NOT NULL
) ON [PRIMARY]
GO
–创建物资出库表
CREATE TABLE 物资出库 (
物资编码 char (4) NULL ,
出库时间 datetime NOT NULL ,
出库数量 numeric(18, 0) NOT NULL
) ON [PRIMARY]
GO
2根据业务逻辑书写SQL语句
由于拟开发的应用程序具有对数据表的增加、删除、修改和查询4项基本功能,因此请同学们首先在实验报告上写出相应的SQL语句,比如:
–向物资台账表中新增数据
INSERT INTO 物资台账(物资编码,物资名称,计量单位,单价,期初库存)
VALUES(‘A001′,’英雄牌钢笔’,’只’,2.5,50)
–修改物资台账表中现有数据
UPDATE物资台账 SET 单价 = 3 ,期初库存= 60
WHERE 物资编码 = ‘A001’
–删除物资台账表中现有数据
DELETEFROM 物资台账
WHERE 物资编码 = ‘A001’
–查询物资台账表中现有数据
SELECT * FROM物资台账
WHERE 物资编码 = ‘A001’
–(其他略,请同学们自己完成)
3程序界面设计
(1)创建工程。新建一“标准EXE”工程,工程名为“进销存管理信息系统”。通过“工程-部件”或“工程-引用”菜单项添加ADO数据对象、工具条、MSFlexGrid等相关对象或控件,并按以下要求创建窗体,所有窗体的StartUpPosition属性均设置为:2?屏幕中心。
(2)创建主窗体(frmMain)。如图9.33所示,运用菜单技术、工具条技术创建窗体。窗体名frmMain,其他控件保留默认名称。
图9.33 主窗体(frmMain)运行界面
(3)创建“物资台账管理”窗体(frm台账)。如图9.34所示,使用图片(PictureBox)、表格(MSFlexGrid)、命令按钮(CommandButton)控件,添加并设计“新增记录”窗体。窗体名为“frm台账”,所有控件保留默认名称。
图9.34 “物资台账管理”窗体(frm台账)设计界面
(4)创建“物资台账数据增加”窗体(frmAdd台账)。如图9.35所示,使用标签、文本框、组合框、命令按钮控件,添加并创建“物资台账数据增加”窗体。窗体名为“frmAdd台账”。其中Text1为控件数组,Text1(4)控件的Enable属性为False。另外,在Combo1控件的List属性中输入一些常用的计量单位,比如“台”“个”“只”等,其他控件保留默认名称和设置。
图9.35 “物资台账数据增加”窗体(frmAdd台账)设计界面
(5)创建“物资台账数据修改”窗体(frmUpdate台账)。如图9.36所示,使用标签、组合框、命令按钮控件,添加并创建“物资台账数据修改”窗体。窗体名为“frmUpdate修改”。其中Text1为控件数组,Text1(0)和Text1(4)(物资编码和期初金额)控件的Enable属性设置为False,其他控件保留默认名称和设置。
图9.36 “物资台账数据修改”窗体(frmUpdate台账)运行界面
(6)创建“物资台账数据查询”窗体(frmQuery台账)。如图9.37所示,使用标签、组合框、命令按钮控件,添加并创建“物资台账数据查询”窗体。窗体名为“frmQuery台账”。其中Text1为控件数组,ComboBox控件的Style属性为2?Dropdown List。
图9.37 “物资台账数据查询”窗体(frmQuery台账)设计界面
(7)创建“物资台账报表”窗体(frmReport台账)。通过“工程-添加DataReport”菜单项添加报表窗体,命名为“frmReport台账”。按下列步骤完成设计工作(如图9.38所示):
图9.38 “物资台账”报表窗体设计界面
①在报表标头、页标头部分添加rptLabel控件,并修改它们的Caption属性。
②在细节部分添加rptTextBox控件,并修改它们的DataField属性。
③添加rptLine控件。
(8)按上述(3)~(7)步的方法创建“物资入库管理”“物资出库管理”界面。
4代码设计
(1)添加Module模块,编写Main过程:
‘声明全局对象变量ADOcn,用于创建与数据库的连接
Public ADOcn As Connection
‘声明全局变量strQuery1用于存储查询条件
Pubic strQuery1 As String
Public Sub Main()
‘定义数据库连接字符串
Dim strSQLServer As String
‘用于连接SQL Server数据库,其中:
‘Server为服务器名称
‘User ID为登录账号,Password为登录口令
‘Database为具体的数据库名
‘请根据具体的实验环境修改这些参数
strSQLServer = “Provider=SQLOLEDB;Server=bigdog;Us_
er ID=sa;Password=sa;Database=进销存”
‘连接SQL Server数据库
ADOcn.Open strSQLServer
‘显示主窗体
frmMain.Show
End Sub
将Main过程设为工程启动对象。
(2)FrmMain窗体主要代码。该窗体的代码主要用于调度其他各窗体,起串接作用。
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.But_ton)
Select Case Button
Case “物资台账管理”
frm台账.Show 1
Case “物资入库管理”
frm入库.Show 1
Case “物资出库管理”
frm出库.Show 1
Case “退出系统”
Unload Me ‘或者使用End命令
End Select
End Sub
(3)“frm台账”窗体代码。
“通用”部分声明一个Sub过程,用于在MSFlexGrid中显示记录。
Private Sub DisplayGrid()
‘声明变量
Dim strGrid As String
Dim i As Integer
Dim ADOrs As New Recordset
ADOrs.ActiveConnection = ADOcn
‘打开物资台账
If strQuery1 <> “” Then
ADOrs.Open “Select * From 物资台账 Where ” + strQuery1 + ” Order By 物资编码”
Else
ADOrs.Open “Select * From 物资台账 order by 物资编码”
End If
‘设置MSFlexGrid控件的表头
MSFlexGrid1.Clear
MSFlexGrid1.Rows = 0
MSFlexGrid1.Cols = 6
strGrid = “物资编码” + vbTab + “物资名称” + vbTab + “计量单位” + vbTab
strGrid = strGrid + “单价” + vbTab + “期初库存” + vbTab + “期初金额”
i = 0
‘在第i行增加一列
MSFlexGrid1.AddItem strGrid, i
i = i + 1
‘通过循环显示表中所有记录
Do While Not ADOrs.EOF
strGrid = ADOrs(“物资编码”) + vbTab + ADOrs(“物资名称”) + vbTab + ADOrs(“计量单位”)
strGrid = strGrid + vbTab + Str(ADOrs(“单价”)) + vbTab + Str(ADOrs(“期初库存”))
strGrid = strGrid + vbTab + Str(ADOrs(“单价”) * ADOrs(“期初库存”))
MSFlexGrid1.AddItem strGrid, i
ADOrs.MoveNext ‘指针下移一条记录
i = i + 1
Loop
MSFlexGrid1.Rows = i + 1
MSFlexGrid1.FixedRows = 1
MSFlexGrid1.FixedCols = 1
End Sub
Private Sub Form_Load()
‘设置查询条件变量的初值
strQuery1 = “”
‘显示物资台账记录
DisplayGrid
End Sub
Private Sub Command1_Click()
‘调用增加记录窗体
FrmAdd台账.Show 1
DisplayGrid
End Sub
Private Sub Command2_Click()
‘删除一条记录
Dim strSQL As String
Dim i As Integer
‘取当前光标所在行
i = MSFlexGrid1.Row
‘取当前行的第0列单元值,即物资编码列
If MSFlexGrid1.TextMatrix(i, 0) = “” Then
MsgBox “请先选择一个记录!”, vbQuestion + vbOKOnly, “信息提示”
Exit Sub
End If
strSQL = “Delete From 物资台账”
strSQL = strSQL + ” Where 物资编码='” + MSFlexGrid1.TextMatr _
ix(i, 0) + “‘”
If MsgBox(“是否要删除?”, vbQuestion + vbOKCancel, “信息提示”) = vbOK Then
ADOcn.Execute strSQL ‘执行删除操作
End If
‘重新显示
DisplayGrid
End Sub
Private Sub Command3_Click()
‘调用修改记录窗体
Dim i As Integer
i = MSFlexGrid1.Row
If MSFlexGrid1.TextMatrix(i, 0) = “” Then
MsgBox “请先选择一个记录!”, vbQuestion + vbOKOnly, “信息提示”
Exit Sub
End If
‘对frmUpdate台账窗体赋值
With frmUpdate台账
.Text1(0) = MSFlexGrid1.TextMatrix(i, 0)
.Text1(1) = MSFlexGrid1.TextMatrix(i, 1)
.Combo1.Text = MSFlexGrid1.TextMatrix(i, 2)
.Text1(2) = MSFlexGrid1.TextMatrix(i, 3)
.Text1(3) = MSFlexGrid1.TextMatrix(i, 4)
.Show 1
End With
‘修改完后重新显示
DisplayGrid
End Sub
Private Sub Command4_Click()
‘调用设置查询条件窗体
FrmQuery查询.Show 1
‘设置完查询条件后重新显示记录
DisplayGrid
End Sub
Private Sub Command5_Click()
‘调用打印报表窗体
Dim ADOrs As New Recordset
ADOrs.ActiveConnection = ADOcn
If strQuery1 <> “” Then
ADOrs.Open “Select * From 物资台账 Where ” + strQuery1 +”Order By 物资编码”
Else
ADOrs.Open “Select * From 物资台账 Order By 物资编码”
End If
‘设置报表窗体的DataSource和DataMember属性
Set frmReport台账.DataSource = ADOrs.DataSource
FrmReport台账.DataMember = ADOrs.DataMember
FrmReport台账.Show 1
End Sub
Private Sub Command6_Click()
‘退出本窗体
Unload Me
End Sub
(4)“frmAdd台账”窗体代码。
Private Sub Command1_Click()
Dim strSQL As String
Dim ADOrs As New Recordset
Set ADOrs.ActiveConnection = ADOcn
‘首先查询主关键字“物资编码”是否重复
ADOrs.Open “Select 物资编码 From 物资台账 Where 物资编码='” + Text1(0) + “‘”
If Not ADOrs.EOF Then
MsgBox “物资编码已存在,请重新输入”, vbQuestion + vbOKOnly, “信息提示”
Exit Sub ‘退出本过程
End If
‘增加一条新记录
strSQL = “Insert Into 物资台账(物资编码,物资名称,计量单位,单价,期初库存) “
strSQL = strSQL + ” Values(‘” + Text1(0) + “‘,'” + Text1(1) + “‘,'” + Combo1.Text + “‘,”
strSQL = strSQL + Text1(2) + “,” + Text1(3) + “)”
ADOcn.Execute strSQL
MsgBox “增加成功,请继续!”, vbQuestion + vbOKOnly, “信息提示”
End Sub
Private Sub Command2_Click()
‘退出本窗体
Unload Me
End Sub
Private Sub Form_Load()
‘赋初值
Text1(0) = “”
Text1(1) = “”
Text1(2) = “0”
Text1(3) = “0”
Combo1.ListIndex = 0
End Sub
Private Sub Text1_Change(Index As Integer)
‘当“单价”和“期初库存”值发生变化时,自动计算“期初金额”
If Index = 2 Or Index = 3 Then
Text1(4) = Trim(Str(Val(Text1(2)) * Val(Text1(3))))
End If
End Sub
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
‘将用户输入的回车键转换为Tab键,使焦点自动下移
If KeyAscii = 13 Then
SendKeys “{Tab}”
End If
‘对于“单价”和“期初库存”文本框只允许输入数字、小数点和退格键
If Index = 2 Or Index = 3 Then
If Not ((Chr(KeyAscii) >= “0” And Chr(KeyAscii) <= “9”) _Or Chr(KeyAscii) = “.” Or KeyAscii = 8) Then
KeyAscii = 0
End If
End If
End Sub
(5)“frmUpdate台账”窗体代码。主要代码是:
Private Sub Command1_Click()
Dim strSQL As String
strSQL = “Update 物资台账 Set 物资名称='” + Text1(1) + “‘,”
strSQL = strSQL + “计量单位='” + Combo1.Text + “‘,”
strSQL = strSQL + “单价=” + Text1(2) + “,”
strSQL = strSQL + “期初库存=” + Text1(3)
strSQL = strSQL + ” Where 物资编码='” + Text1(0) + “‘”
ADOcn.Execute strSQL
Unload Me
End Sub
(6)“frmQuery台账”窗体代码。
Private Sub Command1_Click()
‘拼写查询条件字符串
Dim str1, str2 As String
str1 = “”
str2 = “”
If Text1(0) <> “” Then
str1 = “物资编码” + Combo1.Text + “‘” + Text1(0) + “‘”
End If
If Text1(1) <> “” Then
str1 = “物资名称” + Combo2.Text + “‘” + Text1(1) + “‘”
End If
If str1 = “” And str2 = “” Then
strQuery1 = “”
ElseIf str1 = “” And str2 <> “” Then
strQuery1 = str2
ElseIf str1 <> “” And str2 = “” Then
strQuery1 = str1
Else
strQuery1 = str1 + ” And ” + str2
End If
Unload Me
End Sub
Private Sub Command2_Click()
‘退出本窗体
Unload Me
End Sub
Private Sub Form_Load()
‘对窗体对象赋初值
Combo1.Clear
Combo1.AddItem “=”
Combo1.AddItem “>=”
Combo1.AddItem “>”
Combo1.AddItem “<“
Combo1.AddItem “<=”
Combo1.AddItem “<>”
Combo2.Clear
Combo2.AddItem “=”
Combo2.AddItem “>=”
Combo2.AddItem “>”
Combo2.AddItem “<“
Combo2.AddItem “<=”
Combo2.AddItem “<>”
Text1(0).Text = “”
Text1(1).Text = “”
End Sub
国家开放大学国开学习网i国开历年在线形考任务作业、形成性考核作业、终结性考试、课程考核、专题测验、大作业等学习资料。国家开放大学学习网i国开电大学习网形考任务形成性考核测评作业参考答案电大《VisualBasic程序设计》是国家开放大学的一门课程,i国开国家开放大学电大VisualBasic程序设计第一、二、三、四、五次形考作业参考答案区别国家开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案北京开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案天津开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案河北开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案山西开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案辽宁开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案吉林开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案黑龙江开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案江苏开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案浙江开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案安徽开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案福建开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案江西开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案山东开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案河南开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案湖北开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案湖南开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案广东开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案四川开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案贵州开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案云南开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案陕西开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案甘肃开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案内蒙古开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案西藏开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案宁夏开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案新疆开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案上海开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案重庆开放大学i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学软件行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学汽车行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学纺织行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学煤炭行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学社会工作行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学铸造行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学邮政行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学石油和化工行业学院i国电大《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学保险行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学网络空间安全行业学院i国电大《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学生命健康行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学现代物业服务与不动产管理行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学旅游行业学院i国开电大学习网《VisualBasic程序设计》国开形考作业形考任务一、二、三、四、五参考答案国家开放大学i国开电大学习网金融学形考任务形考作业参考答案、国家开放大学i国开电大学习网会计学形考任务形考作业参考答案、国家开放大学i国开电大学习网工商管理形考任务形考作业参考答案、国家开放大学i国开电大学习网行政管理形考任务形考作业参考答案、国家开放大学i国开电大学习网法学形考任务形考作业参考答案、国家开放大学i国开电大学习网市场营销形考任务形考作业参考答案、国家开放大学i国开电大学习网学前教育形考任务形考作业参考答案、国家开放大学i国开电大学习网汉语言文学形考任务形考作业参考答案、国家开放大学i国开电大学习网小学教育形考任务形考作业参考答案、国家开放大学i国开电大学习网数学与应用数学形考任务形考作业参考答案、国家开放大学i国开电大学习网公共事业管理形考任务形考作业参考答案、国家开放大学i国开电大学习网财务管理形考任务形考作业参考答案、国家开放大学i国开电大学习网土木工程形考任务形考作业参考答案、国家开放大学i国开电大学习网机械设计制造及其自动化形考任务形考作业参考答案、国家开放大学i国开电大学习网护理学形考任务形考作业参考答案、国家开放大学i国开电大学习网水利水电工程形考任务形考作业参考答案、国家开放大学i国开电大学习网计算机科学与技术形考任务形考作业参考答案、国家开放大学i国开电大学习网药学形考任务形考作业参考答案、国家开放大学i国开电大学习网化学工程与工艺形考任务形考作业参考答案、国家开放大学i国开电大学习网人力资源管理形考任务形考作业参考答案、国家开放大学i国开电大学习网电子商务形考任务形考作业参考答案、国家开放大学i国开电大学习网物流管理形考任务形考作业参考答案、国家开放大学i国开电大学习网法律事务(法学)形考任务形考作业参考答案、国家开放大学i国开电大学习网行政管理形考任务形考作业参考答案、国家开放大学i国开电大学习网工商企业管理形考任务形考作业参考答案、国家开放大学i国开电大学习网中文(汉语言文学)形考任务形考作业参考答案、国家开放大学i国开电大学习网小学教育形考任务形考作业参考答案、国家开放大学i国开电大学习网学前教育形考任务形考作业参考答案、国家开放大学i国开电大学习网金融服务与管理(金融管理)形考任务形考作业参考答案、国家开放大学i国开电大学习网大数据与会计(会计)形考任务形考作业参考答案、国家开放大学i国开电大学习网市场营销形考任务形考作业参考答案、国家开放大学i国开电大学习网国际经济与贸易形考任务形考作业参考答案、国家开放大学i国开电大学习网公共事务管理形考任务形考作业参考答案、国家开放大学i国开电大学习网电子商务形考任务形考作业参考答案、国家开放大学i国开电大学习网计算机网络技术形考任务形作业参考答案、国家开放大学i国开电大学习网计算机信息管理形考任务形考作业参考答案、国家开放大学i国开电大学习网机电一体化技术形考任务形考作业参考答案、国家开放大学i国开电大学习网数控技术形考任务形考作业参考答案、国家开放大学i国开电大学习网建设工程管理形考任务形考作业参考答案、国家开放大学i国开电大学习网建筑工程技术形考任务形考作业参考答案、国家开放大学i国开电大学习网道路与桥梁工程技术形考任务形考作业参考答案、国家开放大学i国开电大学习网汽车检测与维修技术形考任务形考作业参考答案、国家开放大学i国开电大学习网水利水电工程智能管理(水利水电工程管理)形考任务形考作业参考答案、国家开放大学i国开电大学习网工程造价形考任务形考作业参考答案、国家开放大学i国开电大学习网酒店管理与数字化运营形考任务形考作业参考答案、国家开放大学i国开电大学习网旅游管理形考任务形考作业参考答案、国家开放大学i国开电大学习网现代物业管理形考任务形考作业参考答案、国家开放大学i国开电大学习网现代物流管理形考任务形考作业参考答案、国家开放大学i国开电大学习网药学形考任务形考作业参考答案、国家开放大学i国开电大学习网护理学形考任务形考作业参考答案、国家开放大学i国开电大学习网传播与策划(广告设计与制作)形考任务形考作业参考答案、国家开放大学i国开电大学习网广告艺术设计形考任务形考作业参考答案、国家开放大学i国开电大学习网数字媒体艺术设计形考任务形考作业参考答案、国家开放大学i国开电大学习网智慧健康养老服务与管理(老年服务与管理)、国家开放大学i国开电大学习网畜牧兽医形考任务形考作业参考答案、国家开放大学i国开电大学习网园艺技术形考任务形考作业参考答案、国家开放大学i国开电大学习网应用化工技术形考任务形考作业参考答案、国家开放大学i国开电大学习网英语(教育方向)形考任务形考作业参考答案、国家开放大学i国开电大学习网大数据技术形考任务形考作业参考答案、国家开放大学i国开电大学习网城市轨道交通运营管理形考任务形考作业参考答案、国家开放大学i国开电大学习网社会工作形考任务形考作业参考答案、国家开放大学i国开电大学习网移动互联应用技术形考任务形考作业参考答案、国家开放大学i国开电大学习网现代农业经济管理形考任务形考作业参考答案、国家开放大学i开电大园林技术形考任务形考作业参考答案、国家开放大学i国开电大学习网眼视光技术形考任务形考作业参考答案、国家开放大学i国开电大学习网林业技术形考任务形考作业参考答案、

评论0