ImageVerifierCode 换一换
格式:DOCX , 页数:94 ,大小:70.15KB ,
资源ID:22087394      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22087394.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(文本框如何显示出小数点前的0比如Word文档格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

文本框如何显示出小数点前的0比如Word文档格式.docx

1、1.25留一位,则1.2=round(1.25) 如果是1.35,则1.4=round(1.35) 奇进偶不进。这样在一大串需要四舍五入的数相加相减相乘时误差小一点。eg:1.25+1.35+1.45+1.55+1.15+1.65=8.4=round(1.25)+round(1.35)+round( ROUND函数符合国家和国际标准,该函数是正确的。原先的四舍五入只是一个简化。在微软的Knowledge Base的文章:“Q194983 PRB: Round Function Different in VBA 6 and Excel Spreadsheet”和微软的Knowledge Base

2、的文章:“Q189847 INFO: New String and Format Functions in Visual Basic 6.0”中都指出Round函数实行Banker舍入,而不是我们习惯的算术舍入(四舍五入)。你可以参考微软的Knowledge Base的文章:“Q196652 HOWTO: Implement Custom Rounding Procedures”,它对于舍入问题有详细的讨论。3、给应用程序添加“日积月累”对话框目前几乎所有的商业软件在启动时都会显示一个“日积月累”对话框,该对话框一般一次显示一条关于该软件的使用技巧,用户也可以逐条浏览其中的所有技巧。 下面是用

3、Visual Basic 5.0实现该功能的方法: 关键是有三个问题要解决:一是技巧信息以何种形式保存;二是如何随机读取;三是如何控制启动是否显示。 解决第一个问题,有两种思路:一是将技巧信息保存在一个文本文件中,一行保存一条技巧,然后使用VB的文件读写命令进行读取;另一种解决办法是使用VB自带的Access数据库,将技巧信息保存在数据库的一个表中,然后从中读取信息。本文采用第二种方法来保存技巧信息。 第二个问题比较容易解决,我们可以通过VB的随机数函数产生随机数作为要读取的技巧号,然后用数据库对象的Move方法定位到该技巧上,并用Field属性将之显示出来。 最后一个问题的解决也有两种思路:

4、一是利用一个单独的文件保存一个标记,每次启动时首先检查该标记,然后根据标记的值决定是否显示“日积月累”对话框;另 一个思路就更富技巧性,我们可以利用Win95的系统注册表,在注册表中建立一个应用程序项目,在其中保存是否显示的标记,每次启动时首先检查该标记,当 用户单击“检查框按钮”时,也只需简单地修改该标记的值即可,而所有这些操作,都可简单地通过VB中关于系统注册表的几条命令来实现。本文采用第二种办法 来实现,大家可以顺便从中学到用VB访问系统注册表的方法。 1.建立窗体 在应用程序的工程中添加一个标准窗体,在其中放置一个PictureBox、 一个CheckBox、两个Label和三个Com

5、mandButton,这些控件的相关属性设置 见下表。 2.建立技巧数据库 用VB的“可视化数据管理器”生成一个名为“MyMdb”的Access数据库(如果应用程序本身已经有现成的数据库,则可以直接利用它,名字也不需要变),在数据库 中新建一个表,表名为“Tips”,该表只包含一个可变长度的Text型的字段,字段名为Tip,长度可根据具体情况而定,这里设为50。表建好后,在其 中输入若干条记录(在Win95目录中有一个,其中有很多技巧信息,可从中挑选一些,自己再另加一些与应用程序有关的操作要诀形成自己的 技巧数据库)。具体代码略。 3.几点说明 (1)GetSetting和SaveSettin

6、g的用法 这两条命令(函数)是VB与系统注册表交互的关键命令,其中GetSetting从注册表的应用程序项目中返回注册表项设置值,SaveSetting在注册表中建立应用程序项目或保存设置值,其具体用法可查找VB的联机帮助。 (2)应当在卸载应用程序时将注册表中的信息删除 由于“日积月累”对话框在注册表中添加了一些内容,因此在卸载应用程序时应当礼貌地将这些信息删除,删除的方法是利用VB提供的另一条关于注册表的命令DeleteSetting。 (3)在应用程序菜单中可以访问“日积月累”对话框 除了在应用程序启动时显示“日积月累”对话框外,还应该允许用户通过菜单激活该对话框,方法实在是再简单不过了

7、,只需在菜单中增加一项“日积月累”,使其打开frmTip窗体即可。 (4)随机整数的产生 VB中关于随机数的语句有两个,一是Randomize,另一个是Rnd,前者根据系统时间产生随机数种子 ,后者产生0到1之间的随机小数。为了生成某个范围内的随机整数,可使用以下公式: Int(upperbound lowerbound 1) Rnd lowerbound) 这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限,如本例中使用Int(RecCount Rnd) 1)取得了从1到记录总数之间的随机整数。 (5)及时关闭数据库 使用完数据库后,应当及时使用s

8、et命令关闭数据库和记录集,以释放它们所占的内存空间。4、请教如何在1到100个数中产生50个随机数?Private Sub Command1_Click()Dim i As Integer, j As Integer, a(1 To 50) As IntegerRandomizeFor i = 1 To 50a(i) = Int(Rnd * 100) + 1For j = 1 To i - 1If a(i) = a(j) Thenj = i - 1i = i - 1End IfNextem Str(a(i)End Sub5、Visual Basic 的数据库编程(推荐)Visual Basi

9、c作为应用程序的开发“利器”也表现在数据库应用程序的开发上,它良好的界面和强大的控件功能使数据库编程变得简单多了。但即便如此,数据库应用 程序的开发仍然算得上是VB编程中的难点,这是因为你不仅要熟悉VB中关于数据库编程方面的知识(当然这是十分简单的)还要了解数据库的知识。所以我们先 介绍一下数据库的基本知识,算是学习数据库编程前的热身运动吧!一、热身运动首先需要声明是,我们这里介绍的数据库知识都是指的关系数据库。所谓关系数据库就是将数据表示为表的集合,通过建立简单表之间的关系来定义结构的一种数据库。不管表在数据库文件中的物理存储方式如何,它都可以看作一组行和列,与电子表格的行和列类似。在关系数

10、据库中,行被称为记录,而列则被称为字段。下面是一个客户表的例子。表1 客户表 客户号 姓名 地址 城市 街道 邮编 1723 Doe John 1234 Ffth Avenue New York NY 1004 3391 Smith Mary 9876 Myrtle Lavee Bosten MA 6078 3765 Blasel Mortimer 2296j River Road peoria IL 7011 此表中每一行是一个记录,它包含了特定客户的所有信息,而每个记录则包含了相同类型和数量的字段:客户号、姓名等等。表 是一种按行与列排列的相关信息的逻辑组,类似于工作单表。字段 数据库表中

11、的每一列称作一个字段。表是由其包含的各种字段定义的,每个字段描述了它所含有的数据。创建一个数据库时,须为每个字段分配一个数据类型、最大长度和其它属性。字段可包含各种字符、数字甚至图形。记录 各个客户有关的信息存放在表的行,被称为记录。一般来说,数据库表创建时任意两个记录都不能相同。键 键就是表中的某个字段(或多个字段),它(们)为快速检索而被索引。键可以是唯一的,也可以是非唯一的,取决于它(们)是否允许重复。唯一键可以指定为主 键,用来唯一标识表的每行。例如,在前面的例子中,客户标识号 (客户号) 是表的主键,因为客户号唯一地标识了一个客户。关系 数据库可以由多个表组成,表与表之间可以以不同的

12、方式相互关联。例如,客户数据库还可以有一个包含某个客户的所有定单的表。它只用“客户号”字段来引用该定单的客户,而不在定单表中的每项重复所有客户信息,如下表所示:表2 定货表定货 客户号 日期 内容 数量 14764 3391 2/23/94 27 $22.95 14932 3391 3/17/94 46 $9.57 15108 8765 2/15/96 27 $22.95 在这个表中,客户号字段引用了客户表中的 客户号字段,从而把定单和客户联系起来了。可以看到,客户 3391 (Mary Smith) 在 94 年 2 月 23 日订购了 27 项,在 94 年 3 月 17 日订购了 46

13、项。用来建立关系的键叫做外部键,因为它与“外部”表(客户表)的主键关联。一对多和多对多关系 上表中的关系类型叫做一对多关系,因为一个客户可以发出多个定单,而某个特定的定单只能是一个客户所发。也可以建立多对多的关系。例如,列出所有可以销售的项(存货)的盘存表:表3 盘存表内容 描述 供应商 费用 盘存 27 Straw Hat Garden Supply Co. $14.00 50 46 Garden gloves Garden Supply Co. $4.50 75 102 hanging floral industries $6.00 137 从盘存表中,可以看到在客户和存货项之间存在多对多

14、的关系。也就是说,一个客户可以订购多个存货项,而一个存货项又能够被多个客户订购。多对多关系是 通过两个独立的一对多关系来定义的,公共的“多”表包含了两个其它表的外部键。在该例中,定货s 表与 盘存 表(通过 “内容”)与 Customer 表(通过 客户号)都相关联。通过这三个表,我们可以看到,Mary Smith (客户号 3391) 订购了 Straw Hat (“内容” 27) 和Garden Gloves (“内容” 46),而 Mary Smith (客户号 3391) 和 Mortimer Blaselflatz (客户号 8765) 都订购了Straw Hat (“内容” 27)

15、。如果把客户表和盘存表的相关字段与 定货表的“定货”字段联结起来,建立一个“关联”表,那么这个关系就更清楚了。表4 关联表:按客户号和内容排序定货号 客户号 姓名 内容 描述 14764 33391 Smith Mary 27 Straw Hat 14932 33391 Smith Mary 46 Garden Gloves 15168 8765 Blaselfatz Mortimer 27 Straw Hat 规范化 数据库设计者的任务就是组织数据,而组织数据的方法,应能消除不必要的重复,并为所有必要信息提供快速查找路径。为了达到这种目标而把信息分离到各种独立的表中去的过程,叫作规范化。规范

16、化是用许多指定的规则和不同级别的范式来进行规范的复杂过程。该过程的研讨已超出了本文的范围。但是,大多数简单数据库的规范化可以用下面简单的经验规则来完成:包含重复信息的表必须分成独立的几个表来消除重复。例如,使学生和课程对应的学生数据库,包含了下表所示的信息。表5学生 课程 描述 教授 1 4 Introduction to Physiology Dawson 2 3 Applied Basketweaing Carruth 3 1 Physics for Short-定货 cooks Adms 4 2 Introduction to Physiology Dawsons 如果有选学了十二门课程

17、的 1000 个学生,每门课程的说明和教师将显示100多次 对选了那门课程的每个学生都要重复一次。要避免这种低效率,应当把表分成两个独立的表来规范化,一个用来表示学生,另一个用来表示课程,如表6,表7所示。学生 课程 1 4 2 3 3 1 4 4 课程 描述 教授 1 Physics for Short-定货 cooks Adms 2 Counterculture Sociology Beckely 3 Applied Basketweaing Carruth 4 Introduction to Physiology Dawsons 表表现在表被规范化了,所以,要改变特定课程的课程描述或“数

18、据”,只要改变一个记录就可以了。以上是关于数据库的基本知识,这是学习数据库编程所必须的。虽然数据库技术作为一门学科,其深度和广度不是这点篇幅能描述的,但作为入门和简单数据库编程应该是足够了。好了,下面我们就可以开始练练了。我们经常遇到数据库系统是登记系统,不管你是在单位,或是参加什么组织,登记是免不了的,而且它的结构比较简单,我们就以一个登记系统为例吧。分析一下该系统所涉及到的数据。二、磨刀不误砍柴功对于登记,要跟踪的信息包括: 姓名 性别籍贯 年龄 出生年月 单位地址 邮政编码电话 传真当然,可以简单地创建一个表,使得上述的每个数据项对应一个字段。现在需要给表指派主键,用以唯一标识每一条记录

19、,在登记表中分别添加登记号作为唯一键,这样就保证数据库中的任两条记录都不同了。对数据库作出以上分析后,我们就可以开始建立数据库了。三、建营扎寨在这里我们学习怎样建立数据库,首先需要确定要建立数据库的类型。在Visual Basic中通过数据访问控件或数据访问对象(DAO)可以访问下列数据库:1 JET数据库,即Microsoft Access2 ISAM数据库,如:dBase,FoxPro等3 ODBC数据库,凡是遵循ODBC标准的客户/服务器数据库。如:Microsoft SQL Server、Oracle一般来说,如果要开发个人的小型数据库系统,用Access数据库比较合适,要开发大、中型

20、的数据库系统用ODBC数据库更为适宜。而dBase和 FoxPro数据库由于已经过时,除非特别的情况,否则不要使用。在我们的例子中,当然选用Access数据库了。建立Access数据库有两种方法:一 是在Microsoft Access中建立数据库。点击“新建”按钮就可以建立新的表了(如图1)。这里我们主要介绍第二种方法:使用可视化数据管理器,不需要编程就可创建数据 库。可视化数据管理器是一个非常有用的应用程序,它是VB企业版和专业版附带的,在目录.DevStudiovbsamples Visdata下,其界面如下图。点击菜单“文件”项下“新建”子项“Microsoft ACCESS”子项的“

21、版本7.0 MDB”项。在弹出窗口中输入新建数据库的名称“登记”,出现下面图3所示窗口:要生成新的表,右键单击数据库窗口弹出菜单,然后选择“新表”命令,在随后出现的“表结构”对话框中建立所要的字段。每次向表中加入新的字段,单击“增加字段”按钮,会出现图4 的“增加字段”对话框。“增加字段”对话框中的选项如表10所示,根据字段的类型,有些选项是无效的,无法读取。在我们建立的登记数据库中,各个字段的类型如表11。要注意的是,由于字段登记号用来唯一标志记录的,因此,它不能由用户输入。所以在定义该字段时需要定义为Long数据类型,“自动生成字段”项有效,并选中这一项。这样当用户每输入一条新记录时,系统

22、就会在该字段上自动输入一个与其它记录不同的值。在ACCESS数据库中,关键字是用索引实现的,作为编程人员在对表类型的记录集编程时,只需调用索引名。在查询时,Rushmore技术自动用索引信息优化查询。完成表定义后,点击“增加索引”按钮,弹出如图5所示窗口。在窗口中右边有三个选项,其意义如表 12。添加索引对话框选项完成之后如图6。当然,学会数据库的建立也并非一朝一夕的事,读者不妨多练习一下。下面你就可以运行VB开始我们的编程了。四、千里相会Visual Basic 数据库应用程序有三个部分,如图7所示。用户程序是程序员开发的,也是我们即将用VB来编写的部分。数据库引擎是数据库驱动程序,使用它程

23、序员可以用统一的格式访问各种数据库,不管这个数据 库是本地的 Visual Basic 数据库,还是所支持的其它任何格式的数据库格式,所使用的数据访问对象和编程技术都是相同的。数据库则是我们上面完成的部分。从这个结构可以看出用户与正 在访问的特定数据库无关。那我们在用VB编写数据库程序时,就需要使程序能够访问指定的数据库。如果是简单的数据库应用,可以使用 Data 控件来执行大部分数据访问操作,而根本不用编写代码。与 Data 控件相捆绑的控件自动显示来自当前记录的一个或多个字段的数据。DATA数据控件属性CONNECT属性 指定打开的数据库类型,并且包括参数,如用户和口令等。例如:打开Acc

24、ess数据库(缺省)CONNECT=“ACCESS”打开ODBC数据库CONNECT=“ODBC;DATABASE=?;UID=?PWD=?DSN=?”DATABASENAME属性 确定数据控件访问哪一个数据库。对于多表数据库它为具体的数据库文件名,例如:ACCESS数据库DATABASENAME=“D:.对于单表数据库它为具体的数据库文件所在的目录,而具体文件名放在RECORDSOURCE属性中,例如:访问FOXPRO数据库文件D:FOXDATABASENAME=“D:FOX”RECORDSOURCE=“DEMO”不带文件扩展名RECORDSOURCE属性确定数据控件的记录集,即:所要访问的

25、数据内容。它可以是一个表名、存储查询名或SQL语句。访问Register表所有数据 :RECORDSOURCE=“Register”访问RC表中1973年以前出生的数据:RECORDSOURCE=“SELECT *FROM Register WHERE BIRTHDAY#1/1/1973#注意:当我们在运行时修改了该属性后,需要调用REFRESH方法刷新记录集。方法REFRESH方法 当我们在运行时修改了Record-Source属性后,需要调用该方法刷新记录集。UPDATERECORD方法 将绑定在数据控件上的控件的数据写入数据库中。即:当我们修改了数据后调用该方法确定修改。CANCELUP

26、DATE方法 将数据库中的数据重新读到绑定在数据控件上的控件中。当我们修改了数据后调用该方法放弃修改。事件VALIDATE事件 当我们移动记录集记录指针时发生。我们将记录集记录指针从A移动到记录B时当产生VALIDATE事件时,记录指针仍在记录A上。Sub XXXX_Validate(Action As integer,Save As integer)其中:Action 指出如何产生了该事件,如:移动,增加,查询等。Save 表示是否保存已修改的数据。当我们修改了绑定在数据控件的数据,又没有UPDATERECORD,则移动指针时,Save=True。如果在事件中令Save=False,则放弃修

27、改。Sub XXXX_Validate(Action As integer,Save As integer)If Save thenI= MsgBox(Dada changed,Save?,vbYesNo)If I = vbNo thenSave = FalseEnd ifEndifReposition事件 当我们移动记录集指针时发生。我们将记录集记录指针从A移动到记录B 时,当产生Reposition事件时,记录指针已移动到B上。通常我们在该事件中显示当前的指针位置。Sub XXXX_Reposition()on=?utePosition + 1了解了DATA控件之后我们就可以连接数据库了。

28、现在我们可以编写一个应用程序。因为虽然我们建立了Register数据库,但是数据库中却没有数据,我们程序的目的就是向数据库中输入数据。它的运行情况如图8。各个文本框正好对应着表Register的各个字段,在文本框中输入数据,点击“增加”按钮,就完成了一条记录的输入。我们看一下,DATA控件是怎样和数据库连接起来的,各个文本框又是怎样和DATA控件捆绑起来的。在DATA控件的CONNECT属性中,选中“ACCESS”项,在DatabaseName属性中,输入“C:TEMP登记.mdb”,在 RecordSource属性中,选中“Register”,这样就完成了数据库与DATA控件的连接,也就是完

29、成了与应用程序的连接。数据库中各个字段又是怎样和文本框连接起来的呢?在VB中,我们可以将普通控件绑定在数据控件上,来完成自动地显示、更新记录集的数据。常用的可绑定 的控件有:Label,Text,checkBox,Image等。通过设置这些控件的DataSource和DataField属性来完成绑定。DataSource 属性 表示绑定到哪一个数据控件上,程序中我们可能使用多个数据控件。DataField 属性 表示绑定到记录集的哪一个记录上。现在我们需要把Text1与表“登记”中的姓名字段连接起来。完成DATA控件的连接之后,在Text1控件的DataSource属性中,选中 “Data1”,在DataField属性中,选中“姓名”值。用同样的方法,将各个文本框分别绑定到对应的字段上,就完成了文本框的捆绑。下面我们编写两个按钮命令,完成其相应的操作了。喂!别着急,还有一个重要的对象没讲呢!当应用程序启动时,Data 控件被自动地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1