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

上传人:b****7 文档编号:22087394 上传时间:2023-02-02 格式:DOCX 页数:94 大小:70.15KB
下载 相关 举报
文本框如何显示出小数点前的0比如Word文档格式.docx_第1页
第1页 / 共94页
文本框如何显示出小数点前的0比如Word文档格式.docx_第2页
第2页 / 共94页
文本框如何显示出小数点前的0比如Word文档格式.docx_第3页
第3页 / 共94页
文本框如何显示出小数点前的0比如Word文档格式.docx_第4页
第4页 / 共94页
文本框如何显示出小数点前的0比如Word文档格式.docx_第5页
第5页 / 共94页
点击查看更多>>
下载资源
资源描述

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

《文本框如何显示出小数点前的0比如Word文档格式.docx》由会员分享,可在线阅读,更多相关《文本框如何显示出小数点前的0比如Word文档格式.docx(94页珍藏版)》请在冰豆网上搜索。

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

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函数符合国家和国际标准,该函数是正确的。

原先的四舍五入只是一个简化。

在微软的KnowledgeBase的文章:

“Q194983PRB:

RoundFunctionDifferentinVBA6andExcelSpreadsheet”和微软的KnowledgeBase的文章:

“Q189847INFO:

NewStringandFormatFunctionsinVisualBasic6.0”中都指出Round函数实行Banker舍入,而不是我们习惯的算术舍入(四舍五入)。

你可以参考微软的KnowledgeBase的文章:

“Q196652HOWTO:

ImplementCustomRoundingProcedures”,它对于舍入问题有详细的讨论。

3、给应用程序添加“日积月累”对话框

目前几乎所有的商业软件在启动时都会显示一个“日积月累”对话框,该对话框一般一次显示一条关于该软件的使用技巧,用户也可以逐条浏览其中的所有技巧。

  下面是用VisualBasic5.0实现该功能的方法:

  关键是有三个问题要解决:

一是技巧信息以何种形式保存;

二是如何随机读取;

三是如何控制启动是否显示。

  解决第一个问题,有两种思路:

一是将技巧信息保存在一个文本文件中,一行保存一条技巧,然后使用VB的文件读写命令进行读取;

另一种解决办法是使用VB自带的Access数据库,将技巧信息保存在数据库的一个表中,然后从中读取信息。

本文采用第二种方法来保存技巧信息。

  第二个问题比较容易解决,我们可以通过VB的随机数函数产生随机数作为要读取的技巧号,然后用数据库对象的Move方法定位到该技巧上,并用Field属性将之显示出来。

  最后一个问题的解决也有两种思路:

一是利用一个单独的文件保存一个标记,每次启动时首先检查该标记,然后根据标记的值决定是否显示“日积月累”对话框;

另一个思路就更富技巧性,我们可以利用Win95的系统注册表,在注册表中建立一个应用程序项目,在其中保存是否显示的标记,每次启动时首先检查该标记,当用户单击“检查框按钮”时,也只需简单地修改该标记的值即可,而所有这些操作,都可简单地通过VB中关于系统注册表的几条命令来实现。

本文采用第二种办法来实现,大家可以顺便从中学到用VB访问系统注册表的方法。

  1.建立窗体

  在应用程序的工程中添加一个标准窗体,在其中放置一个PictureBox、

一个CheckBox、两个Label和三个CommandButton,这些控件的相关属性设置

见下表。

  2.建立技巧数据库

  用VB的“可视化数据管理器”生成一个名为“MyMdb”的Access数据库(如果应用程序本身已经有现成的数据库,则可以直接利用它,名字也不需要变),在数据库中新建一个表,表名为“Tips”,该表只包含一个可变长度的Text型的字段,字段名为Tip,长度可根据具体情况而定,这里设为50。

表建好后,在其中输入若干条记录(在Win95目录中有一个,其中有很多技巧信息,可从中挑选一些,自己再另加一些与应用程序有关的操作要诀形成自己的技巧数据库)。

具体代码略。

  3.几点说明

  

(1)GetSetting和SaveSetting的用法

  这两条命令(函数)是VB与系统注册表交互的关键命令,其中GetSetting从注册表的应用程序项目中返回注册表项设置值,SaveSetting在注册表中建立应用程序项目或保存设置值,其具体用法可查找VB的联机帮助。

  

(2)应当在卸载应用程序时将注册表中的信息删除

  由于“日积月累”对话框在注册表中添加了一些内容,因此在卸载应用程序时应当礼貌地将这些信息删除,删除的方法是利用VB提供的另一条关于注册表的命令DeleteSetting。

  (3)在应用程序菜单中可以访问“日积月累”对话框

  除了在应用程序启动时显示“日积月累”对话框外,还应该允许用户通过菜单激活该对话框,方法实在是再简单不过了,只需在菜单中增加一项“日积月累”,使其打开frmTip窗体即可。

  (4)随机整数的产生

  VB中关于随机数的语句有两个,一是Randomize,另一个是Rnd,前者根据系统时间产生随机数种子,后者产生0到1之间的随机小数。

为了生成某个范围内的随机整数,可使用以下公式:

  Int((upperbound-lowerbound+1)*Rnd+lowerbound)

  这里,upperbound是随机数范围的上限,而lowerbound则是随机数范围的下限,如本例中使用Int((RecCount*Rnd)+1)取得了从1到记录总数之间的随机整数。

  (5)及时关闭数据库

  使用完数据库后,应当及时使用set命令关闭数据库和记录集,以释放它们所占的内存空间。

4、请教如何在1到100个数中产生50个随机数?

PrivateSubCommand1_Click()

DimiAsInteger,jAsInteger,a(1To50)AsInteger

Randomize

Fori=1To50

a(i)=Int(Rnd*100)+1

Forj=1Toi-1

Ifa(i)=a(j)Then

j=i-1

i=i-1

EndIf

Next

emStr(a(i))

EndSub

5、VisualBasic的数据库编程(推荐)

VisualBasic作为应用程序的开发“利器”也表现在数据库应用程序的开发上,它良好的界面和强大的控件功能使数据库编程变得简单多了。

但即便如此,数据库应用程序的开发仍然算得上是VB编程中的难点,这是因为你不仅要熟悉VB中关于数据库编程方面的知识(当然这是十分简单的)还要了解数据库的知识。

所以我们先介绍一下数据库的基本知识,算是学习数据库编程前的热身运动吧!

一、热身运动

  首先需要声明是,我们这里介绍的数据库知识都是指的关系数据库。

所谓关系数据库就是将数据表示为表的集合,通过建立简单表之间的关系来定义结构的一种数据库。

  不管表在数据库文件中的物理存储方式如何,它都可以看作一组行和列,与电子表格的行和列类似。

在关系数据库中,行被称为记录,而列则被称为字段。

下面是一个客户表的例子。

  表1客户表

客户号姓名地址城市街道邮编

1723DoeJohn1234FfthAvenueNewYorkNY1004

3391SmithMary9876MyrtleLaveeBostenMA6078

3765BlaselMortimer2296jRiverRoadpeoriaIL7011

  此表中每一行是一个记录,它包含了特定客户的所有信息,而每个记录则包含了相同类型和数量的字段:

客户号、姓名等等。

  表是一种按行与列排列的相关信息的逻辑组,类似于工作单表。

  字段数据库表中的每一列称作一个字段。

表是由其包含的各种字段定义的,每个字段描述了它所含有的数据。

创建一个数据库时,须为每个字段分配一个数据类型、最大长度和其它属性。

字段可包含各种字符、数字甚至图形。

  记录各个客户有关的信息存放在表的行,被称为记录。

一般来说,数据库表创建时任意两个记录都不能相同。

  键键就是表中的某个字段(或多个字段),它(们)为快速检索而被索引。

键可以是唯一的,也可以是非唯一的,取决于它(们)是否允许重复。

唯一键可以指定为主键,用来唯一标识表的每行。

例如,在前面的例子中,客户标识号(客户号)是表的主键,因为客户号唯一地标识了一个客户。

  关系数据库可以由多个表组成,表与表之间可以以不同的方式相互关联。

例如,客户数据库还可以有一个包含某个客户的所有定单的表。

它只用“客户号”字段来引用该定单的客户,而不在定单表中的每项重复所有客户信息,如下表所示:

  表2定货表

定货客户号日期内容数量

1476433912/23/9427$22.95

1493233913/17/9446$9.57

1510887652/15/9627$22.95

  在这个表中,客户号字段引用了客户表中的客户号字段,从而把定单和客户联系起来了。

可以看到,客户3391(MarySmith)在94年2月23日订购了27项,在94年3月17日订购了46项。

用来建立关系的键叫做外部键,因为它与“外部”表(客户表)的主键关联。

  一对多和多对多关系上表中的关系类型叫做一对多关系,因为一个客户可以发出多个定单,而某个特定的定单只能是一个客户所发。

也可以建立多对多的关系。

例如,列出所有可以销售的项(存货)的盘存表:

表3盘存表

内容描述供应商费用盘存

27StrawHatGardenSupplyCo.$14.0050

46GardenglovesGardenSupplyCo.$4.5075

102hangingfloralindustries$6.00137

  从盘存表中,可以看到在客户和存货项之间存在多对多的关系。

也就是说,一个客户可以订购多个存货项,而一个存货项又能够被多个客户订购。

多对多关系是通过两个独立的一对多关系来定义的,公共的“多”表包含了两个其它表的外部键。

在该例中,定货s表与盘存表(通过“内容”)与Customer表(通过客户号)都相关联。

通过这三个表,我们可以看到,MarySmith(客户号3391)订购了StrawHat(“内容”27)和GardenGloves(“内容”46),而MarySmith(客户号3391)和MortimerBlaselflatz(客户号8765)都订购了StrawHat(“内容”27)。

如果把客户表和盘存表的相关字段与定货表的“定货”字段联结起来,建立一个“关联”表,那么这个关系就更清楚了。

表4关联表:

按客户号和内容排序

定货号客户号姓名内容描述

1476433391SmithMary27StrawHat

1493233391SmithMary46GardenGloves

151688765BlaselfatzMortimer27StrawHat

  规范化数据库设计者的任务就是组织数据,而组织数据的方法,应能消除不必要的重复,并为所有必要信息提供快速查找路径。

为了达到这种目标而把信息分离到各种独立的表中去的过程,叫作规范化。

  规范化是用许多指定的规则和不同级别的范式来进行规范的复杂过程。

该过程的研讨已超出了本文的范围。

但是,大多数简单数据库的规范化可以用下面简单的经验规则来完成:

包含重复信息的表必须分成独立的几个表来消除重复。

  例如,使学生和课程对应的学生数据库,包含了下表所示的信息。

表5

学生课程描述教授

14IntroductiontoPhysiologyDawson

23AppliedBasketweaingCarruth

31PhysicsforShort-定货cooksAdms

42IntroductiontoPhysiologyDawsons

  如果有选学了十二门课程的1000个学生,每门课程的说明和教师将显示100多次─对选了那门课程的每个学生都要重复一次。

要避免这种低效率,应当把表分成两个独立的表来规范化,一个用来表示学生,另一个用来表示课程,如表6,表7所示。

学生课程

14

23

31

44

课程描述教授

1PhysicsforShort-定货cooksAdms

2CountercultureSociologyBeckely

3AppliedBasketweaingCarruth

4IntroductiontoPhysiologyDawsons

表6

表7

  现在表被规范化了,所以,要改变特定课程的课程描述或“数据”,只要改变一个记录就可以了。

以上是关于数据库的基本知识,这是学习数据库编程所必须的。

虽然数据库技术作为一门学科,其深度和广度不是这点篇幅能描述的,但作为入门和简单数据库编程应该是足够了。

  好了,下面我们就可以开始练练了。

我们经常遇到数据库系统是登记系统,不管你是在单位,或是参加什么组织,登记是免不了的,而且它的结构比较简单,我们就以一个登记系统为例吧。

分析一下该系统所涉及到的数据。

二、磨刀不误砍柴功

  对于登记,要跟踪的信息包括:

●  

姓名  ● 

性别

● 

籍贯  ● 

年龄

 出生年月● 

单位

 地址  ● 

邮政编码

电话  ● 

传真

  当然,可以简单地创建一个表,使得上述的每个数据项对应一个字段。

  现在需要给表指派主键,用以唯一标识每一条记录,在登记表中分别添加登记号作为唯一键,这样就保证数据库中的任两条记录都不同了。

  对数据库作出以上分析后,我们就可以开始建立数据库了。

三、建营扎寨

  在这里我们学习怎样建立数据库,首先需要确定要建立数据库的类型。

在VisualBasic中通过数据访问控件或数据访问对象(DAO)可以访问下列数据库:

  1.JET数据库,即MicrosoftAccess

  2.ISAM数据库,如:

dBase,FoxPro等

  3.ODBC数据库,凡是遵循ODBC标准的客户/服务器数据库。

如:

MicrosoftSQLServer、Oracle

  一般来说,如果要开发个人的小型数据库系统,用Access数据库比较合适,要开发大、中型的数据库系统用ODBC数据库更为适宜。

而dBase和FoxPro数据库由于已经过时,除非特别的情况,否则不要使用。

在我们的例子中,当然选用Access数据库了。

建立Access数据库有两种方法:

一是在MicrosoftAccess中建立数据库。

点击“新建”按钮就可以建立新的表了(如图1)。

这里我们主要介绍第二种方法:

使用可视化数据管理器,不需要编程就可创建数据库。

可视化数据管理器是一个非常有用的应用程序,它是VB企业版和专业版附带的,在目录\..\DevStudio\vb\samples\Visdata下,其界面如下图。

  点击菜单“文件”项下“新建”子项“MicrosoftACCESS”子项的“版本7.0MDB”项。

在弹出窗口中输入新建数据库的名称“登记”,出现下面图3所示窗口:

  要生成新的表,右键单击数据库窗口弹出菜单,然后选择“新表”命令,在随后出现的“表结构”对话框中建立所要的字段。

每次向表中加入新的字段,单击“增加字段”按钮,会出现图4的“增加字段”对话框。

  “增加字段”对话框中的选项如表10所示,根据字段的类型,有些选项是无效的,无法读取。

在我们建立的登记数据库中,各个字段的类型如表11。

  要注意的是,由于字段登记号用来唯一标志记录的,因此,它不能由用户输入。

所以在定义该字段时需要定义为Long数据类型,“自动生成字段”项有效,并选中这一项。

这样当用户每输入一条新记录时,系统就会在该字段上自动输入一个与其它记录不同的值。

在ACCESS数据库中,关键字是用索引实现的,作为编程人员在对表类型的记录集编程时,只需调用索引名。

在查询时,Rushmore技术自动用索引信息优化查询。

完成表定义后,点击“增加索引”按钮,弹出如图5所示窗口。

  在窗口中右边有三个选项,其意义如表12。

  添加索引对话框选项

  完成之后如图6。

  当然,学会数据库的建立也并非一朝一夕的事,读者不妨多练习一下。

下面你就可以运行VB开始我们的编程了。

四、千里相会

  VisualBasic数据库应用程序有三个部分,如图7所示。

  用户程序是程序员开发的,也是我们即将用VB来编写的部分。

数据库引擎是数据库驱动程序,使用它程序员可以用统一的格式访问各种数据库,不管这个数据库是本地的VisualBasic数据库,还是所支持的其它任何格式的数据库格式,所使用的数据访问对象和编程技术都是相同的。

数据库则是我们上面完成的部分。

从这个结构可以看出用户与正在访问的特定数据库无关。

那我们在用VB编写数据库程序时,就需要使程序能够访问指定的数据库。

  如果是简单的数据库应用,可以使用Data控件来执行大部分数据访问操作,而根本不用编写代码。

与Data控件相捆绑的控件自动显示来自当前记录的一个或多个字段的数据。

DATA数据控件

属性

CONNECT属性指定打开的数据库类型,并且包括参数,如用户和口令等。

例如:

打开Access数据库(缺省)

CONNECT=“ACCESS”

打开ODBC数据库

CONNECT=“ODBC;

DATABASE=?

UID=?

PWD=?

DSN=?

DATABASENAME属性确定数据控件访问哪一个数据库。

对于多表数据库它为具体的数据库文件名,例如:

ACCESS数据库

DATABASENAME=“D:

\...\"

  对于单表数据库它为具体的数据库文件所在的目录,而具体文件名放在RECORDSOURCE属性中,例如:

访问FOXPRO数据库文件D:

\FOX\

DATABASENAME=“D:

\FOX”

RECORDSOURCE=“DEMO”不带文件扩展名

RECORDSOURCE属性

  确定数据控件的记录集,即:

所要访问的数据内容。

它可以是一个表名、存储查询名或SQL语句。

访问Register表所有数据:

RECORDSOURCE=“Register”访问RC表中1973年以前出生的数据:

RECORDSOURCE=“SELECT*FROMRegisterWHERE[BIRTHDAY]<

#1/1/1973#"

注意:

当我们在运行时修改了该属性后,需要调用REFRESH方法刷新记录集。

方法

REFRESH方法当我们在运行时修改了Record-

Source属性后,需要调用该方法刷新记录集。

UPDATERECORD方法将绑定在数据控件上的控件的数据写入数据库中。

即:

当我们修改了数据后调用该方法确定修改。

CANCELUPDATE方法将数据库中的数据重新读到绑定在数据控件上的控件中。

当我们修改了数据后调用该方法放弃修改。

事件

  VALIDATE事件当我们移动记录集记录指针时发生。

我们将记录集记录指针从A移动到记录B时当产生VALIDATE事件时,记录指针仍在记录A上。

SubXXXX_Validate(ActionAsinteger,SaveAsinteger)

其中:

Action指出如何产生了该事件,如:

移动,增加,查询等。

Save表示是否保存已修改的数据。

当我们修改了绑定在数据控件的数据,又没有UPDATERECORD,则移动指针时,Save=True。

如果在事件中令Save=False,则放弃修改。

SubXXXX_Validate(ActionAsinteger,SaveAsinteger)

IfSavethen

I=MsgBox("

Dadachanged,Save?

"

vbYesNo)

IfI=vbNothen

Save=False

Endif

End if

Reposition事件当我们移动记录集指针时发生。

我们将记录集记录指针从A移动到记录B时,当产生Reposition事件时,记录指针已移动到B上。

通常我们在该事件中显示当前的指针位置。

SubXXXX_Reposition()

on=?

utePosition+1

  了解了DATA控件之后我们就可以连接数据库了。

现在我们可以编写一个应用程序。

因为虽然我们建立了Register数据库,但是数据库中却没有数据,我们程序的目的就是向数据库中输入数据。

它的运行情况如图8。

  各个文本框正好对应着表Register的各个字段,在文本框中输入数据,点击“增加”按钮,就完成了一条记录的输入。

我们看一下,DATA控件是怎样和数据库连接起来的,各个文本框又是怎样和DATA控件捆绑起来的。

  在DATA控件的CONNECT属性中,选中“ACCESS”项,在DatabaseName属性中,输入“C:

\TEMP\登记.mdb”,在RecordSource属性中,选中“Register”,这样就完成了数据库与DATA控件的连接,也就是完成了与应用程序的连接。

  数据库中各个字段又是怎样和文本框连接起来的呢?

在VB中,我们可以将普通控件绑定在数据控件上,来完成自动地显示、更新记录集的数据。

常用的可绑定的控件有:

Label,Text,checkBox,Image等。

通过设置这些控件的DataSource和DataField属性来完成绑定。

DataSource属性表示绑定到哪一个数据控件上,程序中我们可能使用多个数据控件。

DataField属性表示绑定到记录集的哪一个记录上。

  现在我们需要把Text1与表“登记”中的姓名字段连接起来。

完成DATA控件的连接之后,在Text1控件的DataSource属性中,选中“Data1”,在DataField属性中,选中“姓名”值。

用同样的方法,将各个文本框分别绑定到对应的字段上,就完成了文本框的捆绑。

  下面我们编写两个按钮命令,完成其相应的操作了。

喂!

别着急,还有一个重要的对象没讲呢!

  当应用程序启动时,Data控件被自动地

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

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

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