If you can't read please download the document
Upload
kibo-hicks
View
119
Download
8
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
**