前言-----本人也是刚刚接触VB,企业的VB代码基本能看的懂,但是自己开发,只能呵呵。一般在刚学习一门新的语言时,很容易发生一些自己相当然的认识错误,so,记下并分享开发学习的过程,望指正。-----------世界因分享而精彩,安卓因开源更强大。
不知道是否有人和我一样,看不下去那些VB的书籍,既然这样,不如就在项目中学习,我在学习java的时候做的第一个项目就是---fuck的学生信息管理系统,屁话说了一大堆,直接开始。
首先对这个little的project进行一下分析,就很不正式的直接意淫一下大概是什么样子的了,(一般正规的公司都要做一大堆的图啊,表啊的什么的,一个案子的60%的时间就这么烧了)。
功能模块划分
- 登录注册(IndexForm) 共分实现四个阶段 :1.比对字符串,字符串层次上的实现(一个人) 。 2.比对对象,对象层次的实现(一个人)。3 数组,集合,列表层次的实现(多个人)。4.数据库层次上的实现(多个人),连接oracle和Access数据库。
- 显示及增删改查(Mainform)。显示学生的基本信息,实现学生信息数据的基本维护。
一个基本简单的Excel级别的管理系统就是这样了。在开始代码之前要解决以下一些问题。
问题一:VB代码的文件是什么样子的。
一般情况会有以下一些文件的产生,正常的话至少是3个。
首先.vbp .vbw .frm是必须的,其中.vbp保存的是版本版权等信息,.vbw保存的是离开工程时的一些信息,.frm中保存的窗体代码,一般当它还没修炼成.exe文件是,要想运行都是要运行.vbp文件的。那个黑色箭头的.scc文件是只有外接团队协同软件VSS的时候才会生成。.cls是class module的产物,.bas是module的产物,其他的.pag是属性文件的后缀,.ctl是用户控制文件的后缀。是不是很烦,java中就只有.java和.class文件。
问题二:VB中怎么去调试程序。
老师傅在我进公司的第一天告诉我的,F8 单步执行,正常的按F8,会直接到达程序的入口。shift+F8,不会进入函数方法直接得到返回值。F5全速前进,一般配合断点使用,直接在循环的结束位置设断点,然后全速。
VB中好像没有控制台输出,我找了很久,试了很多也没能在控制台输出,有人知道的,赐教一下,就像就java中System.out.println和c#中的Console.WriteLine()。我的解决方案是打开''立即"窗口,?+“从代码中复制的变量”+enter,会输出值。
立即窗口在“视图”下面的‘立即’,快捷键是ctrl+G。最low的方法就是鼠标点到变量上去。
问题三:文件夹架构是怎样的。
在我不知道什么spring,mybits等等这些被业界吹得神乎其神的javaEE框架时,我总感觉这些框架好屌,等我真正掌握这些框架时,它给我的感觉就是文件夹和配置文件也就是XML的装X而已,当然这是我的戏谑之言,框架还是很屌的。相比而言VB中的文件夹好像被限定死了,这让我很不习惯。虽然有三层架构也就是模型--控制器--视图的文件分法,但是在实际的项目中文件怎么分还是我自己说了算,但是VB中,好像变了,只有个命名权。
只能在project下面点击添加这些东西,其中三个非常重要的就是form,module,和class module。很自然就有了问题四。
问题四:module和class module的区别以及这2者里面的标准是怎么定义的,比如javaBean是有很严格的格式的,包括属性的权限,空参构造,有参构造,set/get函数等。
大概的意思就是module中定义的对象不可实例化,class module中定义的可以实例化,还有作用域的区别。还有就是module中存放的一些公用的Sub(方法)和函数(function)。而类中存放的大概就是标准的类吧!
先看2个标准的module和class module的例子,看看其中定义了一些什么,以及是怎么定义的,具体的区别我将在自己实际定义的时候,去尝试总结。
module:
1 Public fMainForm As frmMain
2 Private IsConnect As Boolean ' 标记数据库是否连接
3
4 Private cnn As ADODB.Connection '连接数据库的Connection对象
5 Private rs As ADODB.Recordset '保存结果集的Recordset对象
6 Public strSQL As String '保存执行SQL语句的字符串
7 Public Conn As String '连接字符串
8 Public MyUser As New clsUser '用户对象
9 Public CurUser As New clsUser '当前用户对象
10 Public strDB As String '数据库名称
11 Public Pension_Rate As Single '养老保险交费比例
12 Public Medi_Rate As Single '医疗保险交费比例
13 Public Tax_Start As Currency '个税起征点
14 Sub Main()
15 Dim fLogin As New frmLogin
16 strDB = "\DATA\工资.mdb"
17 Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
18 App.Path + strDB + ";Persist Security Info=False"
19
20 fLogin.Show vbModal
21 If Not fLogin.OK Then
22 '登录失败,退出应用程序
23 End
24 End If
25 Unload fLogin
26 frmSplash.Show
27 frmSplash.Refresh
28 Set fMainForm = New frmMain
29 Load fMainForm
30 Unload frmSplash
31 fMainForm.Show
32 End Sub
33
34 Public Sub Connect() '连接数据库
35 If IsConnect = True Then '如果连接标记为真,则返回。否则会出错
36 Exit Sub
37 End If
38 Set cnn = New ADODB.Connection '关键New用于创建新对象cnn
39 cnn.ConnectionStr