VB程序设计与数据管理_第1页
VB程序设计与数据管理_第2页
VB程序设计与数据管理_第3页
VB程序设计与数据管理_第4页
VB程序设计与数据管理_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB程序设计与数据管理浙江省定海第一中学夏祎华Windows732位VisualBasic6.0SP6Access2010软硬件环境目录二、ADO数据访问技术三、ADO对象使用实例四、ADO控件简介一、SQL查询基础SQL语言及其功能、特点SQL:StructuredQueryLanguage结构化查询语言,是对数据操作的命令集。SQL功能:可以面向数据库执行查询、从数据库取回数据、可在数据库中插入新的纪录、可更新数据库中的数据、可从数据库删除记录、可创建新数据库、可在数据库中创建新表等。其功能可归结为查询、定义、操纵和控制等几个方面:SQL功能常用语句数据查询SELECT数据定义CREATE,DROP数据操纵INSERT,DELETE,UPDATE数据控制GRANT,REVOKESELECT语句的用法SELECT[DISTINCT]目标列表达式1[AS别名][,目标列表达式2][AS别名],…FROM表名1[,表名2]…[WHERE条件表达式][GROUPBY列名1[HAVING组条件表达式]][ORDERBY列名2[ASC|DESC]];功能从数据库中查询数据,并以表格形式返回查询结果。语法多表查询一个数据库中的多个数据表之间一般都存在某种内在联系,它们共同提供有用信息。若一个查询同时涉及两个及以上的表,称之为多表查询或链接查询。两张表间有一个相同的字段,才能进行有效的多表查询。查询时列名前加表名或表别名前辍,如果字段在两个表中是唯一的可以不加。内连接查询出的是两个表满足条件的公共列共有记录。应用【例】在景区表、等级表中,查询北京各景区的名称、等级和评定年度。SELECTScenic.ScenicName,Grade.Grade,Grade.EvalYearFROMScenicINNERJOINGradeONScenic.ScenicId=Grade.ScenicIdWHEREGrade.Area="北京";分析删除数据--DELETE语句DELETEFROM表名[WHERE条件]功能DELETE语句的功能为删除表中指定的记录。语法DELETE语句对满足WHERE子句中条件的所有记录执行删除操作。省略WHERE子句,则删除表中全部记录,但表结构仍在,即DELETE语句删除的是表中的数据。应用DELETE语句删除部分记录【例】删除用户名为“lee”的所有记录。DELETEFROMTravelPlanWHEREUserName="lee";分析lee所在两条记录均被删除,记录数由4变为2。数据更新--UPDATE语句UPDATE表名SET字段1=表达式[,字段2=表达式2,……,字段N=表达式N][WHERE条件]功能UPDATE语句的功能是更新表中指定记录中指定字段的值。语法UPDATE语句对指定表中满足WHERE子句中条件的记录进行修改,具体修改内容在SET子句中设定。表达式的值必须与其对应字段的数据类型吻合。UPDATE的操作是不可逆的,即做出的修改是无法撤消的。ADO数据访问技术(一)ADO数据模型(二)Connection对象及应用(三)Command对象及应用(四)Recordset对象及应用

一、ADO对象模型

ADO(ActiveXDataObjects)数据库访问技术,采用OLEDB的数据访问模式。1.ADO对象模型组成三个对象成员:

ConnectionCommandRecordset几个集合对象:

Errors

Parameters

Fields

Properties指定连接数据来源发出命令信息从数据源获取所需数据查询命令的返回的记录集访问数据源时所返回的错误信息与命令对象有关的参数记录集中某个字段的信息每个ADO对象都有一组惟一的属性,用来描述或控制对象2.ADO对象基本操作流程(1)初始化COM库,引入ADO库定义文件;(2)用Connection对象连接数据库;(3)利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理;(4)使用完毕后关闭连接释放对象。3.引入ADO库定义文件在VisualBasic程序中使用ADO对象,必须先为当前工程引用ADO的对象库。方法:执行“工程”菜单中“引用”命令,弹出“引用”对话框,如图所示。单击“确定”选择该选项(不同环境下ADO的版本号可能不同)二、Connection对象Connection用来创建到数据库建立连接。1.常用属性ConnectionString属性,指定用于建立连接数据源的信息。

【例】创建到数据库Scenic.accdb的链接。

DimconnAsADODB.Connection

Setconn=newADODB.Connectionconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+App.Path+"\Scenic.accdb“

Access2003连接语句"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\Scenic.mdb"conn.ConnectionString=Mode属性Mode属性,指定Connection对象修改数据的权限。其值如下:常量 说明adModeUnknown默认值。表明权限尚未设置或无法确定adModeRead 只读权限adModeWrite 只写权限adModeReadWrite 读写权限adModeShareDenyRead 禁止其他用户使用读权限打开连接adModeShareDenyWrite 禁止其他用户使用写权限打开连接adModeShareExclusive 禁止其他用户打开连接adModeShareDenyNone 允许其他人以任何权限打开连接State属性State属性,返回Connection对象的状态。其值如下:常量 说明adStateClosed 对象已关闭adStateOpen 对象已打开adStateConnecting 对象正在连接adStateExecuting 对象正在执行命令adStateFetching 正在检索对象的行2.Connection对象的常用方法Open方法,打开到数据源的连接。语法如下:Connection对象.OpenConnectionString,UserID,PassWord,Options

以下参数均为可选项ConnectionString

:包含连接信息的字符串。UserID

:包含建立连接时所使用的用户名称。Password

:字符串,包含建立连接时所用密码。Options

:设置为adConnectAsync,则异步打开连接;

设置为ConnectComplete当连接可用时将调用该事件。Close方法,关闭到数据源的连接。Execute方法,在连接上执行命令。Cancel方法,取消Open或Execute方法的调用如果设置了Connection对象的ConnectionString属性,Open方法就不需要设置参数了3.Connection对象应用示例【例】使用Connection对象链接到数据库Scenic.accdb。PrivateSubForm_Load()DimconnAsNewADODB.Connectionconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;

DataSource="+App.Path+"\Scenic.accdb"

conn.OpenIfconn.State=adStateOpenThenMsgBox"链接已打开"conn.CloseIfconn.State=adstatecolsedThenMsgBox"链接已关闭"EndSub创建Connection对象conn链接数据库路径打开到数据库的链接判断链接的状态关闭到数据库的链接判断链接的状态三、Command对象Command对象,定义将对数据源执行的命令。命令对象在操纵数据库前需要与一个已经打开的连接对象(Connection)建立关联。1.常用属性

(1)ActiveConnection属性,设置到数据源的连接信息。通过设置该属性使打开的链接与Command对象关联。(2)CommandText属性,定义命令的可执行文本。2.常用方法(1)Execute方法,执行CommandText属性指定的查询、SQL语句或存储过程。(2)Cancel方法,取消Execute方法的调用3.Command对象应用示例Command1按钮“注册”按钮事件代码PrivateSubCommand1_Click()DimconnAsNewADODB.ConnectionDimcmdAsNewADODB.CommandDimstrSQLAsStringconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0; DATASource="&App.Path&"\users1.accdb"strSQL="INSERTINTOusers(username,userpsd)VALUES('" &Text1&"','"&Text2&"')"cmd.CommandText=strSQLconn.OpenSetcmd.ActiveConnection=conncmd.Execute

:conn.Close:Setconn=NothingEndSub四、Recordset对象Recordset对象表示从数据库返回的一系列记录的集合。一个Recordset对象由记录和列(字段)组成。通过Recordset可以对记录及组成记录的列进行各种操作。1.Recordset对象的常用属性(1)ActiveConnection属性,设置或返回Recordset对象所属的Connection对象。(2)AbsolutePosition属性,指定Recordset对象中当前记录的序号位置。(3)BOF属性,若当前的记录位置在第一条记录之前,则返回true,否则返回fasle。

EOF属性,若当前记录的位置在最后的记录之后,则返回true,否则返回fasle。1.Recordset对象的常用属性(4)RecordCount属性,返回Recordset对象中记录的当前数目。(5)CursorType属性,设置或返回一个Recordset对象的游标类型。常

量值说

明AdOpenForwardOnly0默认值,打开仅向前类型游标,只能用MoveNext读取,打开的同时建立的数据库的备份,不能即时体现数据库记录状态,比如记录的编辑和增删。AdOpenKeyset1打开键集类型游标,可上下滚动游标,给打开的记录创建了一个关键字列表,类似记录集的描述,访问的时候才去取得数据值,就是说可以即时看到修改信息,但是不能即时得到数据是否删除的信息,因为这个关键字列表是事先初始化好的。程序中常用此类型。AdOpenDynamic2打开动态类型游标,完全可滚动游标,可得到数据的最新状态,但执行效率也会有所降低。AdOpenStatic3打开静态类型游标,完全可滚动游标,它先将数据库备份文件之后进行操作,可以断开数据库连接后继续使用。(6)LockType属性,指定打开Recordset对象使用的锁定类型,其值如下表所示。常

量值说

明AdLockReadOnly1默认值,只读锁AdLockPessimistic2悲观锁,操作者打开之后立即上锁,直到修改完成或者放弃修改为止,此时其他人无法编辑AdLockOptimistic3乐观锁,当记录将要被更新的时候才开始上锁,但是不能保证在提交修改之前是否有人改动过AdLockBatchOptimistic4批量乐观锁(7)Sort属性,设置排序字段。(8)Filter属性,设置Recordset对象中的筛选条件。2.Recordset对象常用方法(1)AddNew方法,创建和初始化新记录,其语法为:

Recordset对象.AddNewFieldList,ValuesAddNew方法为记录集添加新记录后,需使用UpDate将所添加的数据存储到数据库中。(2)Delete方法,删除当前记录或记录组。(3)Move方法,移动Recordset对象中当前记录的位置。(4)MoveFirst、MoveLast、MoveNext和MovePrevious方法,移动到指定Recordset对象中的第一条、最后一条、下一条或上一条记录,使该记录成为当前记录。(5)Requery方法,重新执行对象所基于的查询,更新Recordset对象中的数据。(6)Update方法,保存对Recordset对象当前记录所做修改。CancelUpdate方法,可取消对当前记录修改。字段列表FieldList中字段对应的值2.Recordset对象常用方法Open方法,打开代表基本表、查询的结果或保存的Recordset中记录的游标。其语法如下:Recordset对象.OpenSource,ActiveConnection,CursorType,LockType,Options

以下均为可选项

Source为记录源,可以是SQL语句、表名等;

ActiveConnection指定相应的Connection对象;

CursorType指定打开Recordset对象使用的指针类型。3.Recordset对象应用示例【例】

DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimstrSQLAsStringconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0; DATASource="&App.Path&"\users1.accdb"strSQL="SELECT*FROMusers"conn.OpenSetrs.ActiveConnection=connrs.LockType=adLockOptimisticrs.CursorType=adOpenStaticrs.OpenstrSQLrs.AddNewrs.Fields(1)=Text1rs.Fields(2)=Text2rs.Updateconn.CloseSetconn

Nothing数据有效性检查DimconnAsNewADODB.ConnectionDimcmdAsNewADODB.CommandDimrsAsNewADODB.RecordsetDimstrSQLAsStringconn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;

DATASource="&App.Path&"\users1.accdb"strSQL="SELECT*FROMusersWHEREusername='"&Text1&"'"cmd.CommandText=strSQLconn.OpenSetcmd.ActiveConnection=connSetrs=cmd.ExecuteIfText1=""ThenMsgBox"请输入用户名!":Text1.SetFocus:ExitSubEndIfIfrs.EOFThenIfTrim(Text2.Text)=Trim(Text3.Text)ThenstrSQL="INSERTINTOusers(username,userpsd)VALUES('" &Text1&"','"&MD5(Text2,32)&"')"cmd.CommandText=strSQL:cmd.ExecuteMsgBox"账号注册成功!",vbOKOnly,"注册成功"ElseMsgBox"二次密码不一致!",vbOKOnly,"请重输入密码"Text2.SetFocusEndIfElseMsgBox"请重新输入用户名注册!",vbOKOnly,"请重新注册"Text1.SetFocusEndIf单表查询实例单表查询部分代码strSQL="SELECT*FROMScenic"Setrs.ActiveConnection=connrs.CursorType=adOpenStatic'设置游标类型rs.LockType=adLockOptimistic'设置锁定类型rs.OpenstrSQLText1=rs.Fields(0)Text2=rs.Fields(1)Text3=rs.Fields(2)Text4=rs.Fields(3)Text5=rs.Fields(4)Text6=rs.Fields(5)Command1.Enabled=FalseCommand2.Enabled=False前一条、后一条按钮代码PrivateSubCommand2_Click()rs.MovePreviousCommand3.Enabled=TrueIfrs.AbsolutePosition=1ThenCommand1.Enabled=FalseCommand2.Enabled=FalseEndIfText1=rs.Fields(0)……Text6=rs.Fields(5)EndSubPrivateSubCommand3_Click()rs.MoveNextCommand1.Enabled=TrueCommand2.Enabled=TrueIfrs.EOFThenCommand3.Enabled=Falsers.MoveLastExitSubEndIfText1=rs.Fields(0)……Text6=rs.Fields(5)EndSub前一条后一条多表查询实例Scenic表Grade表conn.OpensqlSetrs=NewADODB.RecordsetstrSQL="SELECT*FROMScenicINNERJOINGradeON

Scenic.ScenicId=Grade.ScenicId"Setrs.ActiveConnection=connrs.OpenstrSQL,conn,adOpenStatic,adLockOptimisticText1=rs.Fields(0)……Text7=rs.Fields(7)Text8=rs.Fields(8)……多表查询部分代码strSQL="SELECT*FROMScenic,GradeWHERE

Scenic.ScenicId=Grade.ScenicId"用数组存储RecordsetDoWhileNotrs.EOFFori=0Tors.RecordCount-1Forj=0Tors.Fields.Count-1arr1(i,j)=rs.Fields(j)Nextjrs.MoveNextNextiLoopFori=0Tors.RecordCount-1Forj=0Tors.Fields.Count-1Printarr1(i,j),NextjPrintNexti显示结果GetRows方法Dimarr2,iAsInteger,jAsIntegerDimrs_rcAsInteger,rs_fcAsIntegerarr2=rs.GetRowsrs.CloseSetrs=Nothingconn.CloseSetcn=NothingFori=0Tors_rc-1Forj=0Tors_fc-1PrintLeft(arr2(j,i),6),NextjPrintNextirs_rc=rs.RecordCountrs_fc=rs.Fields.Count二维数组排序Fori=0Tors_rc-2Forj=iTors_rc-1Ifarr1(i,4)>arr1(j,4)ThenFork=0Tors_fc-1

temp=arr1(i,k)arr1(i,k)=arr1(j,k)arr1(j,k)=temp

Nextk

EndIfNextjNexti排序结果ADOData控件一、ADOData控件基本概念二、ADOData控件常用属性和方法三、ADOData控件应用主要内容一、ADOData控件的基本概念

ADOData控件使用ADO快速建立数据绑定控件和数据提供者之间的连接。它使用Recordset对象支持对存储在数据库中的数据进行访问,并通过数据绑定控件显示和操纵数据。数据绑定控件,指任何具有“数据源”属性的控件,也称为数据识别控件。在VisualBasic中,很多控件都可以作为数据绑定的控件,如复选框、组合框、图像、标签、列表框、图片框、以及文本框控件等。此外,VisualBasic还提供了很多数据绑定的ActiveX控件,如DataGrid、DataCombo、DataList控件等。大多数数据绑定控件都有DataSource和DataField属性,前者指定绑定的数据源,后者指定绑定的字段。VB工程中使用ADOData控件在默认情况下,ADOData控件并不出现在VB工具箱中,将ADOData控件添加到工程中的方法如下:执行“工程”菜单中的“部件”命令选择该选项(不同环境下ADO的版本号可能不同)单击“确定”双击二、ADOData控件的常用属性1.ConnectionString属性,指定链接字符串,建立到数据源的连接信息。2.BOFAction和EOFAction属性,当移动数据库记录指针时,如果记录指针移动到BOF或EOF位置后,再向前或向后移动记录指针将发生错误。BOFAction和EOFAction属性指定当发生上述错误时,数据控件采取什么样的操作。BOFAction属性有两个可选值:EOFAction属性有三个可选值:值设

置描

述0adDoMoveFirst默认值,移动记录指针到第一条记录。1adStayBOF移动记录指针到记录的开始。值设

置描

述0adDoMoveLast默认值,移动记录指针到最后一条记录。1adStayEOF移动记录指针到记录的结尾。2adDoAddNew移动记录指针到添加一条新记录。二、ADOData控件的常用属性3.Mode属性,指定对数据源的访问权限。该属性有8个可选值值设

置描

述0adModeUnknown默认值,表明权限尚未设定。1adModeRead表明权限为只读。2adModeWrite表明权限为只写。3adModeReadWrite表明权限为读/写。4adModeShareDenyRead防止其他用户使用读权限打开链接。8adModeShareDenyWrite防止其他用户使用写权限打开链接。12adModeShareExclusiv防止其他用户使打开链接。16adModeShareDenyNone防止其他用户使用任何权限打开链接。4.ConnectionTimeout属性,设置等待建立一个连接的时间,以秒为单位。如果连接超时,则返回一个错误。5.MaxRecords属性,返回Recordset对象中记录的数量。6.RecordSource属性,设置一个数据记录源。可以是表、视图或SELECT语句等。查询结果保存在RecordSet属性中。2.AddNew方法,在ADOData控件的记录集中添加一条记录。语法如下:Adodc1.Recordset.AddNew3.Delete方法,删除ADOData控件的记录集中的当前记录。语法如下:Adodc1.Recordset.Delete4.MoveFirst,MoveLast,MoveNext和MovePrevious方法,在ADOData控件的记录集中移动记录指针。语法如下:Adodc1.Recordset.MoveFirst5.CancelUpdate方法,取消ADOData控件记录集中的添加或编辑操作,恢复修改前的状态。语法:Adodc1.Recordset.CancelUpdate6.UpdateBatch方法,保存ADOData控件记录集中的添加或编辑操作。语法如下:Adodc1.Recordset.UpdateBatch三、ADOData控件的常用方法1.Refresh方法,打开或重新打开数据库。语法如下:Adodc1.RefreshAdodc1是一个ADOData控件在添加语句后,应给相应的字段赋值,然后调用UpdateBatch方法保存记录,或调用CancelUpdate方法取消保存。四、ADOData控件示例程序【例】应用ADOData控件来浏览和管理Scenic.accdb数据库Scenic表中的景区信息。在窗体中创建ADOData控件Adodc1来读取Scenic表中的数据,并通过绑定文本框控件显示、修改各字段中的数据,如图所示。单击Adodc1控件中的按钮可浏览记录;单击“添加”按钮,在相应文本框中输入景区信息,然后单击“更新”按钮可将输入的信息添加到Scenic表中;单击“删除”按钮可删除当前记录;修改文本框中景区信息后,单击“更新”按钮,可更新Scenic表中对应的数据。使用ADOData控件连接Scenic.accdb数据库单击,打开"数据链接属性"对话框Access2010数据库文件,选择该选项通过该选项设置自动产生连接字符串单击为保证连接有效,单击该按钮,测试链接右击“Adodc1”控件,执行“ADODC属性”命令设置ADOData控件的记录源单击标签控件及其属性控件名属性名值Label1Caption景区编号:Label2Caption景区名称:Label3Caption景区地址:Label4Caption最佳游玩时间:Label5Caption建议游玩天数:Label6Caption更多信息:文本框控件及其属性Text1DataSourceAdodc1DataFieldScenicIdText1空Text2DataSourceAdodc1DataFieldScenicNameText1空Text3DataSourceAdodc1DataFieldAddressText1空Text4DataSourceAdodc1DataFieldBestTimeText1空Text5DataSourceAdodc1DataFieldRPDaysText1空Text6DataSourceAdodc1DataFieldDetailsText1空命令按钮控件及其属性Command1名称cmdAddCaption添加Command2名称cmdDeleteCaption删除Command3名称cmdUpdateCaption更新Command4名称cmdCloseCaption关闭代码PrivateSubForm_Load()

IfAdodc1.Recordset.EOFAndAdodc1.Recordset.BOFThen

cmdDelete.Enabled=False

cmdUpdate.Enabled=FalseEndIfEndSubPrivateSubcmdAdd_Click()Adodc1.Recordset.AddNewcmdDelete.Enabled=FalsecmdUpdate.Enabled=TrueText1.SetFocusEndSub数据库中无记录增加记录删除按钮代码PrivateSubcmdDelete_Click()

IfMsgBox(“删除当前记录?",vbYesNo,"提示")=vbYesThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIfAdodc1.Recordset.EOFThen

Adodc1.Recordset.MoveFirst

EndIf

EndIfEndSub其他代码PrivateSubcmdUpdate_Click()Adodc1.Recordset.UpdatecmdDelete.Enabled=TrueEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubAdodc1_MoveComplete(ByValadReasonAs……)Adodc1.Caption="记录"&Trim(Adodc1.Recordset.AbsolutePosition)EndSubDataGrid控件一、DataGrid控件基本概念二、DataGrid控件常用属性三、DataGrid控件应用主要内容一、DataGrid控件基本概念

DataGrid控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示Recordset对象的记录和字段。VB工程中使用DataGrid控件在默认情况下,DataGrid控件并不出现在VB工具箱中,将DataGrid控件添加到工程中的方法如下:执行“工程”菜单中的“部件”命令选择该选项单击“确定”双击二、DataGrid控件的常用属性1.AllowAddNew属性,返回或设置一个逻辑值。若值为True,用户可以向与DataGrid控件连接的Recordset对象中添加记录;若值为False,则不能向与DataGrid控件连接的Recordset对象中添加记录。2.AllowDelete属性,返回或设置一个逻辑值。若值为True,用户可以从与DataGrid控件连接的Recordset对象中删除记录;若值为False,则不能从与DataGrid控件连接的Recordset对象中删除记录。3.AllowUpdate属性,返回或设置一个逻辑值。若值为True,用户可以修改DataGrid控件中的数据;若值为False,则不能修改DataGrid控件中的数据。二、DataGrid控件的常用属性4.ColumnHeaders属性,返回或设置一个逻辑值。若值为True,则显示DataGrid控件的列标头;若值为False,则不显示DataGrid控件的列标头。5.Columns属性,返回一个Column对象的集合。可以使用Columns设置表格中列的属性。6.DataSource属性,指定一个DataGrid控件绑定的数据源。7.HeadFont属性,指定在DataGrid控件列标头中使用的字体。8.HeadLines属性,指定显示在DataGrid控件标头的列标头中的文本行数。三、DataGrid控件示例程序【例】应用DBGrid控件浏览和编辑Scenic.accdb数据库Users数据表中的用户信息。分析:在窗体中创建ADOData控件Adodc1,用于读取Scenic.accdb数据库Users表中的数据,通过一个DataGrid控件显示、编辑、添加、删除Users表中的用户信息,如图所示。单击某单元格可编辑其中数据(修改或删除);单击表左侧的记录选择器可选中一条记录,按下键盘上的Delete键可删除该记录;在“*”所在行中可以输入一条新记录;单击“退出”按钮退出程序。添加ADOData控件,设置属性在窗体中添加ADOData控件,默认名称为Adodc1,按照下表所示设置其属性。属

性设

值ConnectionStringProvider=Microsoft.ACE.OLEDB.12.0;DataSource=Scenic.accdb;PersistSecurityInfo=FalseRecordSourceSELECT*FROMUsersORDERBYUserNameVisibleFalseDataGrid控件添加将DataGrid控件放置到窗体上。设置DataGrid网格控件的DataSource属性为Adodc1,将DataGrid1绑定到ADOData控件Adodc1DataGrid控件编辑右击DataGrid1控件,执行“编辑”命令,进入编辑状态。再次右击DataGrid1控件,可通过右键菜单中的命令对其进行编辑。执行菜单中的“插入”命令可以插入新列;执行“删除”命令可以删除列。将光标移动到两列中间间隔处,当指针改变形状时,可以拖动鼠标调整列的宽度。DataGrid控件编辑DataGrid控件允许用户同时浏览或修改多个记录的数据。修改功能通过DataGrid属性设置实现。AllowAddNew(增)AllowDelete(删)AllowUpdate(改)也可以右击DataGrid1控件,执行“属性”命令打开“属性页”窗口,如图所示。设置允许添加、允许删除和允许更新选项。DataGrid控件编辑单击“列”选项卡,设置DataGrid控件中列所对应的数据列以及标题和数据字段,如图所示。DataList控件和DataCombo控件一、DataList、DataCombo控件基本概念二、DataList、DataCombo控件常用属性三、DataList、DataCombo控件应用主要内容一、DataList、DataCombo控件基本概念

DataList控件是数据绑定列表框,它需要指定一个ADOData数据源,并使用数据源中的一个字段进行填充。DataCombo控件是数据绑定组合框,其功能与DataList控件相同。。VB工程中使用DataList、DataCombo控件执行“工程”菜单中的“部件”命令选择该选项单击“确定”双击二、DataList、DataCombo控件常用属性1.BoundColumn属性,返回或设置绑定数据源中的一个源字段名称。此字段的值会随着DataList控件或DataCombo控件中当前值的变化而变化。用于为另一控件提供数据值。2.BoundText属性,返回或设置由BoundColumn属性指定的字段的值,可以看成是DataList控件或DataCombo控件当前值变化的输出值。3.DataField属性,返回或设置绑定的字段名。4.DataSource属性,返回或设置绑定数据源,通常为ADOData控件。5.ListField属性,返回或设置Recordset对象中的字段名,这个对象由RowSource属性指定,用于填充DataList控件或DataCombo控件的列表部分。6.RowSource属性,返回或设置列表项数据源。7.SelectedItem属性,返回一个值,包含DataList或DataCombo控件中选中记录的值。三、DataList、DataCombo控件应用【例】应用DataList、DataCombo控件查询Scenic.accdb数据库中各地域的景区信息。控件DataList1和DataCombo1分别与Adodc1、Adodc2控件绑定,以显示Grade、Scenic数据表中Area、ScenicName字段的信息。当用户在DataCombo控件中选择某地域名称时,该地域中景点的名称将显示在DataList控件中。添加ADOData控件,设置属性在窗体中添加ADOData控件Adodc1、

Adodc2

,按照下表所示设置其属性。属

性设置值ConnectionStringProvider=Microsoft.ACE.OLEDB.12.0;DataSource=Scenic.accdb;PersistSecurityInfo=FalseRecordSourceSELECTDISTINCTareaFROMGradeORDERBYAreaVisibleFalse属

性设置值ConnectionStringProvider=Microsoft.ACE.OLEDB.12.0;DataSource=Scenic.accdb;PersistSecurityInfo=FalseRecordSourceSELECT*FROMScenic,GradeWHEREScenic.ScenicId=Grade.ScenicIdVisibleFalseDataList、DataCombo控件应用在窗体中添加DataList1、DataCombo1控件,并设置属性。属

性设置值RowSourceAdodc1ListFieldAreaBoundColumnArea属性设置值RowSourceAdodc2ListFieldScenicNameBoundColumnScenicId主要代码PrivateSubDataCombo1_Click(AreaAsInteger)

Adodc2.RecordSource="SELECTScenic.ScenicName,

Scenic.ScenicIdFROMScenic,GradeWHERE

Scenic.ScenicId=Grade.ScenicIdand

Grade.Area='"&DataCombo1.Text&"'"

Adodc2.Refresh

DataList1.ListField="ScenicName"

DataList1.BoundColumn="ScenicId"EndSub作业预备(3张数据表)库结构:表1表2表3idNameOrgtelidUserspasswordidAddrPost作业上交要求1.内容:源程序、可执行程序、库文件以上文件打包成一个RAR文件,2.文件名要求:可执行程序的命名:

单位名+姓名+作品名.exe压缩包的命名:

单位名+姓名+作品名.rar3.发送至邮箱:63888977@问题数据库连接的概念ADO的概念Connection的作用Command的作用Recordset的作用SQL语言的作用附录:SQL基本语句(一)SQL简介(二)Access中SQL查询语句的执行环境(三)SELECT语句的基础用法一、SQL查询基础一、SQL语言及其功能、特点SQL:StructuredQueryLanguage结构化查询语言,是专门对数据操作的命令集。SQL功能:可以面向数据库执行查询、从数据库取回数据、可在数据库中插入新的纪录、可更新数据库中的数据、可从数据库删除记录、可创建新数据库、可在数据库中创建新表等。其功能可归结为查询、定义、操纵和控制四个方面:SQL功能常用语句数据查询SELECT数据定义CREATE,DROP数据操纵INSERT,DELETE,UPDATE数据控制GRANT,REVOKE二、Access中SQL查询语句的执行环境5.单击“运行”按钮,执行SQL语句4.输入SQL语句2.单击“关闭”按钮1.打开一个Access数据库文件,单击“查询设计”按钮3.单击“SQL视图”三、SELECT语句的基础用法SELECT[DISTINCT]目标列表达式1[AS别名][,目标列表达式2][AS别名],…FROM表名1[,表名2]…[WHERE条件表达式][GROUPBY列名1[HAVING组条件表达式]][ORDERBY列名2[ASC|DESC]];功能从数据库中查询数据,并以表格形式返回查询结果。语法SELECT查询过程查询杭州到南京的空调特快数据库服务器发送指令返回结果查询将产生一个虚拟表,称为“记录集”,其中数据是从数据库现有表中过滤出来的。车次出发站到达站出发时间到达时间T282杭州南京17:1923:20T7786杭州南京10:0816:19T112杭州南京9:4515:41车次出发站到达站出发时间到达时间T282杭州南京17:1923:20K526杭州东上海南2:013:54K1124天津广州东10:3920:57T7786杭州南京10:0816:19T57北京西重庆北11:486:31T112杭州南京9:4515:41T74长春天津10:5720:22T164上海拉萨19:3620:15SELECT车次,出发站,到达站,出发时间,到达时间FROMtickets.accdbWHERE出发站=‘杭州‘AND到达站=‘南京‘AND车次类型=‘特快‘;应用基础查询1.设定要查询的列【例】查询景区表中所有景区名称、景区编号及地址。SELECTScenicName,ScenicId,AddressFROMScenic;分析用户在查询时可以根据应用的需要,通过SELECT子句改变列的显示顺序。应用基础查询【例】查询景区表中所有景区的全部信息。SELECT*FROMScenic;分析通配符“*”表示所有字段,这种查询也称为全表查询。应用基础查询【例】查询等级表中所有景区编号及其等级的评定年度。SELECTScenicIdAS景区编号,EvalYearAS评定年度FROMGrade;分析AS用于指定返回结果中的别名应用基础查询【例】查询等级表中所有景区编号及其被评为当前等级的年数(至2014年为止)。SELECTScenicId,2014-EvalYearas评定等级的年数FROMGrade;分析2014-EvalYear的值目标列表达式不仅可以是字段名,还可以是算术表达式、字符串常量、函数等。反思总结基础查询查询满足条件的记录,可以通过WHERE子句设计查询条件。(1)比较大小常用运算符:=,<>或!=,>,<,>=,<=及NOT,AND,OR如WHERERegDate<2013/1/1ANDSex='男';(2)确定范围指定查找字段的值在某范围内,使用BETWEEN…AND…,反之使用NOTBETWEEN…AND…如WHERERegDateBETWEEN2012/1/1AND2014/1/1;(3)确定集合IN于查找字段值属于指定集合的记录,与之相对的是NOTIN,用于查找字段值不属于指定集合的记录。如WHERERPDaysIN(1,3);反思总结基础查询查询满足条件的记录,可以通过WHERE子句设计查询条件。(4)字符匹配LIKE用来进行字符串的匹配,与之相对的是NOTLIKE。进行匹配时可以使用通配符*和?,*代表任意长度的字符串,?代表任意单个字符。如WHEREScenicIdLIKE'?J*';(5)空值的查询ISNULL和ISNOTNULL用来查询空值和非空值。如WHEREDetailsISNULL;基础查询5.使用聚合函数在SELECT语句中,可以使用聚合函数对表中的记录进行统计,常用的聚合函数包括:COUNT()统计结果集中记录的数目SUM()统计结果集中指定列的和AVG()统计结果集中指定列的平均值MAX()统计结果集中指定列的最大值MIN()统计结果集中指定列的最小值应用基础查询【例】查询等级表中景区总数。SELECTCOUNT(*)AS景区总数FROMGrade;分析统计并返回了Grade表中的记录数目基础查询6.分组统计GROUPBY子句可将查询结果按列中的数据进行分组,有相同值的行被划为一组。对查询结果进行分组的目的是细化集函数的作用对象。若查询结果未分组,集函数将作用于整个查询结果,整个查询结果只有一个函数值;分组后,集函数将作用于每一个组,即每个组有一个函数值。通常GROUPBY与聚合函数一同使用。应用基础查询【例】查询等级表中各地景区数。SELECTAreaAS所属地区,COUNT(ScenicId)AS景区数FROMGradeGROUPBYArea;分析本次查询中,将Area字段值相等的记录划为一组,并统计出各组的记录数。应用基础查询【例】查询等级表中浙江省的景区数。SELECTAreaAS所属地区,COUNT(ScenicId)AS景区数FROMGradeGROUPBYAreaHAVINGArea='浙江'分析本次查询中,先将Area字段值相等的记录划为一组,然后通过HAVING筛选出满足“Area='浙江'”条件的组。通常HA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论