1、1VB 数据库编程VB 数据库编程一V Visual Basic 作为应用程序的开发“利器”也表现在数据库应用程序的开发上,它良好的界面和强大的控件功能使数据库编程变得简单多了。但即便如此,数据库应用程序的开发仍然算得上是 VB 编程中的难点,这是因为你不仅要熟悉 VB 中关于数据库编程方面的知识(当然这是十分简单的)还要了解数据库的知识。所以我们先介绍一下数据库的基本知识,算是学习数据库编程前的热身运动吧! 一、热身运动 首先需要声明是,我们这里介绍的数据库知识都是指的关系数据库。所谓关系数据库就是将数据表示为表的集合,通过建立简单表之间的关系来定义结构的一种数据库。 不管表在数据库文件中的
2、物理存储方式如何,它都可以看作一组行和列,与电子表格的行和列类似。在关系数据库中,行被称为记录,而列则被称为字段。下面是一个客户表的例子。 表 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 此表中每一行是一个记录,它包含了特定客户的所有信息,而每个记录则包含了相同类型和数量的字段:客户号、姓名等
3、等。 表 是一种按行与列排列的相关信息的逻辑组,类似于工作单表。 字段 数据库表中的每一列称作一个字段。表是由其包含的各种字段定义的,每个字段描述了它所含有的数据。创建一个数据库时,须为每个字段分配一个数据类型、最大长度和其它属性。字段可包含各种字符、数字甚至图形。 记录 各个客户有关的信息存放在表的行,被称为记录。一般来说,数据库表创建时任意两个记录都不能相同。 键 键就是表中的某个字段(或多个字段) ,它(们)为快速检索而被索引。键可以是唯一的,也可以是非唯一的,取决于它(们)是否允许重复。唯一键可以指定为主键,用来唯一标识表的每行。例如,在前面的例子中,客户标识号 (客户号) 是表的主键
4、,因为客户号唯一地标识了一个客户。 关系 数据库可以由多个表组成,表与表之间可以以不同的方式相互关联。例如,客户数据库还可以有一个包含某个客户的所有定单的表。它只用“客户号”字段来引用该定单的客户,而不在定单表中的每项重复所有客户信息,如下表所示: 表 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 在这个表中,客户号字段引用了客户表中的 客户号字段,从而把定单和客户联系起来了。可2以看到,客户 3391 (Mary Smith
5、) 在 94 年 2 月 23 日订购了 27 项,在 94 年 3 月 17 日订购了 46 项。用来建立关系的键叫做外部键,因为它与“外部”表(客户表)的主键关联。 一对多和多对多关系 上表中的关系类型叫做一对多关系,因为一个客户可以发出多个定单,而某个特定的定单只能是一个客户所发。也可以建立多对多的关系。例如,列出所有可以销售的项(存货)的盘存表: 表 3 盘存表 内容 描述 供应商 费用 盘存 27 Straw Hat Garden Supply Co. $14.00 50 46 Garden gloves Garden Supply Co. $4.50 75 102 hanging
6、floral industries $6.00 137 从盘存表中,可以看到在客户和存货项之间存在多对多的关系。也就是说,一个客户可以订购多个存货项,而一个存货项又能够被多个客户订购。多对多关系是通过两个独立的一对多关系来定义的,公共的“多”表包含了两个其它表的外部键。在该例中,定货 s 表与 盘存 表(通过 “内容” )与 Customer 表(通过 客户号)都相关联。通过这三个表,我们可以看到,Mary Smith (客户号 3391) 订购了 Straw Hat (“内容” 27) 和 Garden Gloves (“内容” 46),而 Mary Smith (客户号 3391) 和 M
7、ortimer Blaselflatz (客户号 8765) 都订购了 Straw Hat (“内容” 27)。如果把客户表和盘存表的相关字段与 定货表的“定货”字段联结起来,建立一个“关联”表,那么这个关系就更清楚了。 表 4 关联表:按客户号和内容排序 定货号 客户号 姓名 内容 描述 14764 33391 Smith Mary 27 Straw Hat 14932 33391 Smith Mary 46 Garden Gloves 15168 8765 Blaselfatz Mortimer 27 Straw Hat 规范化 数据库设计者的任务就是组织数据,而组织数据的方法,应能消除不
8、必要的重复,并为所有必要信息提供快速查找路径。为了达到这种目标而把信息分离到各种独立的表中去的过程,叫作规范化。 规范化是用许多指定的规则和不同级别的范式来进行规范的复杂过程。该过程的研讨已超出了本文的范围。但是,大多数简单数据库的规范化可以用下面简单的经验规则来完成:包含重复信息的表必须分成独立的几个表来消除重复。 例如,使学生和课程对应的学生数据库,包含了下表所示的信息。 表 5 学生 课程 描述 教授 1 4 Introduction to Physiology Dawson 2 3 Applied Basketweaing Carruth 3 1 Physics for Short-定
9、货 cooks Adms 4 2 Introduction to Physiology Dawsons 如果有选学了十二门课程的 1000 个学生,每门课程的说明和教师将显示 100 多次 对选了那门课程的每个学生都要重复一次。要避免这种低效率,应当把表分成两个独立的表来规范化,3一个用来表示学生,另一个用来表示课程,如表 6,表 7 所示。 学生 课程 1 4 2 3 3 1 4 4 课程 描述 教授 1 Physics for Short-定货 cooks Adms 2 Counterculture Sociology Beckely 3 Applied Basketweaing Carr
10、uth 4 Introduction to Physiology Dawsons VB 数据库编程二信息来源:黑客代码 编辑:admin 浏览次数:211 加入时间:2010-3-31 11:49:15 评论(0) VB 数据库编程二现在表被规范化了,所以,要改变特定课程的课程描述或“数据” ,只要改变一个记录就可以了。 以上是关于数据库的基本知识,这是学习数据库编程所必须的。虽然数据库技术作为一门学科,其深度和广度不是这点篇幅能描述的,但作为入门和简单数据库编程应该是足够了。 好了,下面我们就可以开始练练了。我们经常遇到数据库系统是登记系统,不管你是在单位,或是参加什么组织,登记是免不了的,
11、而且它的结构比较简单,我们就以一个登记系统为例吧。分析一下该系统所涉及到的数据。 二、磨刀不误砍柴功 对于登记,要跟踪的信息包括: 姓名 性别 籍贯 年龄 出生年月 单位 地址 邮政编码 电话 传真 当然,可以简单地创建一个表,使得上述的每个数据项对应一个字段。 现在需要给表指派主键,用以唯一标识每一条记录,在登记表中分别添加登记号作为唯一键,这样就保证数据库中的任两条记录都不同了。 对数据库作出以上分析后,我们就可以开始建立数据库了。 三、建营扎寨 4在这里我们学习怎样建立数据库,首先需要确定要建立数据库的类型。在 Visual Basic 中通过数据访问控件或数据访问对象(DAO)可以访问
12、下列数据库: 1 JET 数据库,即 Microsoft Access 2 ISAM 数据库,如:dBase ,FoxPro 等 3 ODBC 数据库,凡是遵循 ODBC 标准的客户/服务器数据库。如:Microsoft SQL Server、Oracle 一般来说,如果要开发个人的小型数据库系统,用 Access 数据库比较合适,要开发大、中型的数据库系统用 ODBC 数据库更为适宜。而 dBase 和 FoxPro 数据库由于已经过时,除非特别的情况,否则不要使用。在我们的例子中,当然选用 Access 数据库了。建立 Access 数据库有两种方法:一是在 Microsoft Acces
13、s 中建立数据库。点击“新建”按钮就可以建立新的表了(如图 1) 。这里我们主要介绍第二种方法:使用可视化数据管理器,不需要编程就可创建数据库。可视化数据管理器是一个非常有用的应用程序,它是 VB 企业版和专业版附带的,在目录DevStudiovbsamplesVisdata 下,其界面如下图。 点击菜单“文件”项下“新建”子项“Microsoft ACCESS”子项的“版本 7.0 MDB”项。在弹出窗口中输入新建数据库的名称“登记” ,出现下面图 3 所示窗口: 要生成新的表,右键单击数据库窗口弹出菜单,然后选择“新表”命令,在随后出现的“表结构”对话框中建立所要的字段。每次向表中加入新的
14、字段,单击“增加字段”按钮,会出现图4 的“增加字段”对话框。 “增加字段”对话框中的选项如表 10 所示,根据字段的类型,有些选项是无效的,无法读取。在我们建立的登记数据库中,各个字段的类型如表 11。 要注意的是,由于字段登记号用来唯一标志记录的,因此,它不能由用户输入。所以在定义该字段时需要定义为 Long 数据类型, “自动生成字段”项有效,并选中这一项。这样当用户每输入一条新记录时,系统就会在该字段上自动输入一个与其它记录不同的值。 在 ACCESS 数据库中,关键字是用索引实现的,作为编程人员在对表类型的记录集编程时,只需调用索引名。在查询时,Rushmore 技术自动用索引信息优
15、化查询。完成表定义后,点击“增加索引”按钮,弹出如图 5 所示窗口。 在窗口中右边有三个选项,其意义如表 12。 添加索引对话框选项 完成之后如图 6。 当然,学会数据库的建立也并非一朝一夕的事,读者不妨多练习一下。下面你就可以运行 VB开始我们的编程了。 四、千里相会 Visual Basic 数据库应用程序有三个部分,如图 7 所示。 用户程序是程序员开发的,也是我们即将用 VB 来编写的部分。数据库引擎是数据库驱动程序,使用它程序员可以用统一的格式访问各种数据库,不管这个数据库是本地的 Visual Basic 数据库,还是所支持的其它任何格式的数据库格式,所使用的数据访问对象和编程技术
16、都是相同的。数据库则是我们上面完成的部分。从这个结构可以看出用户与正在访问的特定数据库无关。那我们在用 VB 编写数据库程序时,就需要使程序能够访问指定的数据库。 如果是简单的数据库应用,可以使用 Data 控件来执行大部分数据访问操作,而根本不用编写代码。与 Data 控件相捆绑的控件自动显示来自当前记录的一个或多个字段的数据。 5DATA 数据控件 属性 CONNECT 属性 指定打开的数据库类型,并且包括参数,如用户和口令等。 例如: 打开 Access 数据库(缺省) CONNECT=“ACCESS” 打开 ODBC 数据库 CONNECT=“ODBC;DATABASE=?;UID=?
17、;PWD=?;DSN=?” DATABASENAME 属性 确定数据控件访问哪一个数据库。 对于多表数据库它为具体的数据库文件名,例如:ACCESS 数据库 DATABASENAME=“D:.DEMO.MDB“ 对于单表数据库它为具体的数据库文件所在的目录,而具体文件名放在 RECORDSOURCE 属性中,例如:访问 FOXPRO 数据库文件 D:FOXDEMO.DBF DATABASENAME=“D:FOX” RECORDSOURCE=“DEMO”不带文件扩展名 RECORDSOURCE 属性 确定数据控件的记录集,即:所要访问的数据内容。它可以是一个表名、存储查询名或 SQL 语句。例如
18、:访问 Register 表所有数据 : RECORDSOURCE=“Register”访问 RC 表中 1973 年以前出生的数据: RECORDSOURCE=“SELECT *FROM Register WHERE BIRTHDAY20 and age“ + Text1.Text End If If IsNumeric(Text2.Text) Then n = “ age “ Then t1 = “ where “ + t1 End If Data1.RecordSource = allinfo + t1 将 RecordSource 属性的值设置为新的 SQL 语句 Data1.Refr
19、esh 刷新数据库,获得符合当前条件的查询结果 End Sub 在这个程序中,你还可以加上姓名查询、籍贯查询等,其设计过程都是通过构造 SQL 语句来实现的。另外,还需要注意的一点是既然是查询窗口,当然允许修改,将 DBGrid 控件的AllowUpdate 属性值设为 False。OK!运行程序吧,啊!万事大吉。看一看应用程序,再看一看你编写的代码,不可思议,这么短的代码居然完成了这么强大的功能。事实就是这样,数据库编程中最重要的是对概念的清楚,与之相比,技巧好象摆在了次要位置。让我们闭上眼睛,想一想我们需要了解那些东西吧:DATA 控件,RECORDSET 对象、控件的捆绑、简单的 SQL
20、 查询语句。熟悉了这些东西,你就可以进行数据库编程了,如果你对开发数据库系统比较感兴趣,可以再加强一下在数据库设计和 SQL 语句方面的知识。但数据库编程真的总是这样简单吗?如果已经熟悉了上面的内容,建议你看一下下面这一节。 VB 数据库入门 6六、拨云见雾 12还记得我们在前面说过 Visual Basic 提供了两种与 Jet 数据库引擎接口的方法吗?Data 控件和数据访问对象。我们已经见识了 DATA 控件,确实给人意想不到的方便,但 Data 控件只给出有限的访问现存数据库的功能。而 DAO 模型则可以全面控制数据库的完整编程接口。这两种方法事实上并不是互斥的,实际上,它们常同时使用
21、。 DAO 模型是设计关系数据库系统结构的对象类集合。它们提供了完成管理这样一个系统所需的全部操作属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。DAO 结构的主要对象如图 10 所示。 Visual Basic 中的数据库编程就是创建 DAO(数据访问对象) 。这些对象对应于被访问物理数据库的不同部分,如 Database、TableDef 、Field 和 Index 对象,用这些对象的属性和方法来实现对数据库的操作,能够在 Visual Basic 窗体中使用绑定和非绑定控件来显示操作结果并接收用户输入。这样就简化了代码,它赋予程序员很大的灵活性。
22、因为可以使用同样的对象、属性和方法来处理各种不同的数据库格式。同时,如果从一种数据库格式变到另一种格式(例如,将本地的 Microsoft Access 数据库转换为网络上的 SQL Server 数据库) ,只需变动少量的代码就可以适应这种改变。甚至可以创建这样的应用程序,在单一的查询或报表中连接来自多个不同数据库的表。 我们先介绍 DAO 对象,从上图中我们可以看到,DAO 对象中最关键的是 DBEngine 对象,所有的数据库操作都要通过它来完成。 DBEngine 对象 DBEngine 对象相当于 jet 数据库引擎,不需要创建该对象。 CreateWorkspace 方法:创建一个
23、工作区对象 例如 : Dim ws As Workspace Set ws = DbEngine.CreateWorkspace (SpName,UserID,password“,SpType) 其中 SpName 工作区名称 String UserID 用户名 String Password 口令 String SpType 工作区类型 = dbUsejet jet 工作区 = dbUseODBCODBC 工作区 Workspace 对象 Workspace 对象为用户定义一个会话,通过与之关联的用户名和口令建立一个安全级别。当不需要安全级别时可使用缺省的工作区 DBEngine.Works
24、pace。 方法: OpenDatebase 打开一个数据库 Close 关闭当前工作区 BeginTrans 启动一个事务 CommitTrans 提交当前事务 RollBack 回滚当前事务 例如我们需要打开一个数据库。 我们调用 Workspace 的 OpenDatabase 方法打开一个数据库。 例如: Dim db As DataBase 13Set db=OpenDatabase(dbname,exc,readonly,source) 其中: dbname 数据库文件名(对于单表数据库为路径) exc = TRUE 表示打开数据库后,该数据库不能被其它应用程序访问。 FALSE
25、表示共享地打开数据库 Readonly=TRUE 表示打开数据库后,只能对数据库进行读操作 =FALSE 表示打开数据库后,可对数据库进行读写操作 source 数据源名,用于指定打开地数据库类型。 创建记录集 我们使用 DataBase 对象的 OpenRecordSet 方法打开一个记录集。 例如: Dim rs As RecordSet Set rs=db.OpenRecordSet(source,type) 其中: source 指定记录集的内容,它可以是一个表名,查询名或 SQL 语句 type 创建记录集的类型 =dbOpenTable 表型记录集 =dbOpenDynaset 动
26、态型记录集 =dbOpenSnapshot 快照型记录集 访问 ODBC 数据库 Visual Basic 通过 DAO 和 Jet 引擎可以识别三类数据库:Visual Basic 数据库,外部数据库,ODBC 数据库。在开发大中型数据库系统中一般都采用 ODBC 数据库,如 Microsoft SQL Server等。DAO(数据访问对象)的 ODBCDirect 模式允许直接访问 ODBC 数据。另外,远程数据对象 (RDO) 库和远程数据控件 (RDC)也 允许直接访问 ODBC 数据。 要访问 ODBC 数据库需要两步,首先需要在 WINDOWS 95 或 WINDOWS NT 的控
27、制面板中设置ODBC 数据源名(DSN ) 。然后在 OpenDatabase 方法的 Source 参数中使用该数据源名。 例如:访问 Microsoft SQL Server Source=“ODBC;DSN=MyDSN;UID=sa;PWD=xx;DataBase=pubs“ 在程序中使用 DAO DAO 的强大功能确实让人兴奋,只是较之 DATA 控件要复杂得多。在复杂的数据库处理中,这两种方法常常同时使用。要使用 DAO,必须选中 VB 的 “工程”菜单下的“部件”项,在控件标签中选中“Microsoft DAO 3.5 Object Library“之后就可以在程序中定义 DAO
28、变量了。在这篇文章中我们所举的数据库例子比较简单,有兴趣的朋友不妨采用数据访问对象(DAO)来实现这个程序。 七、高屋建瓴 到了这里,似乎 VB 数据库编程的内容也差不多完整了,但是你完全可以再往前走一步。在目前的数据库开发过程中,客户/服务器体系结构占这个领域的主体地位,利用 VB 进行客户/ 服务器应用程序的开发是完全可行的。同时,在程序开发过程中,还可以利用面向对象技术,提高你的程序的可重用性和可维护性。总之,数据库应用程序的开发始终是技术上和理论上的热点。使用最高级的方法,最先进的技术,你会变得越来越 COOL 14VB 控制光驱弹出关闭Option ExplicitPrivate D
29、eclare Function CDdoor Lib “winmm.dll“ Alias “mciSendStringA“ _(ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _ByVal uReturnLength As Long, ByVal hwndCallback As Long) As LongDim state1 As BooleanPrivate Sub Command1_Click()打开光驱state1 = TrueCall CDdoor(“set CDAudio door open“, 0,
30、0, 0)End SubPrivate Sub Command2_Click()关闭光驱state1 = FalseCall CDdoor(“set CDAudio door closed“, 0, 0, 0)End SubPrivate Sub Command3_Click()EndEnd Subvb 实现小写转大写金额信息来源:黑客代码 编辑:wanghujun 浏览次数:144 加入时间:2010-3-30 22:09:10 评论(0) vb 实现小写转大写金额Private Function setdata(num As Integer) As String 数字转换Select Ca
31、se numCase 0setdata = “零“Case 1setdata = “壹“Case 2setdata = “贰“15Case 3setdata = “叁“Case 4setdata = “肆“Case 5setdata = “伍“Case 6setdata = “陆“Case 7setdata = “柒“Case 8setdata = “捌“Case 9setdata = “玖“End SelectEnd FunctionPrivate Function chang(aaa As Integer) As String 位数转换Select Case aaaCase 1chang
32、= “Case 2chang = “十“Case 3chang = “百“Case 4chang = “千“Case 5chang = “万“Case 6chang = “十“Case 7chang = “百“Case 8chang = “千“Case 9chang = “亿“Case 10chang = “十“End SelectEnd FunctionPrivate Sub Form_Activate() 设定文本长度Text2.MaxLength = 10Text2.SetFocus16End SubPrivate Sub Text2_Change() 小写转大写Dim i As Int
33、egerDim j As IntegerDim myint As IntegerDim myint1 As IntegerDim mydoub As DoubleDim mystr As StringDim mystr1 As StringDim mystr2 As StringDim mystr3 As StringDim mystr4 As StringDim money As LongDim money1 As IntegerDim money2 As Longmystr = Text2.Textmyint = InStr(mystr, “.“)If myint = 0 Thenmyst
34、r = Text2.TextElsemystr3 = Right(Text2.Text, Len(Text2.Text) - myint)If mystr3 “0“ Thenmystr2 = mystr2 + setdata(Val(mystr4) + “角“End IfIf mystr3 “万“ Then mystr1 = mystr1 pwd=“ *.ico“CmD1.ShowOpenIf Len(CmD1.FileName) ThenText1(2).Text = CmD1.FileName22Image1.Picture = LoadPicture(Text1(2).Text)Imag
35、e2.Picture = LoadPicture(Text1(2).Text)End IfEnd SubPrivate Sub Data1_Reposition()Image2.Picture = LoadPicture(Text1(2).Text)End SubPrivate Sub Command4_Click()EndEnd SubVB 把图片存入数据库(2)Option ExplicitDim Cn As ADODb.ConnectionDim Rs As ADODb.RecordsetDim mst As ADODb.StreamDim mystr As StringPrivate
36、Sub Form_Load()Adodc1.ConnectionString = “uid=admin;pwd=111;DRIVER=Microsoft Access Driver (*.mdb);DBQ=“ DRIVER=Microsoft Access Driver (*.mdb);DBQ=“ *.bmp;*.gif“CommonDialog1.FilterIndex = 2 显示“ 打开“ 对话框CommonDialog1.ShowOpenPicture1.Picture = LoadPicture(CommonDialog1.FileName)mystr = CommonDialog1
37、.FileNameEnd SubPrivate Sub Command2_Click()EndEnd SubVB 连接 dbf 数据库Dim db As DatabaseDim RS As RecordsetPrivate Sub Form_Load()Set db = OpenDatabase(App.Path “)Set RS = db.OpenRecordset(“SJ“)Set Data1.Recordset = RSData1.RefreshEnd SubPrivate Sub Form_Activate()DBGrid1.Columns(0).Width = 400DBGrid1.
38、Columns(1).Width = 1500DBGrid1.Columns(2).Width = 1200DBGrid1.Columns(3).Width = 1500End SubPrivate Sub Text2_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenSelect Case IndexCase 2Command2.SetFocusCase 1Text2(2).SetFocusCase 0Text2(1).SetFocusEnd SelectEn
39、d If24If KeyCode = vbKeyLeft ThenSelect Case iCase 2Text2(1).SetFocusCase 1Text2(0).SetFocusEnd SelectEnd IfEnd SubPrivate Sub Command2_Click()RS.AddNewRS.Fields(1).Value = Text2(0).TextRS.Fields(2).Value = Text2(1).TextRS.Fields(3).Value = Text2(2).TextRS.UpdateRS.CloseFor i = 0 To 2Text2(i) = “Nex
40、t iData1.RefreshDBGrid1.Columns(0).Width = 400DBGrid1.Columns(1).Width = 1500DBGrid1.Columns(2).Width = 1200DBGrid1.Columns(3).Width = 1500End SubPrivate Sub Command3_Click()On Error Resume NextData1.Recordset.DeleteEnd SubPrivate Sub Command1_Click()EndEnd SubVB 动态创建数据库信息来源:黑客代码 编辑:wanghujun 浏览次数:1
41、13 加入时间:2010-3-30 21:56:12 评论(0) VB 动态创建数据库Dim gsDataType As StringDim FileName As String25Private Sub Combo1_Change()Text3.Text = “50“End SubPrivate Sub combo1_Click()Dim nFldType As IntegerText3.Text = SetFldProperties(combo1.ItemData(combo1.ListIndex)Text3.Enabled = FalsenFldType = combo1.ItemDat
42、a(combo1.ListIndex)If gsDataType “ Then j = i + 1Next iIf Text1.Text “ Then MSFlexGrid1.TextMatrix(j, 1) = Text1.TextIf combo1.Text “ Then MSFlexGrid1.TextMatrix(j, 3) = Text3.TextText1.Text = “Text3.Text = “Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click()Dim PathName As StringPathName = App.
43、PathDim aaa As Variant26Dim i As IntegerDim MyTable As TableDef, MyField As FieldDim MyDatabase As DatabaseSet MyDatabase = CreateDatabase(App.Path & “ & Text4.Text, dbLangGeneral)Set MyTable = MyDatabase.CreateTableDef(Text2.Text)For i = 1 To 12If MSFlexGrid1.TextMatrix(i, 1) 250 Then Text3.Text =
44、“250“End SubPrivate Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenCommand1.SetFocusEnd IfIf KeyCode = vbKeyRight ThenCommand1.SetFocusEnd IfIf KeyCode = vbKeyLeft Thencombo1.SetFocusEnd IfEnd SubFunction SetFldProperties(rnType As Integer) As IntegerSelect Case
45、rnTypeCase dbBooleanSetFldProperties = 1Case dbByteSetFldProperties = 1Case dbIntegerSetFldProperties = 2Case dbLongSetFldProperties = 4Case dbCurrencySetFldProperties = 8Case dbSingleSetFldProperties = 4Case dbDoubleSetFldProperties = 8Case dbDate28SetFldProperties = 8Case dbTextSetFldProperties =
46、50Case dbLongBinarySetFldProperties = 0Case dbMemoSetFldProperties = 0End SelectEnd FunctionPrivate Sub Command3_Click()EndEnd SubVB 清除数据内容信息来源:黑客代码 编辑:wanghujun 浏览次数:94 加入时间:2010-3-30 21:55:18 评论(0) VB 清除数据内容Private Sub Command1_Click()Dim db As DatabaseSet db = Workspaces(0).OpenDatabase(App.Path
47、& “mrlc.mdb“)Dim sql As Stringsql = “delete * from kc where kc.库存=0“db.Execute sqlData1.RefreshEnd SubPrivate Sub Command2_Click()Dim db As DatabaseSet db = Workspaces(0).OpenDatabase(App.Path & “mrlc.mdb“)Dim sql As Stringsql = “delete * from kc “db.Execute sqlData1.RefreshEnd SubPrivate Sub Comman
48、d3_Click()Unload MeEnd SubVB sql 语句技术29Private Sub Form_Load()Data1.DatabaseName = App.Path & “mrlc.mdb“ 打开数据库Data2.DatabaseName = App.Path & “mrlc.mdb“ 打开数据库End SubPrivate Sub Form_Activate() 系统初始化Combo1.Text = “产品名称“Combo2.Text = “like“Combo3.Text = “产品名称“Combo4.AddItem (“Asc“)Combo4.AddItem (“Des
49、c“)Combo4.Text = “Asc“End SubPrivate Sub Command1_Click()If Check1.Value = 0 ThenIf Check2.Value = 0 Then 查询所有数据Data1.RecordSource = “select * from kc“Data1.RefreshEnd IfIf Check2.Value = 1 Then 模糊查询Data1.RecordSource = “select * from kc where (kc.“ & Combo1.Text & “ LIKE“ + Chr(34) + Text1.Text + “*“ + Chr(34) + “)“Data1.RefreshEnd IfEnd IfIf Check1.Value = 1 ThenIf Check2.Value = 0 Then 查询所有数据并排序Data1.RecordSource = “select * fr