第十一章 Visual Basic 与数据库 ( 2 学时)

Embed Size (px)

DESCRIPTION

第十一章 Visual Basic 与数据库 ( 2 学时). 11.1 数据库概念 11.2 数据库管理器 11.3 数据控件 * 11.4 ADO 数据控件 * 11.5 结构化查询语言 (SQL) *11.6 报表制作 11.7 错误处理. 数据库. 表. 11.1 数据库概念. 数据库就是一组排列成易于处理和读取的相关信息的集合。 关系模型已经成为数据库设计事实上的标准。. 关系型数据库模型. - PowerPoint PPT Presentation

Citation preview

  • Visual Basic211.1 11.2 11.3 *11.4 ADO*11.5 (SQL)*11.6 11.7

  • 11.1

  • 990001

    82-1-21

    990002

    82-9-21

    990101

    82-4-4

    990102

    81-12-2

    990103

    82-10-1

    990201

    82-11-14

    990202

    83-2-21

    991103

    82-6-3

    991104

    83-5-5

  • 990001

    990001

    85

    990002

    990001

    90

  • Recordset

  • VB

    Table

    Dynaset

    SnapShot

  • 11.2 VB(Visdata.exe)VB

  • 123Student.mdb

    Text

    6

    Text

    10

    Text

    10

    Date

    8

    Text

    2

    Binary

  • 11.3 11 .3.1 RecordSourceSQLDatabaseNameRecordSource

    Data

    Connect

    DatabaseName

    RecordSource

    RecordType

  • DataSource DataFieldData

    DataSource

    DataField

  • 11.2 MsFlexGridStudent.mdb11.1 11.2Student.mdb Rows Cols FixedRows FixedCols

  • 11.3.2

    Reposition

    Vaildate

    Save

  • 11.3.3 Refresh

    Refresh

    UpdateControls

    UpdateRecord

    Vaildate

  • 11.3.4

    1 EofBofBookMark RecordCount

    990001

    85

    990002

    90

    990010

    90

  • 2 FindFirstFindLastFindNextFindPreviousDynasetSnapshotSeekTable NomarchData1.Recordset. FindFirst "=' ' "Nomarch=False11.3 Move4

  • 11.3.5 Data1.Recordset. AddNew UpData EditDelete Update11.4

    990001

    85

    990002

    90

    990010

    90

  • 11.4 ADOADOMicrosoftActiveXOLE DBDAORDOODBCADO11.4.2 ADO11.4.1 ADOADO/Microsoft ADO Data Control 6.0(OLE DB)ADOADOVisual BasicADO

  • ADO

    ADO

    ADO

    ConnectionString

    ADODatabaseName

    RecordSource

    Recordset

  • ------ADO ADODCADO

  • ADOConnectionString Provider=Microsoft.Jet.OLEDB.3.51; Persist Security Info=False; Data Source=Student.mdbRecordSourceADOData

  • 11.4.3 ADO11.5

    MSFlexGrid

    MSHFlexGrid

    OLEDB

    DataGrid

    OLEDB

  • 11.4.4 / VB 6

    1

  • 2

  • 3

  • 4

  • 5

  • 611.6

  • 11.5 (SQL)11.5.1 SQLSQLSQLSQLSQLSQL

  • SQL

    CREAT

    DELETE

    SELECT

    UPDATE

    SQL

    FROM

    WHERE

    GROUP BY

    HAVING

    ORDER BY

    AVG

    COUNT

    SUM

    MAX

    MIN

  • 11.5.2 SELECT1.SELECTSELECTSELECTSelect From Where Group By Order By [Asc|Desc] RecordSourceSQLSQLSQLSELECT"Select * From Where =' " & Text1 & " ' "

    11.7 11.4SQL11.8 SQL11.9 SQLStudent.mdb

  • 11.10ADOSQL11.8DataADOSQLStudent.mdb 11.11Student.mdb *2. UPDATEUPDATEUPDATE [] SET [] WHERE []11.11a 10%*3. DELETE FROMWHEREDELETE [] FROM [] WHERE []11.11b11.11atemp

  • *11.5.3 DAODAODAOMicrosoft DAO 3.51 Object Library

    Dim db As Database

    Set db = OpenDatabase()

    Databasedb

    Dim rs As Recordset

    Set rs = db.OpenRecordset()

    rs

  • 11.11e DAO Recordset.Fields(Recordset()Recordset.Fields( Recordset(DAOrs(j)11.11c DAODAO11.11d DAOBookmark

  • *11.5.4 ADOADODAO

    ADO

    Dim db As Connection

    Set db = New Connection

    db.Open

    db

    Dim rs As Recordset

    Set rs = New Recordset

    rs.Open

  • 11.6 ActiveX Designer|Data ReportDataReport1

  • 11.12 DataEnvironent1Connection1Command1DataReport1 DataSourceDataMemberCommand1Command1ClickDataReport1.ShowDataReport1.PrintReport

  • 11.7 1. On Error2. Err.Number

  • On Error(1) On Error Resume Next (2) On Error GoTo (3) On Error GoTo 0Resume Resume Next Resume 0

  • 11.13 Sub OnErrorStatementDemo()Dim Response ,Msg, Style, Title As StringDim db As Database, rs As RecordsetOn Error GoTo ErrorHandlerSet db = OpenDatabase("A:\Student.mdb") ' Set rs = db.OpenRecordset("") ' Exit Sub' ErrorHandler:' Style = vbRetryCancel + vbCritical + vbDefaultButton2Select Case Err.NumberCase 53' 53Msg = "!"Response = MsgBox(Msg, Style, "") If Response = vbCancel Then Exit SubCase 71' 71Msg = " A"Response = MsgBox(Msg, Style, "") If Response = vbCancel Then Exit SubCase Else' Exit SubEnd SelectResume' End Sub

  • 11.14 Sub ResumeStatementDemo()On Error GoTo ErrorHandler' Open " testfile " For Output As #1Kill "testfile"' Exit SubErrorHandler:Select Case Err.NumberCase 55' Close #1' Case Else End SelectResumeEnd Sub

  • 11.15 Sub OnErrorStatementDemo()On Error GoTo ErrorHandler' Open " testfile " For Output As #1Kill " testfile "' On Error Goto 0' On Error Resume Next' Kill "testfile"Err.Clear' Exit SubErrorHandler:Select Case Err.NumberCase 55Close #1Case Else End SelectResumeEnd Sub

  • 11.16 Function Divide (numer, denom) as VariantConst mnErrDivByZero = 11 ' Const mnErrOverFlow = 6 ' Const mnErrBadCall = 5 ' On Error GoTo MathHandlerDim Msg as StringDivide = numer / denom' Exit FunctionMathHandler: If Err.Number = MnErrDivByZero Or Err.Number = ErrOverFlow _Or Err = ErrBadCall ThenDivide = Null' NULLElse' Msg = "Unanticipated error " & Err.NumberMsg = Msg & ": " & Err.DescriptionMsgBox Msg, vbExclamation End If Resume Next' Resume NextEnd Function

    **