Académique Documents
Professionnel Documents
Culture Documents
-
2007
681.3.06
32.973.26-018.2
95
. .
95
Microsoft Access 2007. .
.: -, 2007. 672 .: . + CD-ROM
( )
ISBN 978-5-9775-0187-3
- . Microsoft
Access 2007 () Microsoft SQL Server 2005 (). ,
Access- ,
.
.
"-". 50
.
- : "-".
,
681.3.06
32.973.26-018.2
ISBN 978-5-9775-0187-3
. ., 2007
, "-", 2007
..................................................................................................................1
, ...........................1
.........................................................................................................1
..........................................................................2
..............................................................................................4
........................................................................................4
.........................................................................................................................5
........................................................................................7
.........................................................................................................8
.......................................................................................11
................................................................................13
...................................................................................................................13
I.
MS OFFICE ACCESS 2007....................................................................................15
1. ..........................................................................17
1.1. ............................................................................................17
1.2. ......................................................................................20
1.2.1. .........................................................................23
1.2.2. .........................................................................30
1.2.3. .........................................................................31
1.2.4. ............................................................................32
1.2.5. ? .......................................................33
1.3. ...........................................................................33
1.4. ................................................................................................39
1.5. .......................................................46
1.5.1. .......................................47
1.5.2. .....................................................47
1.5.3. .................................................49
1.6. ...........................................................51
1.6.1. .....................................................51
1.6.2. .................................................53
1.7. .................................................................55
IV
3.3.3. , ........................135
3.4. .........................................138
3.5. Microsoft Access .....................................................139
3.6. ......................................................141
3.6.1. Microsoft Access ....................146
3.6.2. Microsoft Access ................................................147
4. MS Access 2007 .................................151
4.1. .......................................................................................151
4.2. MS Access 2007 ...........................152
4.3. ...........................................................153
4.4. accde- ..............................................154
4.5. Microsoft Excel...................................................................156
4.6. Microsoft Access.............................................158
4.7. .................................................................159
4.8. MS Access 2007 ......................162
II. ..........165
5. Visual Basic for Applications ............................167
5.1. Visual Basic for Applications ................................................................167
5.2. ...................................169
5.3. , .......................................................170
5.4. MsgBox() ............................175
5.5. .............................................................178
5.6. ...........................................................................................................179
5.7. Visual Basic for Applications .....................................................181
5.7.1. ...........................................................................181
5.7.2. With...........................................................................................182
5.7.3. ...................................................182
5.7.4. ......................................................................................184
5.7.5. ...........................................................187
5.8. ....................................................................................188
6. SQL Access ....................................................................193
6.1. SQL ...................................................................................193
6.2. . SELECT ......................................................194
6.2.1. FROM ................................................................................195
6.2.2. WHERE..............................................................................196
6.2.3. ORDER BY.........................................................................197
VI
VII
9.4.1. ..............................................300
9.4.2. VBA. Microsoft ADO ............................................308
9.4.3. ....................................................313
9.4.4. ....................................................315
10. ..................................................................326
10.1. Microsoft Excel 2007 ....................................................326
10.1.1. .......................................................................................327
10.1.2. Microsoft Excel 12.0 Object Library..........329
10.1.3. MS Excel
MS Access............................................................................................................330
10.1.4. Application................................................................331
10.1.5. , Real Estate.......................................332
10.2. Microsoft Word 2007 ....................................................345
11. ..........................................358
11.1. HTML- .............................................................................358
11.2. ..........................................................................................360
11.3. HTML- ..........................................................360
11.4. ...............................................362
11.5. ......................................................................364
11.6. .............................................................................365
11.7. .........................................................................................365
11.8. .........................................................................366
III.
"-" ..............................................................................................369
12. MS Access 2007
MS SQL Server 2005 .....................................................................................371
12.1. SQL Server 2005 ...............................................................372
12.2. MS SQL Server 2005 Developer Edition.....................................374
12.2.1. ..................................................................375
12.2.2. ......................................................376
12.2.3. MS SQL Server 2005 ..............................................377
12.2.4. SQL Server.....................................378
12.2.5. .............................................379
12.2.6. ............................................381
12.3. ......................................................................383
VIII
12.3.1. ...........................................................................385
12.3.2. ........................................................................................385
12.3.3. ..........................................................................................386
12.3.4. ......................................................................................386
12.3.5. ............................................................394
12.3.6. "-" ..................................396
12.3.7. Access- SQL Server ......................397
12.3.8. SQL Server .....................404
12.3.9. SQL Server.........................404
12.4. ODBC, OLE DB, DAO, ADO, ADO.NET .NET...........................405
13. " " MS SQL Server 2005 ...........................................409
13.1. MS SQL Server Management Studio .................................................409
13.2. .........................................................411
13.3. MS SQL Server 2005 .........................................................................412
13.4. .......................................................................................414
13.4.1. ..................................................414
13.4.2. .........................................................416
13.4.3. , ............................417
13.4.4. .................................................418
13.5. MS SQL Server 2005..............................................................419
13.6. ....................................................................421
13.7. Transact-SQL....................................................................................425
13.7.1. ....................................................................................425
13.7.2. ..........................................................................................426
13.7.3. ............................................................................................427
13.7.4. ..............................................................................................428
13.7.5. ..................................................................433
13.8. MS SQL Server 2005 .....................................................................438
13.9. ..........................................................................................442
13.9.1. ...................................................................................442
13.9.2. ................................................................................444
13.9.3. ..................................................445
13.10. .........................................446
13.11. ...................................................448
13.11.1. "--" .....................................................448
13.11.2. "--"........................................................452
13.12. .............................................................................................454
................................................................................................................455
13.13. .................................................................................458
13.14. ......................................................................................................461
IX
...........................................................................................650
,
, ? , ?
, . , . .
.
, ! , .
, . Real Estate, , "".
.
: " ".
. :
;
;
;
;
;
. .
. .
,
. ,
. ,
, . .
? ,
.
,
: Visual FoxPro 9, Delphi 6, SQL Server 2000, Visual Studio .NET
2003, Microsoft Access 2003, . ,
2007 ? ,
: "
(SP2), !" ,
SP2 ,
.
, , , .
. " " , .
,
. ,
, , . , - , ,
? MS Access !
! . . . :
" , , ,
, ". . -
, -
,
. Microsoft Access.
MS Access 97/2000. -
: , , , . . , , ,
.
MS Access 2002/2003. ,
. VBA . .
.
MS Access 2007 MS Office -
. .
, ? . .
, . , ,
"" , ,
! , , , . .
. , .
- .
, . . !
, !
- !
, , 1.
. 50 . , , .
. !
- .
, , "", . , ,
Real Estate, , ,
,
!
Microsoft Office Access 2007
Microsoft, .
.
, , , .
.
. ,
,
, .
Microsoft Access 2007. .
,
( ).
,
.
Stage, , ,
, , , Microsoft Office 2007, - ,
,
.
"-". ,
Microsoft SQL Server , .
, Microsoft SQL
Server, ,
,
.
" Windows SQL Server Microsoft
, Web-
, ,
Microsoft. ,
".
, "-",
80- - . 90- , . .
Microsoft SQL Server Microsoft Access Microsoft SQL Server Access.
. "-" , ,
, ,
, , ,
. , .
, ,
.
I , Microsoft Access 2007
.
2007. - 2007.accdb. -
-
, MS Office Access .
, ,
, , . , , ,
, ,
. .
,
,
. , , , . , ,
,
, , , .
: " , ". ,
. , , ,
.
, . - .
, , , , .
.
. -
, ,
. , , .
I , , -
. II,
, ,
,
. III MS Access, Visual Studio .NET
Delphi, "" .
, , .
.
I. MS Office Access 2007.
2 " "
, ,
Microsoft Access
.
, .
,
.
3 " "
.
. MS Access
, , ,
.
II. .
7 " "
-
10
.
.
, .
:
, . ,
, .
8 " "
. , .
9 " "
,
.
, ,
.
10 " "
Microsoft Office 2007. MS Excel
MS Word MS Access,
.
.
11 " " -
HTML Help Workshop. , ,
<F1>.
III. "-".
11
accdb-
MS SQL Server.
1 " "
50
.
2 " -"
Real Estate dat- SQL Server
2005 .
MS Access ,
, , , ""
. ,
! , .
, , .
. , , -
12
, (,
, , . .) 6 000 000
.
20
10 .
, Visual FoxPro 6 Visual Basic 6 SQL Server 2000
, .
, , MS
Access. .
"-".
Real Estate
. , .
. "
", . ,
,
, ,
.
, ,
""
(. I), : "
", " " "
".
: " Visual Basic for
Applications", " SQL Access", "
" " MS SQL Server 2005".
MS SQL Server 2005,
"" MS Visual Studio .NET 2005.
,
.
13
, . , .
, .
,
,
.
- . , , , .
,
. : , ,
. 20 ,
, , ,
, .
"
Microsoft Access 2000", " " " Microsoft
Visual FoxPro 9".
,
MS Access 2007 SQL Server 2005.
I
MS OFFICE ACCESS 2007
,
, ,
-
. !
1.1.
, . , . ,
. ,
, .
. . !
, , , . , ,
, ,
, (. 1.1).
. ,
, - ,
- . , Microsoft Access
18
2007
, SQL Server
2005, . .
200500 .,
MS Office Access 2007.
1.1. ""
Address
50
District
15
Land
10
Year
Material
15
Comment
Memo
Wear
Cost
15
Line
10
Square
10
11
Picture
OLE
12
Kind
13
Elevator
14
Flat
15
Storey
16
Rooms
17
SquareFlat
18
Dwell
1.
19
1.1 ()
19
Branch
20
Balcony
21
Height
22
Account
23
FioHost
60
...
24
Pasport
Memo
25
Fio
60
...
26
Born
27
Status
20
, , . ,
.
, ,
. :
;
-
, .
. , - .
.
( ) ,
, . .
20
,
. , , ,
, ( 10 Windows
NT) .
, . . .
"-", III, . ,
.
. , . : ,
. Microsoft Office Access 2007 Microsoft SQL Server 2005
.
,
. . ,
.
, ,
. .
1.2.
.
70- (E. F. Codd) . -
1.
21
, . : , , , ,
, . . ,
. - .
, .
,
,
. , ,
, ,
. , .
. . , ,
,
. . .
, ,
. , . , ,
,
.
, .
. ,
"",
, , , , ,
.
. . .
22
,
. . :
, , . , - .
,
. ,
. ? ,
!
.
, .
, , . ,
, ,
. ,
. ,
, , -
.
. -
.
Microsoft Access . .
.
. .
,
. , . ,
? , ?
, ?
.
,
. .
,
. .
""
1.
23
. II
"tbl". ,
, "qwr".
1.2.1.
,
, .
""
. , ,
24
. , ,
, ,
. , .
. .
. , , . . FIOHOST, , , : FAMILY, NAME, SECOND.
. ADDRESS : , .
. 1.2 1.3.
1.2. ( street)
STREET
NAME
30
SIGN
10
FIRST
1.3.
STREET
NAME
SIGN
FIRST
173
174
175
176
564
1.
25
FIRST ,
: ,
.
FIRST ,
: , ,
: .
,
. , , 175 street, , , . street.
, , FIRST c .
.
( -) 175, .
(. 1.41.6).
1.4. ( building)
STREET
HOUSE
10
DISTRICT
15
LAND
10
YEAR
MATERIAL
15
COMMENT
Memo
WEAR
COST
15
10
LINE
11
SQUARE
10
26
1.4 ()
12
PICTURE
OLE
13
KIND
14
ELEVATOR
1.5.
( flat)
STREET
HOUSE
10
FLAT
STOREY
ROOMS
SQUAREFLAT
DWELL
BRANCH
BALCONY
10
HEIGHT
11
ACCOUNT
12
FAMILY
20
13
NAME
20
14
SECOND
20
15
PASPORT
Memo
1.
27
1.6.
( owners)
STREET
HOUSE
10
FLAT
NUMBER
FAMILY
20
NAME
20
SECOND
20
BORN
STATUS
20
.
, (. 1.2, 1.41.6):
, , . (. 1.2). .
.
. .
, , . ,
, . MATERIAL
DISTRICT building. ,
. : ,
, , . .
(wall district),
building . (. 1.3). :
district wall (. 1.7 1.8).
28
. 1.2.
. 1.3.
1.
29
1.7. ( district)
DISTRICT
AREA
15
1.8. ( wall)
MATERIAL
WALL
15
building .
wall
district (. 1.9).
1.9. building
STREET
HOUSE
10
DISTRICT
LAND
10
YEAR
MATERIAL
COMMENT
Memo
WEAR
COST
15
10
LINE
30
1.9 ()
11
SQUARE
10
12
PICTURE
OLE
13
KIND
14
ELEVATOR
1.2.2.
,
.
. , Microsoft Access,
, .
, .
. ,
Microsoft Access
Null . Microsoft Access : , .
,
. : (), , ,
, ,
. STREET ( ) street
.
DISTRICT ( ) MATERIAL ( ) district
wall. .
building, ,
. -
1.
31
.
, .
flat () . :
.
. , . Access .
( ).
, Microsoft Access 2007 . .
1.2.3.
,
.
flat () (. 1.3). ACCOUNT ( ),
(: FAMILY, NAME, SECOND
PASPORT) . account
ACCOUNT
(. 1.10).
1.10.
( account)
ACCOUNT
FAMILY
20
NAME
20
SECOND
20
PASPORT
Memo
32
1.2.4.
,
. Microsoft Access : --,
--, -- --.
"--" , -
.
flat account (. 1.4). .
ACCOUNT. ! , ,
(ACCOUNT) ( 5- ).
.
, ,
, .
"--".
street building.
street building.
STREET. street.
building
flat, flat owners. ,
. .
"--"
"--". . ,
, "--".
.
"--"
,
,
.
, . . . Microsoft Access
.
- ,
"--".
1.
33
"-" .
. 1.9, .
. 1.4.
1.2.5. ?
, .
Oracle DB2, ,
.
1.3.
Microsoft Access 2007 . .
34
, .
Microsoft Office. Microsoft Office Access 2007.
. .
Microsoft Office
Access (. 1.5).
. Microsoft Access 2007 ,
.
.
. , . Real Estate.
. 1 (. 1.6).
. Microsoft Access , ( ) ,
: , -
1.
35
, , , . , -
. Real Estate.accdb,
.
mdb;
accde MS Office Access 2007,
.
accdb accdr ""
MS Office Access 2007. , accdb.
,
Microsoft Office.
, Microsoft 20032006 .
MS Office. Microsoft Office Access 2007 -
36
. , Microsoft
Access . , - . Microsoft Office Access (. . 1.5)
. . ,
,
. Office (. 1.7).
.
MS Access 2007 . , , .
, (. 1.8).
. Microsoft
Office Access 2007 , , .
1.
37
, .
. (. 1.8) , . . Microsoft Access .
.
.
, .
, . ""
, .
.
1024768 , MS
38
.
, .
Access , , . , , .
.
OK.
Microsoft Access 2007
.
.
, , , , .
,
MS Office Access 2007 . , ,
1.
39
1.4.
Microsoft Office Access 2007:
;
;
SharePoint;
;
.
,
.
. .
.
. ,
STREET ( ),
. STREET
255 , MS Office Access 2007
.
.
, , . .
!
, SharePoint, URL.
40
, .
.
, .
.
1 (. 1.9). . ( ) ,
() .
! .
.
. 1.9.
Microsoft Office Access 2007
, . . 1.11
Microsoft Access 2007.
64 ,
.
. Microsoft Access ,
1.
41
Visual
Basic for Applications (VBA).
1.11. MS Access 2007
,
. 255 .
. 64 .
. Memo
. Office Access 2007
( ), Access Memo.
().
. ,
,
,
:
0 "" 1
( : 1) ""
15 4
OLE
, , ,
, , . .
42
1.11 ()
Web
Web-
.
,
.
, ,
Microsoft Office Word 2007
.
.
Office. Access. . . .
.
1.
43
OLE , OLE-.
, Access JPEG, , ,
, OLE- JPEG. , MS Access 2007
- , .
, , .
, .
, , , , . ,
MS Office Word MS Word,
, Access.
Word , .
building.
. 1.8. , , . ,
. (. 1.10).
1. STREET
<Enter>. . .
2. .
. <Enter>.
. , !
3. .
.
4. . -
. .
5. .
. -
44
. 9999 , .
6. 15 .
. 1.10. building
. ,
(. 1.11). , 1 building
OK.
Access.
, ! building
(. 1.12).
1.
45
. building ,
Real Estate. , STREET, , .
STREET?
. 1.11.
1.12. ,
STREET
HOUSE
FLAT
STOREY
ROOMS SQUARE
DWELL
BRANCH
ACCOUNT
14
102
60,8
40
20
3450
14
102
100
70
28
1000
14
102
78
60
16
4321
14
102
90
80
666
14
102
100
95
30
778
14
102
10
200
190
9787
14
102
10
170
150
10
879
179
104
30
20
23210
179
104
42
30
11
3267
179
104
27
20
6666
179
104
100
90
4587
46
1.5.
, , . .
.
, Microsoft Office Access 2007,
, . "".
, ,
. .
, .
, , . . , . ,
.
. , ,
. ,
Access 2007 .
. -, , - , . .
.
, .
,
.
,
, . 1.2.
1.
47
.
.
. , . - . .
flat (. . 1.4) ACCOUNT ( ).
.
1.5.1.
, () . ACCOUNT
flat. :
1. flat (. 1.12).
ACCOUNT,
.
3. .
4. ACCOUNT , -
( ).
5. .
6. , ,
. .
1.5.2.
account ( ).
,
, ACCOUNT.
48
:
1. account .
. 1.12. ACCOUNT
2. ACCOUNT,
. , ,
(. 1.13).
3.
Microsoft Office Access 2007.
ACCOUNT (. 1.14).
4. .
1.
49
5. , ,
. .
. 1.13.
. 1.14.
1.5.3.
flat ().
: STREET
( ) HOUSE ( ) FLAT ( ).
1. flat (. 1.15). -
50
2. STREET,
. , ,
. <Ctrl> , , HOUSE FLAT. (. 1.15).
. 1.15.
. 1.16.
1.
51
3.
Microsoft Office Access 2007. . : , ,
. , ACCOUNT flat
. , .
. : flat. . 1.16.
!
4. -
1.6.
, ,
. . ,
, , , . . , ,
, , ,
.
.
,
Microsoft Access 2007.
1.6.1.
,
. , . 1 9, (. 1.17).
52
district (), :
1. district .
.
4. : 1 9
. , . <m>.
5. -
. 1.17. DISTRICT ( )
1.
53
, 19,
(. 1.18).
. 1.18.
1.6.2.
. ,
: ,
. , :
1. flat . -
Microsoft Office Access 2007.
(. 1.19).
.
3. :
.
4. .
. .
5. .
flat. -
54
. 1.19.
1.
55
6.
DWELL, .
BRANCH BALCONY :
[SQUAREFLAT]=[DWELL]+[BRANCH]+[BALCONY]
7. , OK.
8.
(. . 1.19). ,
: . .
9. -
(. 1.21).
. 1.21.
1.7.
. . . .
. .
. (. 1.22).
1.7.1. "--"
district () building ().
"--".
56
. 1.22.
.
1.
.
3. .
4. .
.
5. district () -
. .
6. district (. 1.23).
building ().
7. district building -
DISTRICT. DISTRICT
( ), , , "" DISTRICT building.
1.
57
.
(. 1.24).
. 1.23. building
8.
. Microsoft Access 2007
, , .
"" ""
, "" .
( ).
MS Access 2007
.
, ,
, .
58
. 1.24. "--"
district building
. , building , , district ,
.
, . .
.
, .
,
district, building
MS Access .
district,
Access 2007 . ,
? ,
!
,
. . 1.4.
flat owners. flat : STREET+HOUSE+FLAT.
1.
59
:
1. STREET flat
.
2. <Shift> , ,
flat, , , ""
owners.
4. .
(. 1.25). ,
(. . 1.24), DISTRICTDISTRICT , ,
flat owners
.
60
5. , .
6. , . -
.
.
(. 1.25)
. . .
flat owners ,
. 1.25.
1.7.2. "--"
account flat, . .
. :
1. ACCOUNT (
).
2. , ,
ACCOUNT flat. . .
3.
( account). ( flat).
( ).
1.8. ,
, , ,
, MS Access . -
1.
61
! ,
. . .
flat () 16 291 .
, , . ,
. ! , , . . ,
. , :
1.
2. OK.
3. . flat -
.
4. -
. 1.26.
62
5. (. 1.28).
. 1.27.
. 1.28. flat
flat ,
. Real Estate, ,
" flat", . .
,
. ,
.
. ,
, (. 1.29).
. 1.29 , .
. 1,
48, 45,
1.
63
42,4 2,
30,4 2. , .
.
, , , .
.
<Delete>. (. 1.30).
. 1.29. flat
. 1.30.
1.9. "--"
"" (.
1 1). .
64
. ,
, .
" " .
"--" : (. 1.31).
. 1.31. "--"
, "--". , -
(. 1.32), , . -
, , -.
,
. :
.
( ) : " " "
1.
65
". . 1.33
"--" "--"
.
. 1.32. -
. 1.33.
66
" "
"- " " " (GoodsID + NumberPart).
Microsoft Access 2007
.
- . . , , , .
: . .
Microsoft Access 2007 , ,
. .
, . , . ,
, . . , , . Microsoft Office Access 2007
, ,
,
.
68
2.1.
MS Access, .
(. 2.1).
:
;
;
,
;
;
;
.
, , . MS Access 2007
2.
69
. .
. Access-
.
. MS Access .
. .
. ,
.
. ,
() , ,
. . MS Access. . 2.2 ,
user () Real Estate.
. 2.2.
70
. . . . ,
, ,
"" , ,
. ,
!
2.2.
Microsoft Access 2007 .
, . , , ,
.
.
. .
, .
Building ().
building -:
street () district ().
1.
,
(.
2.
71
. 2.1). .
.
2. . (. 2.3).
.
building.
. 2.3.
3.
building.
, .
.
. building
,
STREET DISTRICT. -,
. . street
district. NAME, SIGN AREA.
4. -
. ,
72
: . .
5.
: , , , ,
. ,
(. 2.4). .
. 2.4.
6. . Access 2007 25 .
7. -
. , ,
. .
. . 2.5 Building .
,
2.
73
. . .
. 2.5.
, MS Access 2007,
. MS Access :
;
;
;
;
.
. .
.
( , ,
74
). . . .
, .
. "" ,
. MS
Access 2007 Office (. . 1.7).
. , .
2.3.
,
.
(. 2.6), Microsoft Access 2007.
. 2.6. , .
2.
75
building.
. , ,
. . . 2.6 1.
. ( Real Estate) .
Building,
(. 2.7).
. 2.7. , .
MS Access
2007: , Building -
76
.
. .
.
.
, . <F4>. MS Access, , . .
. MS Access 2007
:
, ;
, ,
, ;
,
;
,
;
.
2.3.1.
, . , . ,
. .
.
,
. ,
.
.
:
1. , , ,
, .
2. .
2.
77
3. .
. . -
4. ,
. (. 2.8).
.
. 2.8.
MS Access 2007
. , . , .
, (
- )
/.
78
2.3.2.
,
. MS Office Access 2007 "" , ,
. , MS Office 2007,
, . ...\Microsoft
Office\Office12\Bitmaps\Styles .
. 2.9.
:
1. .
.
.
2. . MS
2.
79
4. .
: .
.
.
5. . (. 2.9).
6. OK.
, ,
. .
, .
. , .
.
.
, .
, , ,
.
, . .
2.3.3.
MS
Access 2007 ,
(. 2.10). . 2.1 .
80
. 2.10.
2.1.
. ,
, ,
. ,
. . MS Access
.
, , , VBA
. ,
. ,
. , .
,
2.
81
2.1 ()
/.
.
.
.
OLE ( ).
.
,
. , .
( ).
,
Bit MS Access
. ,
Bit MS Access
. .
. . MS Access 2007
. MS Access
. OLE.
82
2.1 ()
.
. OLE.
.
.
Web-,
.
. , , , . ,
, .
MS Access 2007 .
,
. , .
, . , , "". .
,
. OLE , . . ""
.
, .
.
.
,
, . , OLE
2.
83
.
.
. ,
.
2.3.4.
,
(. 2.11). . 2.2 .
. 2.11.
2.2.
2.2 ()
84
.
.
2.
85
2.2 ()
2.3.5.
, , c ,
,
.
1. MS Access 2007 .
2. .
. .
3. .
. .
4.
86
5. . , -
.
6. building.
.
7. . -
. ,
, .
. 2.12 Microsoft Access 2007 . !
. 2.12.
building ,
Building, . STREET.
2.
87
2.3.6.
, ,
, . MS Access
.
( ) MS Access
.
Building Real Estate.accdb. , . .
1. ,
2.
.
.
, . . (. 2.13).
. 2.13.
3.
" ".
(. 2.14).
88
street,
" "....
. 2.14.
4. . , -
, .
street .
5. MS Access
street, (. 2.15). .
6.
. , .
. .
. .
2.
89
. 2.15.
7.
(). ,
street . (. 2.16).
8. . .
building, street.
46 , ,
.
"" .
9. ,
. "" .
(. . 2.14)
, , , "" -
90
, ""
.
. 2.16.
,
. MS Access 2007
. -, "" ,
. -, .
, . , , . "" -
<Ctrl>.
2.
91
2.3.7.
.
, HOUSE building (. 2.17).
.
1. building,
. c , , .
, . ,
. ,
.
3.
. 2.17. HOUSE
, . -
<Shift> .
92
, .
MS Access 2007
. , .
.
.
.
(. 2.18).
.
.
1. building,
. 2.18.
2. COMMENT.
.
.
.
3. .
2.
93
4. .
.
5. "COMMENT"
. . .
, .
2.3.8.
,
"" "", . ELEVATOR (). .
. .
. .
.
.
. .
. ,
(. 2.19).
. 2.19.
94
2.3.9.
building () KIND . : , , . .
1 4. ,
, , "--"
building , . , Microsoft Access 2007
, , , .
.
1. ,
2.
.
. : Microsoft Access !
3. . -
. , ,
,
. . .
4. (. 2.20) .
, . .
. (. 2.21).
5. (. 2.22).
, 1
, 2 , 3 , 4 .
2.
95
. 2.20.
. 2.21.
6. (. 2.23) building,
.
. KIND ( ).
96
. 2.22.
. 2.23.
7. (. 2.24)
. , , .
().
2.
97
. 2.24.
8. -
. ,
, .
2.3.10.
, . Microsoft Access , OLE
. OLE, ,
, , . .
(. . 2.6).
,
PICTURE ( OLE) building.
1.
98
2. . -
. , , ,
. .
3. ,
.
. .
5. . Microsoft Access
.
(. 2.26).
.
. 2.25.
Building
,
.
, . .
2.
99
"" .
,
. .
,
, .
. 2.26. :
; ;
.
(Flats), building, ,
:
100
1. Real Estate.
2. Building. ,
.
3. (. . 2.6).
( ).
. .
4. , -
.
5. . -
(. 2.27).
6. ,
OK.
, .
7. ,
,
. . - .
.
. 2.27.
2.
101
2.4.
, .
2.4.1.
,
( ) (. . 2.17). ,
. . , . .
, -
. . ,
, .
, .
-
.
. , ,
. , .
, .
. ,
, , .
, -
. . , ,
.
102
2.4.2.
, ,
, .
.
.
, , , .
, .
,
. <Shift>. .
, ,
.
(. . 2.11) : , , . .
2.5.
.
. .
, , " ".
<Enter> <Tab>, .
. .
.
2.
103
:
1. .
( ) .
.
.
2. MS Ac-
cess 2007 . .
3.
(. 2.28).
. 2.28.
104
4.
, . . .
5. .
, , ,
. . , .
( )
.
2.6.
Building .
,
, - .
, ,
. ,
, ,
, flat, owners account, .
Flats ().
2.6.1.
,
, . , , . Flats flat, Flats,
, , . .
1. MS Access 2007 .
2. .
, .
2.
105
3. .
flat , account. .
4. flat account -
, . 2.29 ( ""
).
,
. ACCOUNT ( ), , .
5. flat account
(. 2.30).
.
6. , . ,
. FLAT.
7. Flats.
. 2.29.
106
. 2.30.
STREET HOUSE:
[Forms]![Building]![STREET]
[Forms]![Building]![HOUSE]
. ,
, Building Street (), , Building
House ( ). . 2.30.
. .
SQL. . SQL, ( 2.1).
2.1. Flats SQL
SELECT flat.STREET, flat.HOUSE, flat.FLAT,
flat.STOREY, flat.ROOMS, flat.SQUAREFLAT,
flat.DWELL, flat.BRANCH, flat.BALCONY,
flat.HEIGHT, account.ACCOUNT, account.FAMILY,
account.NAME, account.SECOND
FROM account INNER JOIN flat ON account.ACCOUNT = flat.ACCOUNT
WHERE (((flat.STREET)=[Forms]![Building]![Street])
AND
((flat.HOUSE)=[Forms]![Building]![House]))
ORDER BY flat.FLAT;
,
,
SQL. MS Access , II.
2.
107
2.6.2.
,
, .
, Flats ,
, flat . , , . .
. ,
Flats , Visual Basic
(Visual Basic for Applications, VBA). 2.2. MS
Access, VBA . 5.
. 2.31. Flats ()
108
2.2. Flats
Private Sub Form_BeforeInsert(Cancel As Integer)
Me!STREET = [Forms]![Building]![STREET]
Me!HOUSE = [Forms]![Building]![HOUSE]
End Sub
MS Access . .
Me (. 2.31). , .
, , (Street+House)
.
2.6.3.
, . ( Flats) .
, "--". .
. ,
""
"". MS Access ,
, .
. . 2.32 : Building ( ) Flats ( ). Flats Owners ( ).
.
1. Flats .
2. ,
2.
109
3.
. ,
.
.
4. , , -
,
. . .
5. ,
. ""
. .
owners (. 2.33).
110
6.
Real Estate. ,
Owners. .
. 2.33.
Flats.
Owners. . ,
, .
(. 2.35).
2.
. 2.34.
. 2.35. ,
111
112
owners.
. STREET,
HOUSE FLAT . . . , .
.
,
: . STREET, HOUSE FLAT.
<Delete>.
. .
. , . , ,
. - <Ctrl>,
-
<Shift>. ,
. 2.32.
2.6.4.
Flats , .
. 2.36.
2.
113
, , . 2.32,
- (. 2.36).
. Flats
() Building (), . .
.
Building.
1. Building .
2. ,
3.
.
4. Building, -
. .
5. , , -
,
. . .
6. , . 2.37.
, , .
7. , -
.
Flats (. 2.38).
8. . -
Flats , ,
: .
9. . -
, , . Access
.
114
. 2.37.
. 2.38.
2.
115
10. . -
. ,
VBA , Microsoft Access .
, Wizard. () MS Access. , . Building
. . . "" 2.3.
2.3.
Private Sub 190_Click()
On Error GoTo Err_190_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "flats"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_190_Click:
Exit Sub
Err_190_Click:
MsgBox Err.Description
Resume Exit_190_Click
End Sub
,
, ( 2.4).
2.4.
Private Sub 190_Click()
DoCmd.OpenForm "flats"
End Sub
116
2.7.
, , , . Microsoft Access .
. ,
. !
2.
117
2.7.1. ,
, :
1. C .
.
2. Microsoft Access ,
. (. 2.39).
3.
.
,
, (
).
4. .
5. . .
. 2.39. ,
118
, , MS Access
,
.
. 2.40.
2.
119
. .
. .
Building: (. 2.40). , , .
Microsoft Access 2007.
, ,
, . ,
1909 ,
.
,
, .
"Is Not Null". -
. , , .
.
(. . 2.39). Building,
, ,
: " ".
, . , :
" ".
- - , .
2.7.3.
,
Microsoft Access ,
. . . 2.6
120
, .
, ? . , ,
, . . Microsoft Access ,
. (. . 2.39). . . . , (. 2.41).
. 2.41.
, .
2.
121
2.8.
Real Estate - (. 2.42).
Start. Building
. 2.5. 2.6 . MS Access 2007
.
. 2.42.
Real Estate
2.5. Building
Private Sub 2_Click()
'
On Error GoTo Err_2_Click
Dim stDocName As String
Dim stLinkCriteria As String
DoCmd.Close
'
122
stDocName = "Building"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_2_Click:
Exit Sub
Err_2_Click:
MsgBox Err.Description
Resume Exit_2_Click
End Sub
2.6. Stop
Private Sub 1_Click()
' STOP
'
' MS Access
DoCmd.Close
'
End Sub
. 2.43.
Real Estate
2.
123
.
.
. ,
. ,
.
"" , : , , , . Flats
() Document.
3.1.
MS Office Access 2007
. , . ,
, .
,
, .
3.
125
MS Access
, , .
.
.
. -.
1. street,
.
2. MS Access 2007
. MS Access
(. 3.1).
3. , , -
.
MS Access 2007
street.
. 3.1.
,
.
Microsoft Access 2007,
,
126
.
.
,
, ,
.
. .
3.2.
Flats street owners. , Flats ,
, Building.
, , Document.
1. MS Access 2007 .
2. .
, .
3. .
. Flats . street
owners, .
. , . 3.2.
4. street Flats MS Access -
. Flats
street, . Flats
owners .
5. STREET Flats. -
, ,
STREET owners. HOUSE FLAT (. 3.3).
6. ,
Document
3.
127
. 3.2.
. 3.3.
7. Document
128
8. , Document.
. 3.1.
9. Document. , -
Flats (), ,
, Building ().
FLAT: [Forms]![Flats]![FLAT]
.
. FLAT Flats.
. .
SQL. .
SQL, .
3.1.
SELECT street.NAME, street.SIGN, flats.HOUSE, flats.FLAT,
flats.STOREY, flats.ROOMS, flats.SQUAREFLAT, flats.DWELL,
flats.BRANCH, flats.BALCONY,
flats.HEIGHT, flats.ACCOUNT, flats.FAMILY, flats.NAME,
flats.SECOND, owners.NUMBER, owners.FAMILY, owners.NAME,
owners.SECOND, owners.BORN, owners.STATUS,street.FIRST
FROM street INNER JOIN (flats INNER JOIN owners ON
(flats.HOUSE = owners.HOUSE)
AND (flats.FLAT = owners.FLAT)
AND (flats.STREET = owners.STREET))
ON street.STREET = flats.STREET
WHERE (((flats.FLAT)=[Forms]![Flats]![Flat]))
ORDER BY owners.NUMBER;
,
,
SQL. MS Access , II.
3.
129
3.3.
MS Office Access 2007 . . , . .
. .
, :
. .
. . -
, ,
.
. .
. , , .
.
. ,
.
. . -
.
. .
.
. .
3.3.1.
MS Access 2007
. , , . -
130
: , . .
.
. 3.4.
. 3.5.
3.
131
3.3.2.
MS Access 2007 .
,
. , . . , .
OLE , . .
""
. ,
. .
.
,
, .
, OLE
.
.
. ,
.
, . 3.6, :
1. . -
.
2. .
132
3. . -
Document.
4. -
/ .
5. .
6. -
Document.
.
7.
"". . .
8. .
9. . Arial
10 . .
.
10.
. .
11.
.
.
12. -
" , ".
13. NAME, SIGN, HOUSE FLAT
. . , <Shift>.
14. . -
- .
, . . 3.1.
15. NUMBER, FAMILY, NAME, SECOND, BORN STATUS
. , Access, .
. 3.6.
3.
133
. 3.6. Document
3.1.
134
3.1 ()
3.
135
3.1 ()
3.3.3. ,
, ,
, . , . . MS Access 2007 .
.
1. .
2.
.
.
(. 3.7).
3. , .
136
4. ,
.
5. OK. .
. 3.7.
,
(. 3.8).
: " ", . :
1. .
2.
. . . .
3. , , -
. .
4. .
.
5. .
3.
137
. 3.8.
6.
. -
(. . 3.8).
7. ,
.
MS Access Now(). OK. =
.
8. 49 : " ".
9. .
138
10. . Arial
10 . . .
11.
. .
12.
.
. .
3.4.
,
.
.
Flats .
VBA, , 3.2.
3.2.
Private Sub 40_Click()
On Error GoTo Err_40_Click
Dim stDocName As String
stDocName = "Document"
DoCmd.OpenReport stDocName, acPreview
Exit_40_Click:
Exit Sub
Err_40_Click:
MsgBox Err.Description
Resume Exit_40_Click
End Sub
3.
139
. 3.9.
140
3. (. 3.9).
, . , .
4. ,
. , (. 3.10),
, Access 2007.
, .
. .
.
. 3.10.
3.
141
3.6.
, Microsoft Access, .
. , (, , . .), , !
,
(, , . .).
1,
. (. 3.11).
. 3.11.
142
- <Shift>
.
ADDRESS. SIGN.
ADDRESS "".
. ADDRESS , .
(. 3.12).
. 3.12.
.
, .
. ,
. ,
.
.
.
3.
143
. ,
. .
.
, , ,
, , , , .
, . , , Microsoft Access.
( )
, . ,
,
.
, . , Building
(Visible)
Visible.
:
Forms![Building].Visible.
. , , , .
:
IIF(expr; truepart; falsepart)
expr
ADDRESS ( + -
144
+ + ), ( + + + ).
FIRST (.
. 1.2).
Microsoft Access
SQL Server, "" , True False,
Microsoft Access (
), Microsoft Access 2007
(. 3.13).
. 3.13.
3.
145
Trim(stringexpr), , Str(number), .
3.3
ADDRESS.
3.3.
=IIF([First]=;
Trim([street.Name]+' '+[Sign]+', '+(Trim([House]))+',.'+
Trim(Str([Flat])));Trim([Sign]+' '+[street.Name])+
', '+(Trim([House]))+', .'+Trim(Str([Flat])))
. 3.14 .
. , . . , .
.
. 3.14.
Microsoft Access ,
. , , .
,
, . .
146
.
! , , ( ). , ,
(=). .
, ,
(. 3.2).
3.2.
[Dwell]+[Branch]
[SquareFlat]-[Balcony]
-345
[Cost]*[Wear]
[Cost]/[Square]
[Year]\2
Mod
[Cost] Mod 12
[Line]^2
()
3.
147
( ), (. 3.3).
3.3.
>
5678>3000
>=
234>=2341
<
1000<1001
<=
6789<=6789
<>
567<>567
(. 3.4).
3.4.
And
""
()
And
And
""
()
Or
Or
Not
Not
Or
Not
148
Abs()
Abs(-345.6)
345.6
Atn()
Atn(1)
0.7853982
Cos()
Cos(1)
0.5403023
Exp()
Exp(1)
2.7182818
Int()
(. )
Int(-15.2)
16
Int(13.6)
13
Log()
Log(10)
2.302585
Rnd()
0 1
Rnd()
0.2895625
1 , 0 , 1
Sgn(-10.1)
Sgn(0)
Sgn(10.1)
Sgn()
()
Sin()
Sin(1)
0.8414710
10
Sqr()
Sqr(2)
1.4142136
3.
149
, ,
. 3.6.
3.6.
Date()
Date()
12.03.2008
Day()
Day(Date())
12
Month()
Month(Date))
Now()
Now()
12.03.2008
11:42:28
Time()
Time()
11:45:40
Year()
Year(Date())
2008
Chr()
, ANSI
Chr(37)
% ()
Lcase()
Lcase("aSD")
asd
Ucase()
Lcase("aSD")
ASD
10
Mid()
.
,
Mid("abcdef",2,3)
bcd
11
Rtrim()
Rtrim("abcd ")
abcd
150
3.6 ()
12
Ltrim()
Ltrim(" abcd")
abcd
13
Trim()
abcd
14
Str()
Str(1234.56)
1234.56
15
Val()
Val("1234.56")
1234.56
MS Access 2007
Microsoft Access 2007 , 1992 . Microsoft, 2007 100 Access ,
. Access
, ( ), , , , Microsoft Access .
.
4.1.
Microsoft Access.
, !
, ,
. ,
,
.
, . , MS Access 2002, , .
:
152
1. MS Access 2007.
2. . Microsoft
Office Access ,
.
3. Office.
.
4.
. , .
2030 MS Access. , , .
12 . :
1. MS Access 2007 Office.
2. Access.
3. . .
4. -
4.2.
MS Access 2007
Microsoft Access 2000.
,
, .
(2000 20022003) Microsoft Access 2007 .
4. MS Access 2007
153
1. MS Access 2007.
2. . Microsoft
Office Access ,
.
3. Office. -
.
4. ,
, MS
Access 2007 .
MS Access 2007
(2000 20022003) .
, .
4.3.
Microsoft Access 2007 .
:
1. .
2. MS Access 2007
.
3. .
(. 4.1).
4. , .
: , .
,
, . , , , , .
,
. Microsoft Access 2007 -
154
"" "".
"" . .
, HOUSE flat .
104? : ,
.
. 4.1.
4.4.
accde-
Microsoft Visual Basic, accde- ,
, . Visual Basic - ,
, . , ,
.
accde-
:
4. MS Access 2007
155
, ,
;
,
;
Microsoft Access
VBA (accde-
);
, .
, ,
, accde-,
MS Access.
MS Access 2007.
Access, accde-,
, . , , accde. accde- , ,
, .
Microsoft Access , accde-, , . accde- Microsoft Access 2007
MS Access 2007, accde-,
MS Access accde- (
Microsoft - ).
Accde- accdb .
1. , accde.
2.
ACCDE.
3. ,
,
.
156
. 4.2.
:
1. Real Estate .
4. MS Access 2007
157
2. , -
Excel. HelpMe,
(. 4.2). 4.1.
3. .
4. . Excel.
5. Excel.
6. -
. OK.
7. Microsoft Excel 2007,
(. 4.3).
. 4.3. HelpMe,
Microsoft Excel 2007
4.1. SQL-
158
4.6.
Microsoft Access
Microsoft Access 2007.
, -
, Microsoft Access , .
, -
.
.
, .
.
, ,
. Windows, |
| | .
.
, ,
. Windows
4. MS Access 2007
159
, .
,
Windows, .
, , . .
4.7.
MS Access 2007 accdb. , "", .
, . , - , , MS Access
accdb.
, .
. :
1. , .
2. -
Access.
3. , , -
.
.
160
4. ,
,
.
5. .
, , ,
.
.
! , "-". , . (, , )
, .
""
"".
RealEstate_be.accdb.
"" RealEstate.accdb
(RealEstate_be.accdb)
, "" .
"". :
1. RealEstate.accdb ("").
2. .
. . , .
. . . "" !
3. . , <Shift>,
.
4. <Delete>.
5. .
4. MS Access 2007
161
6. . -
Access.
7. Access.
8. RealEstate_be.accdb (""). -
.
9.
. , "", "", .
10. (. 4.4) OK.
11. . c
"".
. 4.4.
, ,
. "".
111 .
MS
Access 2007 :
;
162
, ;
;
, ,
4.8.
MS Access 2007
(,
). , ,
. MS Access
, , , .
,
. :
(, , , ...);
( ,
) . , , ,
;
. -
;
. -
,
.
:
1. .
2. Office,
.
3. . (. 4.5).
4. ,
4. MS Access 2007
163
. ,
/, "" "". .
II
,
, ,
Visual Basic for Applications
Visual Basic for Applications (VBA)
. , , MS Visual C++, MS Visual C#,
MS VB, MS Visual FoxPro, Borland Delphi,
. VBA
Microsoft Office, AutoCAD, CorelDRAW . MS Office 2007 VBA 6.5. VBA,
Microsoft Access. .
168
II.
( , -
: General StartMainMenu);
(: Properties - ModuleMain);
(Immediate).
. .
, Properties .
. , , , . . .
(Alphabetic). (Categorized) .
VBA.
. VBA :
. ( )
( ),
.
169
. , :
1. VBA Tools. -
.
2. Options. .
3. Procedure separator.
( . 5.1 General
StartMainMenu)
. VBA ,
, , .
5.2.
VBA (, , ). ,
(. 5.2).
, :
1. VBA Tools. -
.
2. Options. .
3. Auto Data Tips.
,
. <Ctrl>+<I>.
II.
170
. 5.2. VBA
<Enter>.
.
VBA
. - ,
VBA . <F1>.
.
5.3. ,
, . Visual Basic
for Applications .
, . ,
. .
:
;
, @, &, !, $, #;
255 ;
,
VBA.
171
.
Dim, Public, Private Static. ,
. VBA
.
.
Public.
. VBA. :
Public Account As Integer
Account Integer.
.
. Dim
Private. .
, . "".
.
. :
Privat LastName As String
Dim LastName As String
LastName () String.
.
.
Static. .
, . , "".
Static, , . Dim, . :
Dim
Period Long.
.
. VBA.
II.
172
Visual Basic. .
2. Microsoft Visual Basic (. 5.3).
Debug .
3. . Debug.
4. .
5.
Proba,
ModuleSlave.
Proba.
Step Info (F8) . Debug.Print, Immediate .
173
VBA
.
. VBA , , , , , Variant.
, .
. 5.1 VBA. Byte,
Integer Long . Byte
. Currency ()
.
, Single Double.
5.1. Visual Basic for Applications
Byte
0 255
Integer
32 768 32 767
Long
Single
:
3.4028231038 1.4012981045
:
1.4012981045 3.4028231038
Double
:
1.7976931348623210308
4.9406564584124710324
:
4.9406564584124710324
1.7976931348623210308
Currency
Boolean
False True.
0, False. True.
True
1
II.
174
5.1 ()
Date
1 100 31
9999
Object
String
10
:
Option Explicit
. , , , , .
. "". , ,
.
, . Visual Basic
for Applications , ,
. , . VBA , , . , :
Public Const Pi As Double=3.141592653589793
175
,
, . VBA , .
5.4.
MsgBox()
Visual Basic for
Applications ,
. MsgBox()
VBA. 21 .
5.1
Real Estate, .
5.1.
Public Sub StopMenu()
'
' MS Access
If MsgBox(" Real Estate " _
& Chr(13) & " MS Access?", _
VbInformation+VbOKCancel+VbDefaulButton1, "") = VbOK Then
Application.Quit acQuitSaveAll
'
End If
End Sub
, ' , .
. .
(_) , .
VBA. , :
VbInformation + VbOKCancel + VbDefaulButton1
VbOK
II.
176
' (. 5.3)
vbOKCancel=1
' OK (. 5.2)
VbDefaulButton1=0
OK (. 5.4), VbOK=1.
. 5.4.
MsgBox() ( 5.2),
.
5.2. VBA
If MsgBox(" Real Estate " _
& Chr(13) & " MS Access?", _
65, "") = 1 Then
Application.Quit acQuitSaveAll '
End If
:
;
VBA , -
, .
. 5.2 , MsgBox() . . 5.3 , . . 5.4 ,
, . 5.5 , .
177
5.2.
VbOkOnly
VbOkCancel
VbAbortRetryIgnore
VbYesNoCancel
VbYesNo
VbRetryCancel
5.3.
VbCritical
16
VbQuestion
32
VbExclamation
48
VbInformation
64
5.4.
VbDefaultButton1
VbDefaultButton2
256
VbDefaultButton3
512
VbDefaultButton4
768
II.
178
5.5.
VbOk
VbCancel
VbAbort
VbRetry
VbIgnore
VbYes
VbNo
5.5.
VBA . VBA
150 . . 3.5 3.6. Microsoft Access 2007
Access VBA.
5.3 ,
VBA . , VBA. ,
.
. ( 5.4).
5.3.
Public Sub DemoSin()
'
'
179
Static X As Single
Static y As Single
For X = 0 To 1 Step 0.1
y = Sin(X)
Debug.Print "=" & X & " Sin(X)=" & Y
Next X
End Sub
5.4. DemoSin
X=0
Sin(X)=0
X=0,1
Sin(X)=9,983342E-02
X=0,2
Sin(X)=0,1986693
X=0,3
Sin(X)=0,2955202
X=0,4
Sin(X)=0,3894183
X=0,5
Sin(X)=0,4794255
X=0,6
Sin(X)=0,5646425
X=0,7
Sin(X)=0,6442177
X=0,8
Sin(X)=0,7173561
X=0,9
Sin(X)=0,783327
VBA , , . , .
,
VBA. : Case, If, Sub, Step . .
, . ,
(. . 3.23.4).
, ,
(=). .
5.6.
, (, ,
. .), -
180
II.
. .
. ,
GrossSalary :
GrossSalary = 19800
10
(GrossSalary1, GrossSalary2,
GrossSalary3, ...), :
Dim GrossSalary(10) As Integer
. .
.
( ). , . Option Base 1,
. Dim
. ,
:
Dim GrossSalary(1 To 10) As Integer
GrossSalary(5)= 19800 '
. VBA ,
. 60 .
() Matric :
. .
Dim Matric(1 To 10, 1 To 10) As Integer
. Dim , .
ReDim. 5.5 ,
.
5.5.
Dim Sample() As Variant
' : , 5 (0:4) 6 (0:5)
'
ReDim Sample(4,5)
181
'
Sample(0,2)= 3
Sample(1,3)= 8
'
Summary= Sample(0,2)+ Sample(1,3)
' . (1:11)
ReDim Sample(1 To Summary)
'
Sample(3)= ""
ReDim , , . VBA
. Sample
(1:12). Preserve.
Ubound .
ReDim Preserve Sample( Ubound(Sample) + 1)
5.7.1.
, .
.
Sign 7.
Sign = 4
Sign = Sign + 3
Set. ( 5.6) cBar
II.
182
, Add () CommandBars ( ).
5.6.
Set cbar = CommandBars.Add(Name:="MainMenu", _
Position:=msoBarTop, MenuBar:=True, Temporary:=False)
' MainMenu -
' msoBarTop=1.
' MenuBar:=True
' MenuBar:=False -
' Temporary:=False -
'
5.7.2. With
With
.
With . .
With:
With oExcel.Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
EndWith
With:
oExcel.Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous
oExcel.Selection.Borders(xlEdgeLeft).Weight = xlThin
oExcel.Selection.Borders(xlEdgeLeft).ColorIndex = xlAutomatic
5.7.3.
VBA ,
. , (, .)
. VBA
183
, . , , .
If...Then , True, , Then.
If , . , If...Then,
:
If CountAvto=1 Then NewStatement= NewStatement+1
. ,
:
If CountAvto=1 Then
NewStatement= NewStatement+1
EndIf
If...Then...Else ,
Then, If True. ,
Else ( 5.7).
5.7. If...Then...Else
If QtyToHold > 0 Then
TransactionTypeHold = Hold_TransactionType
Quantity = QtyToHold
AddHold = EditTransactionOrderID
Quantity = QtyRequested
Else
QuantityGranted = 0
Account = Reseller
End If
II.
184
Case,
.
Case,
, Else.
5.7.4.
. VBA , :
For...Next;
Do...Loop.
For...Next ,
. ,
185
. ( 5.9) . .
5.9.
Option Base 1
Dim SampleArray (10,10,10) As Single
Dim i As Integer, j As Integer, k As Integer
Randomize
For i=1 To 10
For j=1 To 10
For k=1 To 10
SampleArray(i,j,k) = Rnd()
Next k
Next j
Next i
,
For Each...Next ( 5.10).
5.10. For Each...Next
Dim SampleArray (10,10,10) As Single
Dim ijk As Variant
Randomize
For Each ijk In SampleArray
'
ijk = Rnd()
Next
( 5.11)
For...To...Step...Next.
5.11.
Dim DemoArray(20) As Single
Dim i As Integer, Summa As Single
'
Summa = 0
II.
186
, , .
, ( 5.12). , CommandBars ( ), . Exit For.
5.12.
For Each cbar In CommandBars
If cbar.Name = "MainMenu" Then
' MainMenu .
'
Exit For
End If
Next cbar
Do ,
True ( While) True (
Until). :
Do While <>
<VisualBasicForAppication1>
Exit Do
<VisualBasicForAppication2>
...
Loop
:
Do Until <>
<VisualBasicForAppication1>
Exit DO
<VisualBasicForAppication2>
...
Loop
187
Do
Exit Do, .
( 5.13)
, VBA. While...Wend. 110 ,
7. attempt
.
5.13.
Dim rank As Integer
'
'
Randomize
rank = Int(10 * Rnd()) + 1
attempt = 1
While rank <> 7
attempt = attempt + 1
' 1 10
rank = Int(10 * Rnd()) + 1
Wend
5.7.5.
, VBA,
- . . ( 5.14). .
5.14.
Dim rank As Integer
'
'
Randomize
For i = 1 To 10
' 1 10
rank = Int(10 * Rnd()) + 1
attempt = attempt + 1
188
II.
5.8.
VBA
. VBA
Sub End Sub:
Sub <> (<1>, <2>, ...)
<VisualBasicForAppication1>
<VisualBasicForAppication2>
...
End Sub
. .
, "". VBA , ,
. ,
: ,
. .
.
.
.
, , . Account
( ):
Account 453, CountPages +1
VBA Call:
Call Account(453, CountPages +1)
VBA
: .
. , . , ,
189
, .
ByRef. .
, ,
.
ByVal.
. ProcedureOptionsMain 5.15.
5.15.
Sub ProcedureOptionsMain()
Dim A As Integer
Dim B As Integer
Dim C As Integer
A = 1000
B = 2000
C = 3000
Call ProcedureOptionsSlave(A,B,C)
Debug.Print A
Debug.Print B
Debug.Print C
EndSub
. ,
. ProcedureOptionsSlave 5.16.
5.16.
Sub ProcedureOptionsSlave(ByRef X, ByVal Y, Z)
X = X + 1
Y = Y + 1
Z = Z + 1
Debug.Print X
Debug.Print Y
Debug.Print Z
EndSub
190
II.
VBA,
:
Call <> (<__>)
: VBA , MS
Office Access 2007.
CurrentPath ModuleSlave. , ( 5.17). Login
.
5.17.
Public Function CurrentPath() As String
'
' ,
Dim NameBase As String
Dim NameBaseShort As String
Dim CountLetter As Integer
191
' ,
NameBase = CurrentDb.NAME
'
' Dir() - VBA
NameBaseShort = Dir(NameBase)
' , ,
' \
CountLetter = Len(NameBase) - Len(NameBaseShort) - 1
Debug.Print " : " & NameBase
Debug.Print " : " & Len(NameBase) & " "
Debug.Print " : " & NameBaseShort
Debug.Print " : " & Len(NameBaseShort) & " "
' CountLetter
' Left() - VBA
CurrentPath = Left(NameBase, CountLetter)
End Function
: NameBase, NameBaseShort
CountLetter. , , , , .
CurrentPath
. Debug.Print
.
ModuleSlave CurrentPath.
Debug Visual
Basic. .
Debug. .
Immediate Window (Ctrl+G). Immediate :
Debug.Print CurrentPath
? CurrentPath
Immediate (. 5.5).
II.
192
. 5.5. CurrentPath
, . ,
CountLetter :
CountLetter = 32
, Immediate,
. ,
. . "".
For CountLetter=1 To 5: Debug.Print CountLetter: Next CountLetter
Debug.Print .
Immediate, , .
,
:
Public Const Debugging = True
If End If:
If Debugging Then
Debug.Print " : " & NameBase
Debug.Print " : " & Len(NameBase) & " "
Debug.Print " : " & NameBaseShort
Debug.Print " : " & Len(NameBaseShort) & " "
End If
True False.
SQL Access
SQL (Structured Query Language) , .
. SQL
,
.
,
, -
SQL.
SQL-.
, . .
, , SQL. ,
- , . .
.
6.1. SQL
SQL :
, ;
, ,
;
.
II.
194
SQL, , . :
DML (Data Manipulation Language)
;
DDL (Data Definition Language) -
.
SQL MS Access .
. , , ,
, .
, SQL
, ,
.
6.2. .
SELECT
SELECT DML
(INSERT, UPDATE DELETE) ,
,
. SQL Real Estate.
SELECT MS Access 2007
. :
SELECT <_>
FROM <_>
[WHERE <_>]
[GROUP BY <__>]
[HAVING <>]
[ORDER BY <_>]
. , , , . .
.
6. SQL Access
195
6.2.1. FROM
FROM , .
tblStreet Real Estate :
SELECT Street, Name, Sign, First
FROM tblStreet;
II III , ,
"tbl". ,
, . .
. "qwr".
MS Access SQL-.
. :
1. MS Access 2007.
2. .
.
3. . .
4. SQL.
5. SQL.
6. " " .
. 6.1.
II.
196
MS Access .
, .
(. 6.2).
. 6.2.
6.2.2. WHERE
SELECT ,
WHERE, , , SELECT. WHERE , . ,
, WHERE, .
,
(Family) , tblOwners, :
SELECT Family, Name, Second FROM tblOwners
WHERE Family = ''
ORDER BY Name, Second;
6. SQL Access
197
. 6.3. 79
6.2.3. ORDER BY
, , , , - . SQL ORDER
BY, .
.
ORDER BY .
, , ,
SELECT. . .
/ .
, .
6.2.4. DISTINCT
SQL- .
DISTINCT. :
SELECT DISTINCT Family, Name, Second FROM tblOwners
WHERE Family = ''
ORDER BY Name, Second;
71 . , SELECT. ,
198
II.
, SQL
, . ,
.
? .
,
!
6.2.5. TOP
,
. :
SELECT DISTINCT TOP 10 Family, Name, Second FROM tblOwners
WHERE Family = ''
ORDER BY Name, Second;
10 , (DESC ):
SELECT DISTINCT TOP 10 Family, Name, Second From tblOwners
WHERE Family = ''
ORDER BY Name, Second DESC;
6.2.6. GROUP BY
,
, :
SELECT <_>
FROM <_>
[GROUP BY <__>]
6. SQL Access
199
:
SELECT Family, Name, Second FROM tblOwners
WHERE Family = ''
GROUP BY Family, Name, Second
ORDER BY Name, Second;
, , ,
. 71 79 ,
tblOwners. , . . :
SELECT DISTINCT Family, Name, Second FROM tblOwners
WHERE Family=''
ORDER BY Name, Second;
.
. , , .
.
6.2.7. HAVING
, SELECT GROUP BY. GROUP BY, HAVING ,
.
:
SELECT Family, Name, Second, Count(Family) AS
FROM tblOwners
WHERE Family = ''
GROUP BY Family, Name, Second
HAVING Count(Name)>1 AND Count(Second)>1
ORDER BY Name, Second;
II.
200
, SQL. , .
. 6.4.
6.2.8.
.
, .
. .
10
100 , .
MS Access .
WHERE, INNER-JOIN-ON.
: tblBuilding tblStreet, :
SELECT tblStreet.Name, tblStreet.Sign,
tblBuilding.House, tblBuilding.Year
FROM tblStreet, tblBuilding
WHERE tblstreet.Street=tblbuilding.Street
ORDER BY Year;
6. SQL Access
201
. 6.5.
.
199. ! .
FROM-INNERJOIN-ON:
SELECT tblStreet.Name, tblStreet.Sign,
tblBuilding.House, tblBuilding.Year
FROM tblStreet INNER JOIN tblBuilding
ON tblStreet.Street=tblBuilding.Street
ORDER BY Year;
, ! . . tblBuilding.
.
SQL .
II.
202
4
.
MS Excel. . ,
.
( NAME tblStreet)
( NAME tblOwners). ,
,
MS Access .
, , .
(, , ) (,
, ) .
SQL
.
: AS <>, &.
SQL- 6.1. . 6.6
. 206.
6.1.
SELECT tblOwners.FAMILY & ' ' & tblOwners.NAME & ' ' &
tblOwners.SECOND AS , tblStreet.NAME & ' ' &
Lcase(tblStreet.SIGN) & ' ' & tblBuilding.HOUSE &
' , .' & tblFlats.FLAT AS , tblOwners.BORN
AS [ ]
FROM ((tblStreet INNER JOIN tblBuilding ON
tblStreet.STREET=tblBuilding.STREET)
INNER JOIN tblFlats ON
(tblBuilding.STREET=tblFlats.STREET) AND
(tblBuilding.HOUSE=tblFlats.HOUSE))
6. SQL Access
203
. 6.6.
6.2.9.
SELECT, , , .
WHERE HAVING
.
SQL
tblFlats, . 6.2.
6.2.
SELECT *
FROM tblFlats
II.
204
WHERE NOT EXISTS
(SELECT * FROM tblOwners
: NOT EXIST.
.
True False.
tblOwners. ( ) EXIST.
9 18 475 txtFlats. , .
, . . .
( 6.3).
6.3.
SELECT tblStreet.Name, tblStreet.Sign, tblFlats.House,
tblFlats.Flat, tblFlats.Rooms
FROM tblStreet INNER JOIN tblFlats ON
tblStreet.Street=tblFlats.Street
WHERE NOT EXISTS
(SELECT * FROM tblOwners
WHERE Street=tblFlats.Street AND
House=tblFlats.House AND
Flat=tblFlats.Flat)
ORDER BY Name, House, Flat;
. 6.7 ,
.
EXIST NOT EXIST Microsoft Access Count(*). *,
( 6.4).
6. SQL Access
205
. 6.7.
Count(*)
, EXIST.
6.3.
DML (Data Manipulation Language), SQL (Structured
Query Language), .
: SELECT, INSERT, UPDATE DELETE.
II.
206
SELECT
.
.
6.3.1. INSERT
,
.
( ) :
INSERT INTO <_>
SELECT <>
( ) :
INSERT INTO <_>
[(1[, 2[, ...]])]
VALUES (1[, 2[, ...])
. Building
tblBuilding :
INSERT INTO tblBuilding
SELECT * FROM Building
INSERT SELECT, .
.
. .
, . tblStreet
:
INSERT INTO tblStreet
(NumSTREET, Name, Sign, [First])
VALUES (1033, ' ', '', False);
:
INSERT INTO tblStreet
VALUES (1033, ' ', '', False);
6. SQL Access
207
6.3.2. UPDATE
. UPDATE :
UPDATE <_>
SET 1=1]
[,2=2]
[ ...]
WHERE <_>
UPDATE
, , . .
, ,
. .
,
.
tblUser:
UPDATE tblUser SET LastName = ""
WHERE LastName= "";
II.
208
, . SQL Access
SET, Flats tblBuilding
, :
:
UPDATE tblBuilding SET Flats = DCountSQL(Street,House);
DCountSQL ( 6.5) -
ModuleSlave.
DCountSQL DCount(), .
tblFlats (), . :
DCount(, [, ])
. , . ,
. (*).
DCount() , Null.
. , , .
, . tblFlats.
. ,
, DCount().
, WHERE SQL, WHERE. ,
DCount() .
, , . DCount() Null.
Count()
. Count() DCount(), , . DCount(),
.
6. SQL Access
209
.
- ,
, , , Null .
6.5. DCountSQL
Public Function DCountSQL(NumberStreet, NumberHouse) As Integer
'
' NumberStreet -
' NumberHouse
.
SET , MS Access
! , .
:
UPDATE tblBuilding SET Flats = CountSQL(Street,House);
ModuleSlave.
6.6. CountSQL
Public Function CountSQL(NumberStreet, NumberHouse) As Integer
'
' NumberStreet -
' NumberHouse
'
'
Dim CN As ADODB.Connection
II.
210
' CN - -
' ADO
Dim RS As ADODB.Recordset
' RS - -
Set CN = CurrentProject.Connection
'
'
With RS
' RS (Recordset)
' : SQL-
.Source = "SELECT * FROM tblFlats " & _
"WHERE Street = " & NumberStreet & _
" AND House= " & NumberHouse
'
.ActiveConnection = CN
.CursorType = adOpenKeyset
'
' RS
'
.Open
End With
CountSelectSQL = RS.RecordCount
' RecordCount - RS
'
'
Set RS = Nothing
Set CN = Nothing
'
' CountSQL - -
CountSQL = CountSelectSQL
End Function
6. SQL Access
211
6.3.3. DELETE
, .
DELETE :
DELETE
FROM <_>
WHERE <_>
DELETE ,
. , EXECUTE DROP.
.
DELETE , ,
, .
, , . ,
.
6.4. SQL
MS Access
. 1.
"", DDL (Data Definition
Language).
DDL, , :
CREATE TABLE ;
ALTER TABLE ;
DROP ;
CREATE INDEX .
, , .
II.
212
1, 2
, .
1, 2
1, 2
(
TEXT,BINARY STRING)
1, 2
CONSTRAINT,
__
CONSTRAINT,
, TEMPORARY, , .
.
.
6. SQL Access
213
, CREATE
TABLE MS Office Access 2007 . 6.2.
6.2. , SQL
MS Access 2007
BYTE
SMALLINT=SHORT
INTEGER=LONG
SINGLE
NUMERIC= FLOAT=DOUBLE
CHAR(N)=TEXT(N)=STRING(N)
N-
BINARY(N)
(N-)
DATE=DATETIME
CURRENCY
LOGICAL=BIT
tabStreet "--"
tabBuilding (. 6.9).
tabBuilding. SQL:
CREATE TABLE tabBuilding
(NumStreet SMALLINT CONSTRAINT NumStreet REFERENCES tabStreet,
214
II.
House SMALLINT,
Land SINGLE,
Elevator LOGICAL,
CONSTRAINT NumStreetAndHouse PRIMARY KEY (NumStreet, House))
. 6.8. tabStreet
. 6.9. tabBuilding
6. SQL Access
215
NumStreet ( ).
(CONSTRAINT NumStreet) (REFERENCES)
tabStreet.
NumStreetAndHouse tabBuilding : NumStreet +
House. tabStreet
. . . 6.10 SQL.
. 6.10. "--"
6.4.2. .
ALTER TABLE
ALTER TABLE , CREATE TABLE
. , , . . ALTER TABLE
:
ALTER TABLE <_>
ADD [COLUMN] <_> [()][NOT NULL]
[CONSTRAINT <>]
II.
216
, ,
( TEXT,BINARY STRING)
__
CONSTRAINT,
ADD COLUMN
. , , TEXT, BINARY STRING.
NOT NULL,
.
ALTER COLUMN
. , ,
TEXT, BINARY STRING.
ADD CONSTRAINT . DROP COLUMN . . DROP CONSTRAINT .
CONSTRAINT.
6. SQL Access
217
tblBuilding, Real
Estate. FLATS ( ). :
ALTER TABLE tblBuilding
ADD FLATS SHORT;
6.4.3. .
DROP
DROP , .
DROP:
DROP TABLE <_>
DROP INDEX <> ON <_>
DROP PROCEDURE <_>
DROP VIEW <_>
DROP . 6.4.
6.4. DROP
II.
218
6.4 ()
.
ALTER
TABLE.
6.4.4. .
CREATE INDEX
CONSTRAINT CREATE TABLE ALTER TABLE
.
CREATE INDEX.
CREATE INDEX :
CREATE [ UNIQUE ] INDEX <_>
ON <_> (1 [ASC|DESC]
[, 2 [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
1, 2
6. SQL Access
219
UNIQUE .
,
WITH.
:
-
;
,
;
DESC,
.
DISALLOW NULL .
IGNORE NULL .
PRIMARY . UNIQUE
.
, PRIMARY . .
. .
. , , . , , .
.
. ,
.
7.1.
Windows- .
, ,
. Windows . -
Windows. , . -, . -,
, -, .
7.
221
,
.
.
.
, ,
.
. ,
.
, Stage (), . , , ( )
, . . " ",
. , .
. . 7.1
Real Estate. , , ,
.
, . , ,
. .
( ), , .
222
II.
7.
223
, . , . ,
.
:
;
;
, ;
;
;
;
.
Real Estate, . ,
,
, . , . .
, ,
. . , .
. . 7.1 . ,
. ,
.
,
, .
, .
, , .
224
II.
7.2.
,
. ,
,
. .
:
, .
Microsoft Office Access 2007
, , ,
.
.
,
,
.
Microsoft Access .
,
, (
) . ,
, , ,
. .
"" MS Access 2007, ,
, , Access 2007.
,
Microsoft
Access. VBA. . 7.2
, .
Microsoft Access 2007 .
.
7.
225
,
.
,
. ,
, . ,
.
, Real Estate,
7.1.
7.1.
Public Sub StartMainMenu()
' RealEstate.accdb
'
' c cbar.
Dim cbar
As CommandBar
' Exist.
Dim Exist As Boolean
'
For Each cbar In CommandBars
cbar.Enabled = False
Next cbar
II.
226
Exist = False
'
Exist
' MenuBar:=False
' Temporary:=False
'
End If
cbar.Enabled = True
'
cbar.Visible = True
'
With cbar
With .Controls
With .Add(Type:=msoControlPopup)
' Popup-
'
.Caption = ""
With .Controls
'
With .Add(Type:=msoControlButton)
'
.Caption = " "
7.
.Enabled = ChangePicture
'
' ChPicture
' ModuleSlave
.OnAction = "ChPicture"
'
.TooltipText = " "
End With
With .Add(Type:=msoControlButton)
'
.Caption = " "
.Enabled = ChangePassword
'
' Password
' ModuleSlave
.OnAction = "Password"
'
.TooltipText = " "
End With
With .Add(Type:=msoControlButton)
.Caption = "-"
.Enabled = True
.OnAction = "Calendar"
.TooltipText = " "
End With
With .Add(Type:=msoControlButton)
.Caption = ""
.Enabled = True
.OnAction = "Calculator"
.TooltipText = " "
End With
With .Add(Type:=msoControlButton)
.Caption = ""
.Enabled = True
.OnAction = "StopMenu"
End With
End With
End With
227
II.
228
With .Add(Type:=msoControlPopup)
.Caption = ""
With .Controls
With .Add(Type:=msoControlButton)
.Caption = " "
.Enabled = True
.OnAction = "Autor"
End With
With .Add(Type:=msoControlPopup)
.Caption = " "
With .Controls
With .Add(Type:=msoControlButton)
.Caption = ""
.Enabled = True
.OnAction = "Shot"
End With
With .Add(Type:=msoControlButton)
.Caption = ""
.Enabled = True
.OnAction = "Long"
End With
End With
End With
With .Add(Type:=msoControlButton)
.Caption = " "
.Enabled = RightAccess
.OnAction = "Access"
End With
With .Add(Type:=msoControlButton)
.Caption = " "
.Enabled = True
.OnAction = "Absolutely"
End With
End With
End With
With .Add(Type:=msoControlPopup)
.Caption = ""
7.
With .Controls
With .Add(Type:=msoControlButton)
.Caption = " "
.Enabled = SeekBuilding
.OnAction = "Search"
End With
With .Add(Type:=msoControlButton)
.Caption = " "
.Enabled = AddBuilding
.OnAction = "AddBuild"
End With
End With
End With
With .Add(Type:=msoControlPopup)
.Caption = ""
With .Controls
With .Add(Type:=msoControlButton)
.Caption = " "
.Enabled = StreetTown
.OnAction = "Street"
End With
With .Add(Type:=msoControlButton)
.Caption = " "
.Enabled = DistrictTown
.OnAction = "District"
End With
With .Add(Type:=msoControlButton)
.Caption = " "
.Enabled = MaterialWall
.OnAction = "Wall"
End With
With .Add(Type:=msoControlButton)
.Caption = ""
.Enabled = Staff
.OnAction = "Employee"
End With
End With
End With
229
II.
230
With .Add(Type:=msoControlButton)
.Style = msoButtonCaption
.Caption = ""
.Enabled = True
.OnAction = "StopMenu"
End With
End With
End With
End Sub
7.3. VBA
VBA . , , , .
: . , VBA? . . . , ,
"" . VBA (Project Explorer).
"Form_" "Report_" . Project Explorer
.
StartMainMenu ModuleMain . :
1. Microsoft Access 2007.
2. , -
Visual Basic. .
3. Microsoft Visual Basic.
Insert.
7.
231
4. . Module. -
(. 7.3).
5.
. 7.4. VBA
II.
232
, MS Access 2007 ,
VBA. :
1. Microsoft Access 2007.
2. . .
3. .
, , .
4. : , .
5. . VBA
.
6. VBA. .
7. OK.
7.
233
7.4.
Real Estate - (. . 2.42).
Start. I. . ,
. 7.3.
7.3.
Private Sub 2_Click()
'
DoCmd.Close
'
StartMainMenu
'
End Sub
. Login. . 7.4.
7.4.
Private Sub 2_Click()
'
On Error GoTo Err_2_Click
Dim stDocName As String
Dim stLinkCriteria As String
DoCmd.Close
'
stDocName = "Login"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_2_Click:
Exit Sub
Err_2_Click:
MsgBox Err.Description
Resume Exit_2_Click
End Sub
234
II.
7.4.1.
Login . . Microsoft Access 2007 Office,
Access.
. 7.5.
. 7.5.
. ,
. 7.2.
,
Microsoft Access 2007,
Access, , Microsoft
Access 2007. <Shift>. , . <Shift> ,
.
7.
235
7.4.2. <Shift>
MS Access 2007 <Shift>, Visual Basic,
AllowBypassKey False.
, MS Office Access 2007,
SetBypassProperty ( 7.5),
AllowBypassKey, ,
CreateProperty, Properties.
7.5. AllowBypassKey
Sub SetBypassProperty()
Const DB_Boolean As Long = 1
ChangeProperty "AllowBypassKey", DB_Boolean, False
End Sub
Function ChangeProperty(strPropName As String, _
varPropType As Variant, _
varPropValue As Variant) As Integer
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then ' Property not found.
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
II.
236
Else
' Unknown error.
ChangeProperty = False
Resume Change_Bye
End If
End Function
<Shift>
:
1. SetBypassProperty -
, .
, . True AllowBypassKey.
7.4.3.
-
Microsoft
Access 2007. .
.
"" . :
Private Sub Form_Load()
' MS Access 2007
Application.SetOption "ShowWindowsInTaskbar", False
End Sub
7.
237
7.4.4.
(. 7.6) Microsoft Office 12.0 Object Library (. 7.7). :
1. MS Access 2007. -
.
2. Visual Basic, ,
.
3. VBA Tools. .
4. References. -
.
5. Microsoft Office 12.0 Object Library.
6.
. 7.6.
II.
238
7.4.5.
Visual Basic for Applications ,
Microsoft Access, -
. Microsoft Office
.
.
:
1. Microsoft Access 2007 Office.
Office.
2. Access.
.
3.
. .
4. .
5. .
6. (. 7.8)
....
,
. accdb. MS Office Access 2007.
7.
239
. 7.8. VBA
7.5.
, II III,
. ,
. . (, , , , . .)
. :
1. - MS Office Access 2007.
2. .
3. MS Access .
4.
. . Access.
5. - Access.
6. . -.
, ,
,
.
, - ,
- .
, . .
.
. : .
8.1.
, (). . . -
8.
241
, . . ,
, . , , ,
.
8.2.
.
,
( , ,
. .), .
.
Real Estate
( Login Employee). ,
.
( ( )
Employee).
.
. 8.5
Employee.
242
II.
8.3.
, .
, , , , . , ,
.
, ,
.
, (), .
Real Estate Login.
, ( ) , .
. 8.1.
8.
243
Login (. 8.1).
, Microsoft Access. , . MS Access 2007
.
.
Access (. . 7.5)
Login. .
, ,
Login . Windows .
MS Access 2007 . Form1.
I.
Login (. 8.2).
Real Estate Login.
. .
. . . . .
: , , , .
II.
244
. 8.2.
. . . . 8.1.
8.1. Login
-
SharePoint
10
8.
11
245
MS Access
, , .
MS Access , , ,
. ,
Access . .
:
1.
(Form_Open).
2.
(Form_Load).
3.
(Form_Resize).
4.
(Form_Activate).
5.
(Form_Got Focus).
: (Form_Open) (Form_Load)
,
. 8.1 8.2.
8.1. Login
Private Sub Form_Open(Cancel As Integer)
' ,
'
'
Adjustment ' ModuleMain
End Sub
8.2. Login
Private Sub Form_Load()
'
Me.HelpFile = CurrentPath() & "\RealEstate.chm"
End Sub
246
II.
RealEstate.chm - .
CurrentPath()
. Adjustment
ModuleMain 8.3.
8.3. Adjustment
Public Sub Adjustment()
'
FAMILY = " "
SuperVisor = False
'
ChangePicture = False
'
ChangePassword = False
'
SetDeleted = False
'
CountRecords = False
'
RightAccess = False
'
SeekBuilding = False
'
AddBuilding = False
'
WorkFlats = False
'
AccountWork = False
'
WordExcel = False
'
StreetTown = False
'
DistrictTown = False
'
MaterialWall = False
'
Staff = False
'
End Sub
Login tblUser,
Real Estate. tblUser . 8.2.
LastName + FirstName +
SecondName. ,
,
.
.
8.2.
8.
247
LastName
15
FirstName
12
SecondName
10
Post
25
PassWord
10
File
Access01
Access02
8.2 ()
Access03
10
Access04
11
Access05
12
Access06
13
Access07
14
Access08
15
Access09
16
Access10
II.
248
17
Access11
18
Access12
19
Access13
20
Access14
21
Inspector
15
22
Date_up
23
Time_up
10
24
Range
8.
249
End With
End With
StreetTown, DistrictTown
Enabled,
. , "" CommandAdd
AddBuilding. :
Private Sub Form_Load()
CommandAdd.Enabled = AddBuilding
End Sub
, .
.
.
.
. 8.3 ComboBox.
.
tblUser. 24. ,
.
Select * from tbtlUser .
.
8.3.
ComboBox
2,5;2,5
II.
250
10
TAB
tblUser. , ( 22 23).
, . (1 2 ). .
0 .
. 5, : 2,5;2,5.
. .
(, , , . .)
. ComboBox.
txtFirstName ( ) :
=[ComboBox].[Column](1)
MS Access .
, , . .
. ComboBox
, txtFirstName .
(
) PictureUser :
=CurrentPath() & "\PHOTO\" & [ComboBox].[Column](5) & ".jpg"
:
CurrentPath()
;
PHOTO , ;
8.
251
tblUser. File ( );
JPG .
Login , :
1. MS Access 2007
.
2. -
ComboBox. .
3. .
4. .
5. .
VBA 8.4.
8.4.
Private Sub ComboBox_GotFocus()
' Dropdown
'
ComboBox.Dropdown
End Sub
txtHint ()
:
=UnKod([ComboBox].[Column](4))
.
.
. . . .
II.
252
'
'
Dim i As Integer
'
8.6.
Public Function UnKod(cEncryptedPassword) As String
'
' cEncryptedPassword -
' ( )
Dim cLetter As String
'
'
Dim i As Integer
'
8.
253
VBA:
Mid() , i
;
Chr() , ANSI-;
Asc() ANSI- ;
Trim() .
. . .
txtParole () .
.
. .
Login "" (*).
. :
1. Login .
2.
II.
254
3. ,
.
.
4. , , -
,
. .
5. . -
Click ( ) .
8.7 8.8 .
8.7. Click
Private Sub 2_Click()
'
Dim Parole As String
'
'
If IsNull([Forms]![Login]![ComboBox].Column(0)) Then
' - Null
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
Exit Sub
End If
' tblUser
' ComboBox.
'
Parole = [Forms]![Login]![ComboBox].Column(4)
'
Parole = Trim(Parole)
If Len(Trim(Parole)) = 0 Then
' tblUser
' (, ODBC)
SuperVisor = False
'
8.
" ", _
vbOKOnly + vbExclamation, ""
Application.Quit acQuitSaveAll '
Else
If IsNull([Forms]![Login]![txtParole]) Then
' - Null
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
'
[Forms]![Login]![txtParole].SetFocus
Exit Sub
End If
'
ParoleEnter = Trim([Forms]![Login]![txtParole])
'
ParoleEnter = CrKod(ParoleEnter)
'
FAMILY = [Forms]![Login]![ComboBox].Column(0)
If ParoleEnter = Parole Then
SuperVisor = True
'
'
'
ChangePicture = [Forms]![Login]![ComboBox].Column(6)
'
ChangePassword = [Forms]![Login]![ComboBox].Column(7)
'
SetDeleted = [Forms]![Login]![ComboBox].Column(8)
'
CountRecords = [Forms]![Login]![ComboBox].Column(9)
'
RightAccess = [Forms]![Login]![ComboBox].Column(10)
'
SeekBuilding = [Forms]![Login]![ComboBox].Column(11)
'
AddBuilding = [Forms]![Login]![ComboBox].Column(12)
'
WorkFlats = [Forms]![Login]![ComboBox].Column(13)
'
255
II.
256
AccountWork = [Forms]![Login]![ComboBox].Column(14)
'
WordExcel = [Forms]![Login]![ComboBox].Column(15)
'
StreetTown = [Forms]![Login]![ComboBox].Column(16)
'
DistrictTown = [Forms]![Login]![ComboBox].Column(17)
'
MaterialWall = [Forms]![Login]![ComboBox].Column(18)
'
Staff = [Forms]![Login]![ComboBox].Column(19)
MsgBox " " & Trim(FAMILY) & " ! ", _
vbOKOnly + vbExclamation, " "
Else
SuperVisor = False '
MsgBox " " & Trim(FAMILY) & " ! ", _
vbOKOnly + vbExclamation, " "
Application.Quit acQuitSaveAll '
End If
End If
DoCmd.Close
'
StartMainMenu
'
End Sub
,
, ComboBox
Null.
(Exit Sub). , , . . .
10 , ( Dropdown).
- ,
, .
tblUser (,
MS Access ) . , . "" ODBC , . .
, .
8.
257
, , . , , , ,
Access01Access14 tblUser.
(DoCmd.Close) (StartMainMenu).
ModuleMain.
8.8. Click
Private Sub 1_Click()
' -
'
StopMenu ' ModuleSlave
End Sub
8.4.
(),
, .
. PassWord.
( | ).
PassWord . 8.3. . 8.4 .
II.
258
. 8.3. PassWord
8.4. PassWord.
SELECT tblUser.LastName,
tblUser.FirstName,
tblUser.SecondName, tblUser.Post,
tblUser.PassWord, tblUser.Date_up,
User.Time_up FROM [tblUser] WHERE
(((tblUser.LastName)=GetValueSQL()));
8.4 ()
- SharePoint
8.
10
11
12
13
14
259
PassWord ,
,
(. 8.4). :
1. C
,
. .
2. . tblUser.
3. : LastName, FirstName,
SecondName, Post, PassWord, Date_Up
Time_Up.
.
4. LastName ()
GetValueSQL().
5. .
II.
260
. 8.4.
PassWord
MS Access 2007
. , ,
, .
LastName FAMILY ( )
GetValueSQL(). ModuleSlave,
8.9.
"" . Visual Basic for Applications
. 8.10. , .
.
8.9.
Public Function GetValueSQL()
' FAMILY
'
' SQL-
8.
261
' MS Access
GetValueSQL = FAMILY
End Function
. 8.5.
. 8.5. PassWord
'
'
'
' SQL-
' : SqlUpdateErr
On Error GoTo SqlUpdateErr
If IsNull([Forms]![PassWord]![PassWord]) Then
'
II.
262
8.
'
NewPasswordOne = Trim([Forms]![PassWord]![NewPassword1])
NewPsswordTwo = Trim([Forms]![PassWord]![NewPassword2])
If NewPasswordOne <> NewPsswordTwo Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
[Forms]![PassWord]![NewPassword2].SetFocus
'
Exit Sub
End If
If Len(NewPasswordOne) <= 4 Then
MsgBox " - 5 .", _
vbOKOnly + vbExclamation, ""
'
[Forms]![PassWord]![NewPassword1].SetFocus
'
Exit Sub
End If
'
NewPasswordOne = CrKod(NewPasswordOne)
If CrKod(NewPasswordOne) = _
Trim([Forms]![PassWord]![CrPassWord]) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
[Forms]![PassWord]![NewPassword1].SetFocus
'
Exit Sub
End If
' SQL-
TextSQL = "UPDATE tblUser " & _
"SET tblUser.PassWord = '" & NewPasswordOne & "'," & _
"tblUser.Date_Up=Date(),tblUser.Time_Up=Time()" & _
"WHERE tblUser.LastName = '" & FAMILY & "' "
' Debug.Print TextSQL
'
DoCmd.RunSQL TextSQL
263
II.
264
'
DoCmd.Close
Exit Sub
SqlUpdateErr:
If Err.Number = 2501 Then
VBA:
IsNull() True, (
Null);
Len() ;
Trim() .
:
1. ?
2. ?
3. ?
4. ?
5. ?
6. ?
7. ?
, .
.
8.
265
,
, ?
,
?
( CrKod()) SQL-
tblUser. : ,
.
- , . FAMILY.
SQL- VBA.
RunSQL. (. 8.6).
. 8.6.
II.
266
, . , , , :
On Error GoTo SqlUpdateErr
SqlUpdateErr .
, .
, . . : Exit Sub.
. 8.7.
. 8.8.
8.
267
( ), , -, .
2501
, .
(. . 8.8), ,
RunSQL (. 8.9).
. 8.9. 2501
,
, Raise Err,
, Number.
Description .
Description .
.
"Printer error" " ".
Err.Raise Number:=482, Description:=" "
,
"" .
MS Office Access 2007
. :
1. MS Access Office.
. .
2. Access.
3. Access
(. 8.10).
4. -
II.
268
PassWord ( ) : ,
, , .
, . 8.5.
8.5.
(Enable)
(Lock)
(Visible)
. .
"" ,
, .
.
8.
269
8.5.
Employee
.
, ,
.
. . , , .
. .
. 8.6 Employee.
8.6. Employee
-
SharePoint
10
11
12
13
II.
270
().
.
. MS Access 2007 . .
.
. . . 8.7
.
8.7. Employee
(
PageFrame)
(Page1)
ListBox
CommandAdd
VBA
txtCountWorker
(Page2)
-
txtLastName
LastName
txtFirstName
FirstName
txtSecondName
SecondName
txtPost
Post
txtFile
File
txtPassWord
PassWord
OptionGroup
Range
PictureUser
DCount()
8.
271
8.7 ()
ChkAccess01
...
...
Access01
chkAccess14
...
Access14
txtInspector
Inspector
txtDate_up
Date_up
txtTime_up
Time_up
CommadeSave
VBA
CommandDel
VBA
CommandDelPassword
VBA
CommandExit
VBA
ListBox. ,
, . 8.8.
8.8. ListBox.
ListBox
SELECT tblUser.LastName,
tblUser.FirstName,
tblUser.SecondName,
tblUser.Post FROM tblUser;
II.
272
2,5;2,3;3;4
ListBox .
tblUser,
. txtCounWorker, tblUser ( ),
:
=DCount("*";"tblUser")
Dcount() .
. 8.11.
. 8.11. Employee
8.11 . .
Public ModuleMain:
Public SelectLastName As String
'
'
'
8.
Public Indicator As Integer
273
'
.
8.11. Employee
Private Sub Form_Load()
'
Indicator = 0
'
' Indicator=1
' Indicator=2
' Indicator=3
'
SelectLastName = ""
'
SelectFirstName = ""
'
SelectSecondName = ""
End Sub
. 8.12 Employee .
II.
274
. 8.12. Employee
,
.
Click 8.12.
8.12. ListBox
Private Sub ListBox_Click()
Dim TextSQL As String '
Indicator = 2 '
' " " Form_BeforeUpdate
' ,
'
' TextSQL = "Select * from tblUser where LastName = '" & _
' ListBox.Value & "'"
'
SelectLastName = [ListBox].Column(0)
'
SelectFirstName = [ListBox].Column(1)
'
SelectSecondName = [ListBox].Column(2)
TextSQL = "Select * from tblUser where LastName = '" & _
SelectLastName & "'" & _
" AND FirstName = '" & SelectFirstName & "'" & _
" AND SecondName = '" & SelectSecondName & "'"
Me.RecordSource = TextSQL
Page2.Visible = True
Page2.SetFocus
' ,
'
' txtLastName.Locked = True
' txtFirstName.Locked = True
' txtSecondName.Locked = True
End Sub
tblUser, .
,
8.
275
SelectLastName,
SelectFirstName SelectSecondName. ? Column ListBox. ( ), ( )
( ):
SelectLastName = [ListBox].Column(0)
SelectFirstName = [ListBox].Column(1)
SelectSecondName = [ListBox].Column(2)
Employee . 8.13.
. 8.13. Employee
II.
276
, , , . . I. ,
.
. 8.9.
8.9. Employee
PassWord
OptionGroup
txtInspector
txtDate_up
txtTime_up
PictureUser
.
tblUser (Form_BeforeUpdate)
. txtDate_up
txtTime_up, .
(OptionGroup) 1. ,
, " ". . 0 . . 8.14
.
Employee ,
. 8.13
OptionGroup. . ,
() , chkAccess01
chkAccess14, . -
8.
277
(
) .
. 8.14. Employee
8.13. OptionGroup
Private Sub OptionGroup_AfterUpdate()
'
chkAccess01.Value = True
'
chkAccess02.Value = True
'
chkAccess03.Value = False
'
chkAccess04.Value = False
'
chkAccess05.Value = True
'
chkAccess06.Value = False
'
chkAccess07.Value = False
'
chkAccess08.Value = False
'
chkAccess09.Value = False
'
chkAccess10.Value = False
'
II.
278
chkAccess11.Value = False
'
chkAccess12.Value = False
'
chkAccess13.Value = False
'
chkAccess14.Value = False
'
'
Select Case OptionGroup.Value
Case 1
'
'
'
'
8.14. CommandSave
Private Sub CommandSave_Click()
'
Dim NewPasswordOne As String '
NewPasswordOne = "00000"
'
If IsNull(txtLastName.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
8.
'
txtLastName.SetFocus
'
Exit Sub
End If
If IsNull(txtFirstName.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
txtFirstName.SetFocus
'
Exit Sub
End If
If IsNull(txtSecondName.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
txtSecondName.SetFocus
'
Exit Sub
End If
If IsNull(txtPost.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
txtPost.SetFocus
'
Exit Sub
End If
If IsNull(txtFile.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
'
279
II.
280
txtFile.Value = "NoFoto"
txtFile.SetFocus
'
Exit Sub
End If
If OptionGroup.Value = 0 Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
OptionGroup.SetFocus
'
Exit Sub
End If
txtInspector.Value = FAMILY
txtDate_up = Date
txtTime_up = Time()
If Page2.Caption = " " Then
' -
NewPasswordOne = CrKod(NewPasswordOne)
txtPassWord.Value = NewPasswordOne
End If
DoCmd.Close
'
End Sub
( 8.15) . ,
, (, ), .
txtLastName, txtFirstName txtSecondName. SelectLastName, SelectFirstName
SelectSecondName. , .
8.15. CommandDel
Private Sub CommandDel_Click()
'
8.
281
'
SqlUpdateErr:
If Err.Number = 2501 Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
End If
End Sub
.
TextSQL.
SQL- VBA. RunSQL. 2501. ,
, .
Indicator 3. ( ) .
, , ( 8.16). , .
. ( ), .
II.
282
8.16. CommandDelPassWord
Private Sub CommandDelPassword_Click()
Dim TextSQL As String
'
'
'
NewPasswordOne = CrKod(NewPasswordOne)
' SQL-
' SelectLastName, SelectFirstName, SelectSecondName ' .
' DblClick ListBox
If MsgBox(" ? ", _
vbInformation + vbYesNo, "") = vbYes Then
TextSQL = "UPDATE tblUser" & _
" SET tblUser.PassWord = '" & NewPasswordOne & "' " & _
" WHERE LastName = '" & SelectLastName & "' " & _
" AND FirstName = '" & SelectFirstName & "'" & _
" AND SecondName = '" & SelectSecondName & "'"
' Debug.Print TextSQL
DoCmd.RunSQL TextSQL
Indicator = 3 '
' < >
' Form_BeforeUpdate
DoCmd.Close
'
End If
End Sub
, (5 ) . , - tblUser.
, . . Login,
(. 8.15). tblUser
. .
8.17 . Employee. , -
8.
283
.
( ). , . . . TextSQL.
"" :
Me.RecordSource = TextSQL
. 8.15. ,
8.17. CommandAdd
Private Sub CommandAdd_Click()
'
Dim TextSQL As String '
Indicator = 1
'
II.
284
'
Page2.Visible = True
'
Page2.Caption = " "
'
CommandDelPassword.Enabled = False
'
CommandDel.Enabled = False
'
txtLastName.SetFocus
' ( )
Page1.Visible = False
End Sub
" " . ,
. 8.16. .
. 8.16.
8.
285
Employee "" :
TextSQL = "SELECT * from tblUser WHERE LastName = ''"
Me.RecordSource = TextSQL
VBA:
DoCmd.GoToRecord acDataForm, "Employee", acNewRec
, . VBA "",
, Employee:
DoCmd.GoToRecord ,,acNewRec
:
DoCmd.GoToRecord _, _, ,
:
_ , . 8.10;
_ , ;
, . 8.11;
( acGoTo).
8.10. ,
acActiveDataObject
,
(
)
acDataForm
acDataFunction
10
( adp-)
acDataQuery
acDataReport
acDataServerView
(
adp-)
acDataStoredProcedure
(
adp-)
II.
286
acDataTable
8.11. , ,
acFirst
acGoTo
acLast
acNewRec
acNext
acPrevious
8.18 CommandExit.
.
(Indicator=3) .
8.18.
Private Sub CommandExit_Click()
'
'
' " "
' Form_BeforeUpdate
Indicator = 3
DoCmd.Close
'
End Sub
8.19
. , Indicator, -
8.
287
.
8.19. Employee
Private Sub Form_BeforeUpdate(Cancel As Integer)
'
Select Case Indicator
Case 1 '
If MsgBox(" ? ", _
vbInformation + vbYesNo, "") = vbNo Then
'
DoCmd.RunCommand acCmdUndo
End If
Case 2 '
If MsgBox(" ? ", _
vbInformation + vbYesNo, "") = vbNo Then
'
DoCmd.RunCommand acCmdUndo
End If
Case Else
'
'
DoCmd.RunCommand acCmdUndo
End Select
End Sub
. . . ,
. , .
9.1.
MS Office Access . , , MS
Office Access, .
, MS Office Access.
.
, , . , , .
,
. , . ,
, .
288
II.
MS Office Access
: ,
"" .
"",
. , ,
. .
,
, , ,
, SELECT, , . 90%
,
, . : ,
: "" "" . MS Office
Access .
: , .
. , -
. ? "" ,
?
. , -
, ,
.
, , .
. -
, . , ,
?
, . . .
9.
289
:
;
;
.
. , ,
. ,
, ,
account .
.
.
, .
. ,
flat
. , , .
, . , .
.
.
, ,
. , ,
. / , MS Office Access
, .
.
MS Office Access, ,
. , , . , ,
. , , .
MS Office Access ,
, .
II.
290
, .
, . , , , .
. .
.
, , .
MS Office Access 2007:
1. Microsoft Access 2007 Office.
Office.
2. Access.
.
3.
(. 9.1).
4. OK.
.
:
. ;
.
;
, . , ;
9.
291
. 9.1.
. , .
OLE/DDE () -
OLE DDE .
0 300. 30.
() , Microsoft Access
. 0 32 766. 60.
.
, , Microsoft Access
. 0 10. 2.
II.
292
ODBC () ,
, ODBC-.
. 0 32 766. 1500. .
() ,
Microsoft Access , .
0 1000. 250.
, Recordset ,
SQL. .
.
. : , .
9.3.
.
.
, . : , .
.
.
.
,
, - . ,
.
MS Office Access
, (. 9.2).
9.
293
. 9.2.
, , . , ,
. , . ,
,
. ,
, : ,
, , .
,
I. Building, .
: , .
, . 9.1, .
9.1. Building
100000
294
II.
, -
, ,
(. 9.3). . .
, , .
- ,
. .
.
, - .
: " ?". ,
! .
. 9.1.
100 .
. 9.3.
9.
295
9.1.
Private Sub Form_Timer()
' ,
' " "
If Not CurrentProject.AllForms("Flats").IsLoaded Then
' ,
'
DoCmd.Close
End If
End Sub
.
. , ? Building , . . Flats Building. : Flats ,
, "" .
. ,
Building . - 100 .
? Building ! ,
, , .
9.2 .
9.2.
Private Sub Form_Activate()
'
Me.TimerInterval = 100000
End Sub
100 .
. , .
100 , ? 9.3 ,
. .
II.
296
9.3.
Private Sub Form_Current()
'
'
Me.TimerInterval = 100000
End Sub
, ,
. 60
(. 9.1, ()) , , , , , .
,
.
. - , .
MS Access .
, .
MS Access , ,
- ,
. ,
.
,
, .
. ? ,
, .
9.
297
.
(. . 9.2). .
Microsoft Word (. 9.2). .
9.2. ,
ComboStreet
txtHOUSE
ComboDistrict
txtLAND
txtYEAR
10
31000
1996
. 9.3.
.
9.4.
1995 Windows Microsoft Tastrade, (Page
Frame). ,
. , , , ! , , . MS
Office Access 2007, ,
, . , - Page Frame MS Office Access .
. PageBuilding.
MS Office Access . .
, , Access
, ,
"" . -
298
II.
, . . 9.4
PageBuilding .
:
, , .
MS Access, . , , ,
. .
. .
. .
. , . . 9.5 , , . 334.
(. 9.6).
. 9.4.
9.
. 9.5.
. 9.6.
299
300
II.
. .
.
( , )
. ,
( ) ,
. " " (. 9.7).
. 9.7.
9.4.1.
.
-
9.
301
. . :
1. .
.
2. . .
,
.
3. . . -
. 9.8.
II.
302
4. .
, .
5. -
.
6. PageFrame.
. 9.8 ,
. 9.3 PageBuilding.
9.3. PageBuilding
ComboBoxSeekStreet
SELECT tblStreet.STREET,
tblStreet.NAME,
tblStreet.SIGN,
tblStreet.FIRST FROM
tblStreet ORDER BY
tblStreet.[NAME],
tblStreet.[SIGN];
txtSignSeek
=[ComboBoxSeekStreet].
[Column](2)
txtSeekHouse
ComboBoxSeekDistrict
OptionSort
: 1
PicStreet
CommandKill
VBA ( 9.5)
CommandSeek
VBA ( 9.6)
CommandExit
VBA (. -)
9.4 PageBuilding.
MS Access, VBA (. 9.9).
9.
303
"Form_"
.
. 9.9. Form_PageBuilding
. .
1. MS Office Access 2007 -
.
2. Visual Basic for Applications.
3. VBA .
.
9.4. Form_PageBuilding
Option Explicit
Option Compare Database
304
II.
'
Public SelectStreet As Integer
'
'
'
Dim SelectSeekStreet As Integer
'
'
'
'
'
, . , .
: , . .
( ), Public. SelectStreet SelectHouse. 9.5 ,
.
9.5.
Private Sub CommandKill_Click()
'
'
'
ComboBoxSeekStreet.Value = Null
'
txtSeekHouse.Value = Null
'
ComboBoxSeekDistrict.Value = Null
' -
OptionSort.Value = 1
End Sub
9.6 (RowSource)
ListBox . , . .
WHERE, FROM-INNER-
9.
JOIN-ON.
305
, .
.
: , , , . . . , ,
(, ).
AND. : ORDER BY.
"".
9.6.
Private Sub CommandSeek_Click()
'
Dim CountBuilding As Integer
' ,
If IsNull(ComboBoxSeekStreet.Value) Then
'
SelectSeekStreet = 0
Else
'
SelectSeekStreet = ComboBoxSeekStreet.Value
End If
If IsNull(txtSeekHouse.Value) Then
'
SelectSeekHouse = 0
Else
'
'
SelectSeekHouse = Val(txtSeekHouse.Value)
End If
If IsNull(ComboBoxSeekDistrict.Value) Then
'
SelectSeekDistrict = 0
Else
'
SelectSeekDistrict = ComboBoxSeekDistrict.Value
End If
'
II.
306
SelectSort = OptionSort.Value
'
'
SQLText = "SELECT tblBuilding.Street, " & _
"tblStreet.Name AS , " & _
"tblStreet.Sign AS , " & _
"tblBuilding.House AS , tblDistrict.AREA AS , " & _
"tblBuilding.Land AS , tblBuilding.Year AS " & _
"FROM tblStreet, tblBuilding, tblDistrict " & _
"WHERE
'
'
9.
SQLText = SQLText & " ORDER BY tblDistrict.Area"
Case 3
'
'
307
II.
308
, , MS Access
,
SQL. . , . . . 1.1.
distict ( "r"
"district"). , SQL district, MS Access
,
: " !". , , , .
,
(. 9.10), .
. 9.10.
, .
, .
9.
9.7.
Public Function CountQuery(SQLText) As Integer
'
' SQLText -
Dim CountSelectSQL As Integer
'
'
Dim Connect As ADODB.Connection
' Connect - ,
' ADO
Dim rsCount As ADODB.Recordset
' rsCount - ,
'
'Set Connect = CurrentProject.Connection
'
Set Connect = New ADODB.Connection
' MS Access 2007 ( accdb)
With Connect
.ConnectionString = _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & CurrentPath() & "\Real Estate.accdb"
.Open
End With
Set rsCount = New ADODB.Recordset
'
With rsCount
' rsCount (Recordset)
' : SQL-
.Source = SQLText
'
.ActiveConnection = Connect
.CursorType = adOpenKeyset
'
' RS
'
.Open
End With
309
II.
310
CountSelectSQL = rsCount.RecordCount
' RecordCount - rsCount
'
'
Set rsCount = Nothing
Set Connect = Nothing
'
' CountQuery -
CountQuery = CountSelectSQL
End Function
ADO . , .
, .
ADO (. 9.11).
ADO :
;
,
;
, .
"" ? , !
.
1. VBA.
. 9.11. ADO
9.
311
2. View.
3. Object Browser. Object
Browser.
4. ,
, .
, (. 9.7)
. Connect Connection ADODB. Microsoft.ACE.OLEDB.12.0
MS Access 2007, Real Estate.
Open.
:
Dim Connect As ADODB.Connection
Set Connect = New ADODB.Connection
With Connect
.ConnectionString = _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
II.
312
9.
313
.ActiveConnection = Connect
.CursorType = adOpenKeyset
.Open
End With
9.4.3.
ListBox.
, .
.
, ,
( )
, (, ) .
, ListBox, 0.
9.8 ,
. .
9.8. ListBox
Private Sub ListBox_DblClick(Cancel As Integer)
Dim TxtSQL As String '
Indicator = 2
'
314
II.
'
Page3.Visible = True
Page3.SetFocus
End Sub
(SelectStreet) (SelectHouse). . (
) , -
, . ( ) .
ADO. , ,
c , ,
. ListBox.
ListCount ( ). txtCoundBld
. :
=ListBox.Count -1
ListBox , :
=ListBox.Count
. !
9.9 VBA,
. .
9.9.
Private Sub CommandAdd_Click()
'
Dim TextSQL As String '
Indicator = 1
'
9.
315
' - TextSQL
Me.RecordSource = TextSQL
' ()
Page1.Visible = False
' ( )
Page2.Visible = False
'
Page3.Visible = True
'
Page3.Caption = " "
'
CommandFlats.Enabled = False
'
CommandDel.Enabled = False
' ()
ComboStreet.SetFocus
End Sub
, .
. ,
. .
building, . .
street. .
STREET >=0. , building .
9.4.4.
PageBuilding
.
Indicator. .
, . . 9.4
.
. 9.14 .
II.
316
9.4. PageBuilding
ComboStreet
SELECT
[tblStreet].[STREET],
[tblStreet].[NAME],
[tblStreet].[SIGN] FROM
tblStreet;
=1
txtSign
=[ComboStreet].[Column](2)
txtHouse
HOUSE
ComboDistrict
txtLAND
LAND
txtYear
YEAR
txtFLATS
FLATS
ComboMaterial
SELECT
[tblWall].[MATERIAL],
[tblWall].[WALL] FROM
tblWall;
txtComment
COMMENT
txtWear
WEAR
txtCost
COST
txtLine
LINE
9.
317
9.4 ()
txtSquare
SQUARE
OptionGroup
KIND
txtInspector
INSPECTOR
DATE_UP
TIME_UP
txtDate_up
txtTime_up
txtPicture
PICTURE
Picture
=CurrentPath() &
"\Building\" & [txtPicture].[Value]
, NoFoto.jpg
chkELEVATOR
ELEVATOR
ChangePhoto
VBA ( 9.10)
CommandSave
VBA ( 9.11)
CommandDel
VBA ( 9.12)
CommandFlats
VBA ( 9.13)
CommandExit
VBA ( 9.14)
, . "" -
318
II.
txtPicture, .
, Picture (NoFoto.jpg).
Building.
,
OLE.
,
. ( 9.10).
ADO. Microsoft Office 12.0 Object
Library ,
. FileDialog,
(. 9.15).
. 9.14.
9.
9.10.
Private Sub ChangePhoto_Click()
'
' txtPicture
' VBA - Tools - Reference ' Microsoft Office 12.0 Object Library
' fDialog -
'
' MS Office 2007
Dim fDialog As Office.FileDialog
'
Dim varFile As Variant
' Varint -
'
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
'
With fDialog
'
.AllowMultiSelect = False
'
.Title = " "
' ,
.Filters.Clear
'
.Filters.Add "All Files", "*.*"
If .Show = True Then
'
For Each varFile In .SelectedItems
'
' - Dir()
txtPicture.Value = Dir(varFile)
Next
Else
MsgBox " " & _
319
II.
320
" .", _
vbOKOnly + vbExclamation, ""
End If
End With
End Sub
fDialog,
FileDialog. ,
: " ". . , "" , .
, (*.* ). , , txtPicture : Dir(varFile).
9.11
CommandSave. . ,
, , -
9.
321
. , MS Access
, ,
(. 9.16).
9.11.
Private Sub CommandSave_Click()
'
If IsNull(ComboStreet.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
ComboStreet.SetFocus
'
Exit Sub
End If
If IsNull(txtHOUSE.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
txtHOUSE.SetFocus
Exit Sub
End If
If IsNull(ComboDistrict.Value) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
ComboDistrict.SetFocus
Exit Sub
End If
If IsNull(txtLAND.Value) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
txtLAND.SetFocus
Exit Sub
End If
If IsNull(txtYEAR.Value) Then
II.
322
'
txtTIME_UP = Time()
'
'
DoCmd.RunCommand acCmdSaveRecord
' " "
' Sub Form_BeforeUpdate
Page2.SetFocus
End If
End Sub
. 9.16.
9.
323
If IsNull(ComboStreet.Value) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
ComboStreet.SetFocus
Exit Sub
End If
, .
Dirty True : txtInspector, txtDate_up
txtTime_up. Value .
, :
DoCmd.RunCommand acCmdSaveRecord
Page2.SetFocus
9.12.
Private Sub CommandDel_Click()
'
Dim TextSQL As String '
' : SqlUpdateErr
On Error GoTo SqlUpdateErr
TextSQL = "DELETE from tblBuilding WHERE Street = " & _
SelectStreet & _
" AND House = " & SelectHouse
'
DoCmd.RunSQL TextSQL
' " "
' Form_BeforeUpdate
Indicator = 3
DoCmd.Close
'
SqlUpdateErr:
If Err.Number = 2501 Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
End If
End Sub
II.
324
9.13.
Private Sub CommandFlats_Click()
'
On Error GoTo Err_CommandFlats_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Flats"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_CommandFlats_Click:
Exit Sub
Err_CommandFlats_Click:
MsgBox Err.Description
Resume Exit_CommandFlats_Click
End Sub
9.14.
Private Sub CommandExit_Click()
'
DoCmd.Close
'
End Sub
9.
vbInformation + vbYesNo, "") = vbNo Then
DoCmd.RunCommand acCmdUndo
End If
' ()
Page1.Visible = True
' ( )
Page2.Visible = True
Page2.SetFocus
'
Page3.Visible = False
'
Page3.Caption = ""
'
CommandFlats.Enabled = True
'
CommandDel.Enabled = True
Case 2 '
If MsgBox(" ? ", _
vbInformation + vbYesNo, "") = vbNo Then
DoCmd.RunCommand acCmdUndo
End If
Case Else
'
DoCmd.RunCommand acCmdUndo
End Select
End Sub
9.16. PageBuilding
Private Sub Form_AfterUpdate()
'
'
ListBox.Requery
End Sub
325
10
, MS Access 2007,
, MS Excel MS Word .
Access- MS Office.
,
, ,
COM (Component Object Model, ). .
MS Excel, Word , , , , , .
, Delphi, Visual FoxPro
. Access- .
MS Office VBA, (. 5).
.
10.1.
Microsoft Excel 2007
MS Excel . , , ,
VBA,
, -
10.
327
. ,
, "" , .
10.1.1.
. MS Excel 2007.
.
, .
. .
. OK. . ,
( 10.1).
.
. 10.1.
II.
328
,
( 10.1). <Alt>+<F8>, .
10.1. ,
Sub 1()
Range("A1").Select
ActiveCell.FormulaR1C1 = ""
Range("B1").Select
ActiveCell.FormulaR1C1 = ""
Range("C1").Select
ActiveCell.FormulaR1C1 = ""
Range("A1:C1").Select
With Selection.Font
.Name = "Times New Roman"
.Size = 12
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.ThemeFont = xlThemeFontNone
End With
End Sub
MS Office . :
xlUnderlineStyleNone;
xlThemeColorLight1;
xlThemeFontNone.
MS Office VBA-,
.
.
10.
329
10.1.2.
Microsoft Excel 12.0 Object Library
VBA MS Excel (
"xl"), .
:
1. MS Access 2007. -
.
2. Visual Basic, ,
.
3. VBA Tools. .
4. References. -
(. 10.2).
5. Microsoft Excel 12.0 Object Library.
6. OK.
II.
330
accdb- adp-
.
10.1.3. MS Excel
MS Access
, MS Excel , MS Access, . ,
VBA ( 10.2).
10.2.
Public Sub 1()
Dim oExcel As Object
...
With oExcel
.Range("A1").Select
.ActiveCell.FormulaR1C1 = ""
.Range("B1").Select
.ActiveCell.FormulaR1C1 = ""
.Range("C1").Select
.ActiveCell.FormulaR1C1 = ""
.Range("A1:C1").Select
With .Selection.Font
.NAME = "Times New Roman"
.Size = 12
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.ThemeFont = xlThemeFontNone
End With
End With
End Sub
. .
oExcel. ,
10.
331
. With, . , .
10.1.4. Application
oExcel CreateObject,
MS Excel ( 10.3). MS Excel
, ,
. ,
Windows
- , . Excel :
oExcel.Application.Visible = False
, . , ""
VBA, .
10.3.
Public Sub ReportExcel()
'
Set oExcel = CreateObject("Excel.Application")
' Microsoft Excel
oExcel.Application.Visible = True
' MS Excel
oExcel.Application.WindowState = xlMaximized
'
oExcel.WorkBooks.Add
'
'
oExcel.DisplayAlerts = False
' 75%
oExcel.ActiveWindow.Zoom = 75
' Excel
oExcel.Caption = " "
II.
332
' Excel
oExcel.Cells.Font.NAME = "Arial"
oExcel.Cells.Font.Size = 7
End Sub
10.
333
,
, ,
Excel. , 10.4.
. ModuleSlave Real Estate.
10.4. , MS Excel 2007
Public Sub AccountExcel()
' MS Excel
'
' SelectAddressStreet
' SelectAddressHouse
' SelectAddressFlat
' tblExcel
' tblExcel Real Estate.
' ,
' RSset
Dim RSset As ADODB.Recordset
'
'
YmAll = 0
'
DonaAll = 0
'
YpAll = 0
'
ReturnAll = 0
'
NachPeniAll = 0
'
SpPeni = 0
'
UpPeni = 0
'
SaldoAll = 0
'
II.
334
OstPenu = 0
'
OstSht = 0
'
10.
335
'
oExcel.Range("D1").Select
oExcel.ActiveCell.Font.Bold = True
oExcel.ActiveCell.Font.Size = 12
oExcel.ActiveCell.FormulaR1C1 = " "
oExcel.Range("C2").Select
oExcel.ActiveCell.VerticalAlignment = xlTop
oExcel.ActiveCell.Font.Size = 8
'
' RSset
With RSset
' RSset (Recordset)
' : SQL-
.Source = "SELECT * FROM tblStreet " & _
"WHERE STREET = " & SelectAddressStreet
'
.ActiveConnection = CurrentProject.Connection
.CursorType = adOpenKeyset
'
.Open
End With
'
' RSset . 14.8
If RSset(3) = False Then
'
RightAddress = Trim(RSset(2)) & " " & _
Trim(RSset(1))
Else
'
RightAddress = Trim(RSset(1)) & " " & _
Trim(RSset(2))
End If
RSset.Close '
AddressFlat = " : . Real Estate, " & _
RightAddress & ", " & _
Str(SelectAddressHouse) & ", . " & _
Str(SelectAddressFlat) & "."
'
oExcel.ActiveCell.FormulaR1C1 = AddressFlat
II.
336
oExcel.Range("A3").Select
oExcel.ActiveCell.VerticalAlignment = xlBottom
oExcel.ActiveCell.Font.Size = 3
' Copyright
oExcel.ActiveCell.FormulaR1C1 = "Copyright 2007 " & _
" < Real Estate> " & _
" " & _
" Microsoft Corporation: " & _
"MS Office Access 2007, MS Office Word 2007, " & _
"MS Office Excel 2007 " & _
"MS SQL Server 2005 Developer Edition"
'
oExcel.Range("A4").Select
oExcel.ActiveCell.FormulaR1C1 = ""
oExcel.Range("B4").Select
oExcel.ActiveCell.FormulaR1C1 = ""
oExcel.Range("C4").Select
oExcel.ActiveCell.FormulaR1C1 = ""
oExcel.Range("D4").Select
oExcel.ActiveCell.FormulaR1C1 = ""
oExcel.Range("E4").Select
oExcel.ActiveCell.FormulaR1C1 = "."
oExcel.Range("F4").Select
oExcel.ActiveCell.FormulaR1C1 = ""
oExcel.Range("G4").Select
oExcel.ActiveCell.FormulaR1C1 = ""
oExcel.Range("H4").Select
oExcel.ActiveCell.FormulaR1C1 = ""
oExcel.Range("I4").Select
oExcel.ActiveCell.FormulaR1C1 = ". "
oExcel.Range("J4").Select
oExcel.ActiveCell.FormulaR1C1 = " "
oExcel.Range("K4").Select
oExcel.ActiveCell.FormulaR1C1 = ". "
oExcel.Range("L4").Select
oExcel.ActiveCell.FormulaR1C1 = "."
oExcel.Range("M4").Select
oExcel.ActiveCell.FormulaR1C1 = "."
10.
oExcel.Range("N4").Select
oExcel.ActiveCell.FormulaR1C1 = "."
'
oExcel.Columns("A:A").ColumnWidth = 8
oExcel.Columns("B:B").ColumnWidth = 25
oExcel.Columns("C:C").ColumnWidth = 7
oExcel.Columns("D:D").ColumnWidth = 7
oExcel.Columns("E:E").ColumnWidth = 7
oExcel.Columns("F:F").ColumnWidth = 6
oExcel.Columns("G:G").ColumnWidth = 6
oExcel.Columns("H:H").ColumnWidth = 7
oExcel.Columns("I:I").ColumnWidth = 6
oExcel.Columns("J:J").ColumnWidth = 18
oExcel.Columns("K:K").ColumnWidth = 6
oExcel.Columns("L:L").ColumnWidth = 6
oExcel.Columns("M:M").ColumnWidth = 6
oExcel.Columns("N:N").ColumnWidth = 6
'
oExcel.Rows("4:4").Font.Bold = True
oExcel.Rows("4:4").RowHeight = 15
oExcel.Rows("4:4").Font.Size = 7
oExcel.Rows("4:4").VerticalAlignment = xlCenter
oExcel.Rows("4:4").Interior.ColorIndex = 8
oExcel.Rows("4:4").HorizontalAlignment = xlCenter
'
oExcel.Range("A4:N4").Select
oExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
'
With oExcel.Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
337
II.
338
'
With oExcel.Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
' -
RSset.Open "tblExcel", CurrentProject.Connection
nRow = 5 '
' : ,
SignSaldoStart = 0
SldRussia = 0
SldKray = 0
'
For I = 0 To RSset.RecordCount - 1
' I- RSset
RSset.Move I, adBookmarkFirst
Select Case RSset.Fields("CONTENTS").Value
Case " "
SignSaldoStart = 0
nRow = nRow + 1
' Excel
' . ModuleSlave
Call WriteLine(nRow, oExcel, RSset)
oExcel.Rows(Trim(Str(nRow)) & ":" & _
Trim(Str(nRow))).Font.Size = 7
10.
oExcel.Rows(Trim(Str(nRow)) & ":" & _
Trim(Str(nRow))).RowHeight = 13.2
oExcel.Rows(Trim(Str(nRow)) & ":" & _
Trim(Str(nRow))).HorizontalAlignment = xlCenter
oExcel.Range("A" & Trim(Str(nRow)) & ":" & _
"N" & Trim(Str(nRow))).Select
'
With oExcel.Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
SignSaldoStart = 1
339
II.
340
Case " .. "
SldRussia = RSset.Fields("SALDO").Value
Case " .. "
SldKray = RSset.Fields("SALDO").Value
If SignSaldoStart = 1 Then
'
nRow = nRow + 1
oExcel.Range("C" + Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = _
" ():
" & _
Trim(Str(SldRussia)) & _
" .
():
" & _
10.
'
With oExcel.Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
With oExcel.Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'
' ,
If StartRow + 1 <> nRow Then
With oExcel.Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
'
nRow = nRow + 1
oExcel.Range("B" & Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = " "
oExcel.Range("C" & Trim(Str(nRow))).Select
341
II.
342
oExcel.ActiveCell.FormulaR1C1 = NachAll
oExcel.Range("D" & Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = YmAll
oExcel.Range("E" & Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = DonaAll
oExcel.Range("F" & Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = YpAll
oExcel.Range("G" & Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = ReturnAll
oExcel.Range("I" & Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = NachPeniAll
oExcel.Range("K" & Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = SpPeni
oExcel.Range("L" + Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = UpPeni
oExcel.Rows(Trim(Str(nRow)) & ":" & _
Trim(Str(nRow))).Font.Size = 7
oExcel.Rows(Trim(Str(nRow)) & ":" & _
Trim(Str(nRow))).Interior.ColorIndex = 35
oExcel.Rows(Trim(Str(nRow)) & ":" & _
Trim(Str(nRow))).HorizontalAlignment = xlCenter
'
nRow = nRow + 1
StartRow = nRow
oExcel.Range("A" & Trim(Str(nRow))).Select
oExcel.ActiveCell.FormulaR1C1 = " " & _
" :
" & _
..
: " & _
'
10.
YmAll = 0
'
DonaAll = 0
'
YpAll = 0
'
ReturnAll = 0
'
NachPeniAll = 0
'
SpPeni = 0
'
UpPeni = 0
'
End If
Case ""
SignSaldoStart = 0
nRow = nRow + 1
'
NachPeniAll = NachPeniAll + RSset.Fields("NPE").Value
'
SaldoAll = RSset.Fields("SALDO").Value
'
OstPenu = RSset.Fields("OSTPE").Value
'
OstSht = RSset.Fields("OSTSH").Value
'
Call WriteLine(nRow, oExcel, RSset)
Case Else
nRow = nRow + 1
'
Call WriteLine(nRow, oExcel, RSset)
'
NachAll = NachAll + RSset.Fields("NACH").Value
'
DonaAll = DonaAll + RSset.Fields("YPDONA").Value
'
YpAll = YpAll + RSset.Fields("YPVS").Value
'
ReturnAll = ReturnAll + RSset.Fields("VPE").Value
'
NachPeniAll = NachPeniAll + RSset.Fields("NPE").Value
'
SpPeni = SpPeni + RSset.Fields("YPNEDO").Value
'
343
II.
344
MS Excel, . "" . , , . .
, Excel-
. AccountExcel .
( , ).
. Recordset
(ADO):
Dim RSset As ADODB.Recordset
'
10.
.CursorType = adOpenKeyset
345
'
.Open
End With
RSset (Recordset)
:
RSset.MoveFirst
'
RSset.MoveNext
'
RSset.MovePrevious
'
RSset.Move
'
RSset.MoveLast
'
( Move)
. 14.8. .
( )
, , :
SaldoAll = RSset.Fields("SALDO").Value
oExcel.ActiveCell.FormulaR1C1 = SaldoAll
Recordset.
Excel- Acess-, :
oExcel.ActiveCell.FormulaR1C1 = [Forms]![Flats]![txtFlat].Value
MS Excel
txtFlat Flats.
, ,
"Copyright " . !
.
10.2.
Microsoft Word 2007
Real Estate , , , ,
II.
346
. . .
.
, , - . , MS Word.
. Flats
, 10.5.
10.5.
Private Sub CommandTreaty_Click()
' ""
'
'
SelectAddressFlat = Me!txtFLAT.Value
'
SelectFlatRooms = Me!ROOMS.Value
'
If DCount("*", "tblOwners", _
"STREET = " & SelectAddressStreet & _
" AND HOUSE = " & SelectAddressHouse & _
" AND FLAT = " & SelectAddressFlat) = 0 Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
Else
'
DoCmd.OpenForm "Treaty"
End If
End Sub
Treaty
(. 10.4). ,
.
.
Word ( 10.6)
TreatyWord, ModuleSlave,
: , ,
. .
10.
. 10.4. Treaty
10.6. Word
Private Sub CommandSave_Click()
' ,
'
SelectDateTreaty = Me![txtDate].Value
' ,
SelectChief = Me![OptionGroup2].Value
'
SelectText = Me![txtSelectText].Value
' -
If IsNull(Me![CheckBox1].Value) Then
SelectMemorial = False
Else
SelectMemorial = Me![CheckBox1].Value
End If
'
SelectTypeFlat = Me![OptionGroup3].Value
'
SelectTypeKind = Me![OptionGroup3].Value
' ModuleSlave
Call TreatyWord(SelectDateTreaty, SelectChief, SelectText, _
SelectMemorial, SelectTypeFlat, SelectTypeKind)
End Sub
347
348
II.
, MS Excel, . , . ,
. , ,
Selection. MS Excel.
MS Excel Cell. MS Word . Selection,
. , Selection
.
MS Access. MS Access "" MS Word, :
1. MS Access 2007. -
10.
349
2. Visual Basic, ,
.
3. VBA Tools. .
4. References. -
.
5. Microsoft Word 12.0 Object Library (. 10.5).
6. OK.
, , MS
Excel, . oWord,
. MS Word 10.7.
10.7. , MS Word
Public Sub TreatyWord(SelectDateTreaty, SelectChief, _
SelectText, SelectMemorial, SelectTypeFlat, _
SelectTypeKind)
' Microsoft Word
'
Dim I, SelectRoom, SelectRoom1, SelectRoom2, ChiefShot, _
ChiefLong, DayText, DayMonthYear, lcText, _
RightAddress, SelectHouse, SelectFlat
' Word
Dim oWord As Object
Dim RSset As ADODB.Recordset
'
II.
350
Case 3
10.
.TopMargin = 56
.BottomMargin = 56
End With
'
With oWord.ActiveDocument
.AutoHyphenation = True
.HyphenateCaps = True
.ConsecutiveHyphensLimit = 0
End With
With oWord.Selection
'
.Font.NAME = "Times New Roman"
.Font.Size = 14
.Font.Bold = wdToggle
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeText ("")
.TypeParagraph
.Font.Size = 12
lcText = " "
.TypeText (lcText)
If SelectMemorial = True Then
' -
.TypeParagraph
lcText = " - "
.TypeText (lcText)
End If
.TypeParagraph
.Font.Size = 12
.Font.Bold = wdToggle
.ParagraphFormat.Alignment = wdAlignParagraphJustify
.TypeText (". Real Estate")
.TypeParagraph
.ParagraphFormat.Alignment = wdAlignParagraphCenter
lcText = Trim(DayMonthYear) '
.TypeText (lcText)
'
If Len(Trim(SelectText)) <> 0 Then
.TypeParagraph
351
II.
352
.ParagraphFormat.Alignment = wdAlignParagraphJustifyMed
lcText = "
.TypeText (lcText)
End If
.TypeParagraph
.ParagraphFormat.Alignment = wdAlignParagraphJustifyMed
lcText = "
'
.Open
End With
'
For I = 0 To RSset.RecordCount - 1
' I-
RSset.Move I, adBookmarkFirst
'
' RSset
lcText = Trim(RSset(4)) & " " & _
Trim(RSset(5)) & " " & _
10.
353
'
II.
354
RSset.MoveFirst '
If SelectTypeFlat = 1 Then
'
lcText = "
1. , " & _
1. , " & _
'
10.
'
' RSset . 14.8
If RSset(3) = False Then
'
RightAddress = Trim(RSset(2)) & " " & Trim(RSset(1))
Else
'
RightAddress = Trim(RSset(1)) & " " & Trim(RSset(2))
End If
lcText = lcText & RightAddress & _
", " & Trim(SelectAddressHouse) & ", . " & _
Trim(Str(SelectAddressFlat)) + "."
RSset.Close '
.Font.Underline = wdUnderlineSingle
.Font.Bold = wdToggle
.TypeText (lcText)
.TypeParagraph
.Font.Bold = wdToggle
.Font.Underline = wdUnderlineNone
.ParagraphFormat.Alignment = wdAlignParagraphJustifyMed
lcText = "
2. " & _
3. , " & _
" , ."
.TypeText (lcText)
.TypeParagraph
lcText = "
4. " & _
5. " & _
355
II.
356
6. " & _
7. " & _
10.
357
.ParagraphFormat.Alignment = wdAlignParagraphRight
lcText = " "
.TypeText (lcText)
.TypeParagraph
.TypeParagraph
.Font.NAME = "Courier new"
.Font.Size = 12
.ParagraphFormat.Alignment = wdAlignParagraphJustify
lcText = "________________ "
.TypeText (lcText)
.Font.Bold = wdToggle
lcText = Trim(ChiefShot)
.TypeText (lcText)
End With
'
oWord.ActiveWindow.ActivePane.VerticalPercentScrolled = 0
Set RSset = Nothing
End Sub
TreateWord Detail, , .
ModuleSlave,
.
11
, .
HTML Help Workshop.
Microsoft. Visual FoxPro 6.0.
- .
Web- :
http://www.microsoft.com/workshop/author/htmlhelp
HTML Help Workshop 1.3.
ReadMe, . HTML
Help Workshop .
.
HTML Help Workshop Internet Explorer. HTML Help
Workshop chm. -
. ,
, <F1>.
RealEstate.chm .
11.1. HTML-
HTML-.
HTML HELP.
11.
359
Microsoft Word ,
.
,
, ,
:
1. Microsoft Word , -
.
2. -
. (. 11.1).
3. .
4. .
360
II.
11.2.
HTML Help Workshop. File
(). New (). New. Project () OK.
HTML Help Workshop
. . RealEstate.hhp.
11.3. HTML-
RealEstate.hhp. Project
() (. 11.2).
11.
361
Add/Remove topic files (
HTML-).
HTML-.
).
Options () .
General () :
;
,
;
.
Files () , .
Compiler () . 11.3. .
. 11.3.
362
II.
11.4.
HTML Help Workshop Contents ().
11 (. 11.4).
Contents properties
( )
. (
). .
Insert
a heading ( ).
Insert a page ( ).
.
.
11.
363
.
. - .
. Save all files and compile
,
( ) Project ()
HTML Help Workshop.
RealEstate.chm HTML Introduction ().
364
II.
, ,
MS Access
HTML-. , ,
. ,
HelpContextID ( ) RealEstate.h.
. 11.5.
11.5.
, , HtmlHelp API information
(. 11.6),
Project () HTML Help Workshop.
11.
365
. . HTML- . ,
.
HTML- .
.
. "A1"
"" . :
Form_Building
( )
Form_Building_Combo1_Street
( )
11.6.
( HelpContextID MS Access).
MS Access. . Form, CheckBox, ComboBox, CommandButton, EditBox, Grid, Image, Label, ListBox, Page . HelpContextID .
. , , .
Real Estate , .
:
Private Sub Form_Load()
'
Me.HelpFile = CurrentPath() & "\RealEstate.chm"
End Sub
11.7.
.
Map-. h. RealEstate.h. Windows . RealEstate.h:
#define Form_Login 100
366
II.
, //,
.
RealEstate.hhp.
HTML Help Workshop. .
Project. HtmlHelp API information
(. 11.7). Map- RealEstate.h.
. 11.7.
HtmlHelp API information
11.8.
,
Save
all files and compile ( ) Project () (. . 11.2).
11.
367
PNG , Web. .
PNG ,
.
, ( ) . PNG-
HTML-.
RealEstate.hhp [FILES]:
[FILES]
HTML\Part 02.files\*.png
HTML\Part 03_3.files\*.png
HTML\Part 04_1.files\*.png
HTML\Part 04_2.files\*.png
HTML\Part 04_2_4.files\*.png
HTML\Part 04_3_3.files\*.png
HTML\Part 05_2.files\*.png
HTML\Part 06.files\*.png
III
"-"
,
, ,
12
MS Access 2007
MS SQL Server 2005
, ,
. Microsoft Access , . . , , , , , ,
, .
.
. "-" , , , ,
.
Microsoft SQL Server "", ,
. , ,
, . . SQL Server .
.
, , "-" .
372
III. "-"
, MS Office
Access 2007 ( accdb) . , . , , , .
. "" . !
,
MS Access . ,
MS Access
, .
"" <Shift> .
.
1. SQL Server 2005. -
.
2. , (.
8).
3. -
: .
,
. , (
), , "-" .
373
. .
. . . ,
, SQL Server
(Developer Edition) (Workgroup Edition Standard Edition). ,
, ,
Developer Edition, Express Edition. MS SQL Server 2005.
Enterprise Edition SQL Server.
.
.
Windows Server 2003 Enterprise Edition Standard Edition. ,
, - .
Developer Edition .
Enterprise Edition .
Microsoft Windows 2000 SP4 Microsoft Windows XP SP1.
.
Enterprise Edition.
Enterprise Edition 120-day Evaluation .
Microsoft. ,
.
Microsoft Windows XP SP1.
Standard Edition , Enter-
prise Edition. . , ,
.
Enterprise Edition.
Workgroup Edition Microsoft. MS SQL Server
2000, , .
, , . .
Windows, Windows 2000, .
374
III. "-"
12.2.
MS SQL Server 2005 Developer Edition
MS SQL Server 2005 , Service Pack 1 Windows Server 2003
Service Pack 2 Windows XP?
DVD-. . (. 12.1).
375
12.2.1.
Microsoft, (. 12.2), Windows Installer. MS SQL Server 2005 . , SQL
Server
Windows.
, Microsoft Windows Installer 3.1. . . Microsoft (
2,46 ).
""
Windows . MS
SQL Server 2005 , Windows
Vista, "" Installer 3.1 .
. 12.2.
-
376
III. "-"
12.2.2.
,
(. 12.3).
SQL Server Database Services . -
. , .
(OLAP),
377
,
.
.
.
Reporting Services .
.
MS SQL Server, , OLE DB. Web. . 12.3 , . .
MS SQL- IIS (Internet
Information Services).
Notification Services . -
SQL Server.
Integration Services
,
, SQL Server 2005.
Workstation components, Books Online and development tools -
SQL Server .
, . .
, ,
.
12.2.3.
MS SQL Server 2005
MS SQL Server
2005, .
. . Default instance (. 12.4).
. MS SQL Server 2000 Named instance , . MS SQL Server 2005 .
.
MS SQL Server 2005 Developer Edition 50 .
378
III. "-"
12.2.4.
SQL Server
: SQL Server
(SQL Server Agent, Analysis Services .) -
379
?
? ,
. 12.5. MS
Access . SQL- .
. 12.5.
12.2.5.
MS SQL- :
Windows SQL Server (. 12.6).
,
380
III. "-"
SQL-. ? Windows
. . Microsoft ( Windows). ,
, Mixed Mode.
. 12.6.
.
,
SQL Server ( sa) .
381
12.2.6.
, Collation Settings (. 12.7), .
,
. , .
Binary, MS SQL Server , .
Case - sensitive SQL Server ,
, . ,
(tblBUILDING), :
SELECT * FROM tblBUILDING
, , , . . tblBuilding.
Case - sensitive
"" , , . . SQL- MS Access
, MS SQL Server . ?
, , ,
.
Reporting Services, . .
. Ready to Install (. 12.8)
, Install -
382
III. "-"
, 1520, . , , .
, - , Back .
, . Install .
MS SQL Server 2005
. Finish
. Microsoft SQL
Server 2005.
. 12.7.
383
. 12.8.
12.3.
MS Access MS SQL Server MS Access. SQL Server,
Microsoft Access 2007,
MS Access 2007 Microsoft
SQL 2005 .
Microsoft Office, Access, Microsoft. MS Access 97 "" SQL
Server 7.0, MS Access 2000 SQL Server 2000.
384
III. "-"
Access .
2. ,
SQL Server. ,
.
3. . SQL Server
( ), . .
. , MS Access SQL
Server . .
SQL Server
Microsoft Access.
Microsoft SQL Server.
,
. SQL Server ,
(sa).
, ODBC Microsoft SQL Server. , SQL Server (, Visual FoxPro
Delphi). , ODBC (Open Database Connectivity, ) , , . MS Access MS SQL
Server, ODBC .
:
1. Microsoft Access 2007.
2.
MS Access.
3. SQL Server.
4. .
385
12.3.1.
SQL Server . SQL Server
,
.
12.3.2.
(. 12.9) SQL Server, , . Microsoft SQL Server 2005 Developer Edition , Master, .
, , Microsoft
386
III. "-"
12.3.3.
Microsoft
Access, Real EstateSQL .
. . ,
.
12.3.4.
(. 12.10). , . ,
, , . .
,
SQL Server.
.
,
SQL Server .
Microsoft Access ,
Microsoft SQL Server SQL Server.
SQL Server
Access, "aaaaa". Microsoft Access
,
"aaaaa" . -
387
, ,
"_". Microsoft Access SQL Server.
. 12.10.
SQL Server , , .
. ,
CHECK. , , . ,
ANSI (American National Standards Institute), , -
III. "-"
388
, ,
SQL Server timestamp SQL Server, Microsoft Access, "
(4 8 )", Memo OLE.
timestamp
, ,
. ,
. Access,
Memo, OLE
, .
. , MS SQL Server TransactSQL, MS SQL Server . MS Access .
!
.
, , DRI (Declarative
Referential Integrity, ). DRI
, Microsoft Access,
389
( ""
"--") ( "" "--").
DRI
MS SQL Server.
.
tblBuilding tblDistrict. . 12.11 , MS Access.
, , .
. , :
tblDistrict
tblBuilding;
tblDistrict
tblBuilding .
. 12.11. ,
tblDistrict tblBuilding MS Office Access 2007
390
III. "-"
. 12.12.
tblDistrict tblBuilding MS SQL Server 2005,
DRI
. 12.12
tblBuilding tblDistrict
DRI. MS SQL Server , MS Access. ,
, . ,
, tblBuilding,
,
(MS Access)
tblDistrict.
391
tblDistrict
tblBuilding (Update Rule Cascade);
tblDistrict
tblBuilding (Delete Rule No Action).
.
.
III. "-"
392
. Microsoft
Access ,
,
,
. .
,
. , .
. 12.13 , tblBuilding
tblDistrict : Enforce
Foreign Key Constraint No ( ). . .
12.1 , Transact-SQL
tblDistrict,
tblBuilding , .
12.1. ( tblDistrict)
ALTER TRIGGER T_tblDistrict_DTrig
ON tblDistrict FOR DELETE AS
SET NOCOUNT ON
/* * 'tblBuilding' */
IF (SELECT COUNT(*) FROM deleted, tblBuilding
WHERE (deleted.DISTRICT = tblBuilding.DISTRICT)) > 0
BEGIN
RAISERROR 44445 '
. "tblBuilding"
,
.'
ROLLBACK TRANSACTION
393
END
12.3 ,
tblBuilding, tblDistrict.
12.3. ( tblBuilding)
ALTER TRIGGER T_tblBuilding_ITrig
ON tblBuilding FOR INSERT AS
SET NOCOUNT ON
/* * 'tblDistrict' */
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM tblDistrict,
inserted WHERE (tblDistrict.DISTRICT = inserted.DISTRICT))
BEGIN
RAISERROR 44447 '
.
"tblDistrict".'
ROLLBACK TRANSACTION
III. "-"
394
END
,
. , , . 12.14.
. 12.14.
12.3.5.
(. 12.15). ,
, .
SQL
Server 2005.
395
, .
Access "-" ( -
OLE DB).
SQL Server . -
MS Access SQL
Server, "-"
( ODBC).
.
. 12.15.
SQL Server
396
III. "-"
. . .
12.3.6.
"-"
Access "" SQL Server
Microsoft Access (. 12.16).
( MS Access).
"CS", ,
Access. Microsoft Access
2007 Microsoft SQL Server 2005 OLE DB. : , , ,
. . SQL-.
, , .
MS Access 2007
Access , .
SQL Server ,
,
397
,
SQL Server
, , , SQL , , SQL Server.
. , , (DAO) ActiveX (ADO),
( SQL Server SQL
(Data Definition Language).
12.3.7. Access-
SQL Server
SQL Server Access, . , . . Microsoft Access
Microsoft SQL-,
III. "-"
398
. 12.17. MS Access
:
SQL Server
. :
ODBC;DRIVER=SQL Server;SERVER=master;
APP=2007 Microsoft Office system;
DATABASE=Real EstateSQL;Trusted_Connection=Yes;
TABLE=dbo.tblStreet
399
C:\Windows\system32\sqlsrv32.dll).
SERVER SQL Server ( master). -
.
. ?
.
!
ODBC . SQL Server. :
ODBC;DSN=Sql2005;Description=Access2007SqlServer2005;
APP=2007 Microsoft Office system;
DATABASE=Real EstateSQL;LANGUAGE=;Trusted_Connection=Yes;
TABLE=dbo.tblStreet
:
DSN ;
Description .
,
( );
LANGUAGE SQL-.
400
III. "-"
ODBC
SQL Server . Real Estate.accdb,
. , ,
"" MS SQL Server 2005 Master. ( ) MS Access 2007 ,
, .
1.
1. .
2. .
.
. .
3. ( ). ,
<Shift>, .
4. <Delete>.
.
5. .
6. . ODBC.
7. ODBC.
8.
2.
. ODBC
. , , SQL-, . .
401
3.
ODBC.
.
1. : . -
.
.
2. . SQL Server
( C:\Windows\system32\sqlsrv32.dll).
.
3. ODBC -
. .
4.
(. 12.18) :
,
;
,
, ;
SQL Server 2005.
, . ,
, SQL Server.
Windows NT, SQL Server
, . SQL Server
SQL Server.
. 12.6 SQL Server 2005. (. 12.19) ,
.
. .
. (, )
.
402
III. "-"
. 12.18.
. 12.19.
403
5. ODBC
Microsoft ODBC , (. 12.20).
. . Sql2005 OK.
. 12.20.
6.
Real
EstateSQL, SQL Master.
, . OK. MS Access 2007
. .
404
III. "-"
12.3.9.
SQL Server
MS SQL
Server (. 12.21).
405
. . .
ODBC. .
. Microsoft Access 2007 OLE DB
. ODBC
, -
406
III. "-"
. ,
, Microsoft ( ),
ODBC . OLE DB API,
COM (Component Object Model, ).
, OLE DB,
. COM-.
2002 Microsoft .NET. :
.NET . , , Web-.
Microsoft .NET CLR
(Common Language Runtime). .NET , . ,
, C++, , Visual Basic Delphi.
: DAO,
ADO, ADO.NET . VBA , MS Visual
Studio .NET, ,
(DAO, ADO ADO.NET) .
(, MS Visual FoxPro)
. .
Microsoft DAO (Data Access Objects)
OLE DB.
Microsoft ADO.NET (ActiveX Data Objects .NET) -
407
. 12.22. MS SQL-
. 12.23. MS Access
. 12.3.7
MS Access 2007 "-"
SQL Server 2005. . 12.24.
408
III. "-"
Microsoft,
,
( adp) Access
2002/2003 MS Office Access
.
MS Office 2007
MS Access Office .NET. , . MS Access 2007 MS SQL Server
2005 Express Edition Microsoft. .
13
" "
MS SQL Server 2005
MS SQL Server .
:
, .
MS SQL Server .
13.1.
MS SQL Server Management Studio
MS SQL Server 2005
.
SQL Server Management Studio. Visual Studio .NET. SQL Server Management Studio .
: | | Microsoft SQL Server 2005 | SQL
Server Management Studio. Connect to Server (
). , , . Connect (). ,
. 13.1.
SQL Server Management Studio .
View () .
Object
Explorer. SQL-.
, , , . .
410
III. "-"
. Filter () . , , .
View. .
Registered Servers
. MS
SQL-, ,
SQL Server Management Studio, .
.
Registered Servers New () Server Registration ( ).
Template Explorer
.
Create (), Alter () Drop () . , , .
36 . .
411
sql .
:
C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\
IDE\sqlworkbenchprojectitems\Sql
Solution Explorer
SQL-.
Properties Windows
. : .
.
13.2.
, ,
Real EstateSQL. SQL Server 2005?
, MS Access 2007!
. :
1. Object Explorer
.
2. , ""
, .
3. Database Diagrams (-
).
4. New Database
Diagrams ( ).
5. . , -
. ,
tblUser. , .
6. Close () . -
. 13.2.
, MS Access 2007:
;
;
III. "-"
412
, ,
;
;
;
.
413
SQL Server . .
.
Windows. .
.
.
,
,
MS SQL Server 2005.
:
1. Object Explorer
.
2. , ""
, .
3. Security ().
Schemas (). .
4. New Schema ( ). ,
.
5. General () Schema name ( )
. Schema Owner ( )
.
6. Search (). -
OK.
. , , .
.
414
III. "-"
13.4.
.
. . :
<__>.<_>.<_>
tblStreet :
[Real EstateSQL].dbo.tblStreet
Real EstateSQL - , .
, dbo ( ) , , :
tblStreet.
13.4.1.
SQL Server Management Studio :
1. Object Explorer Databases
( ), .
2. Tables () -
. New Table (
).
3. (. 13.3). -
. .
Table () . : Column Name, Data
Type
Allow Nulls.
Column
Properties . , ( ).
415
Description () Column
Properties ( ).
, , .
, .
Table,
, Column Properties. Decimal Column Properties
: Precision Scale,
.
. 13.3. tblBuilding
SQL Server Management Studio
III. "-"
416
13.4.2.
MS SQL Server Management Studio
. :
1. Object Explorer
.
2. , ""
, .
3. Tables ().
4. ,
.
5. Properties
().
6. Table Properties ( ).
: General, Permissions
Extended Properties. :
( Data
space);
, ( -
Index space).
( Row count);
( DateCreated);
( LastUpdated);
;
.
417
13.4.3. ,
Transact-SQL. :
1. MS SQL Server Management Studio,
.
2. Standard -
New Query.
3.
.
Object Explorer ( ) New Query
( ).
4. (. 13.4).
. , .
. , Execute (), , .
: Results () Messages ().
tblBuilding
dbo Inspector.
SELECT * INTO Inspector.tblBuilding FROM dbo.tblBuilding
Messages () :
(30 row(s) affected)
:
1. Object Explorer Databases
( ), .
2. Tables () -
. View Dependencies
( ).
. . .
III. "-"
418
3. -
Delete ().
4. -
Rename ().
13.4.4.
:
MS SQL Server Management Studio -
Transact-SQL;
c MS SQL Server Management Studio, -
Object Explorer ;
419
, ""
, ;
Tables ();
,
;
Open
Table ( );
Table ().
.
Transact-SQL , (. . 13.4).
bit
0, 1 Null
tinyint
0 255
smallint
32 768 32 767
int
bigint
263 263
decimal
517
1038 1038
III. "-"
420
13.1 ()
real
3.41038 3.41038
float
48
1.7910308 2.2310308
money
smallmoney
214 748.3648
214 748.3647
smalldatetime
1 1900
6 2079
1
datetime
1 1753
31 9999
3,33
xml
XML
char
( Unicode)
8000
varchar
1
+ 2
( Unicode)
8000
varchar(max)
1
+ 2
( Unicode)
2 147 483 647
text
( Unicode)
2 147 483 647
nchar
(Unicode)
4000
421
13.1 ()
nvchar
2
+
2
(Unicode)
4000
nvchar(max)
2
+
2
(Unicode)
1 073 741 823
ntext
(Unicode)
1 073 741 823
binary
8000
varbinary
+
2
8000
varbinary(max
)
+
2
2 147 483 647
image
2 147 483 647
13.6.
. , , MS SQL Server
III. "-"
422
int,
int, tinyint smallint. ,
,
CAST() CONVERT(). Transact-SQL, . .
CAST:
CAST(expression AS data_type [ (length ) ])
CONVERT:
CONVERT(data_type [ ( length ) ], expression [, style ] )
:
expression , Transact-SQL, ;
data_type , -
;
length ( );
style
.
CAST . 13.5.
. 13.5. 3.1415926
int
3.1415926, :
SELECT CAST(3.1415926 AS money)
: 3.1416.
423
CONVERT()
" " .
, .
style (. 13.2).
13.2. CONVERT()
(yy)
(yyyy)
"/"
0 100
mon dd yyyy
hh:miAM ( PM)
101
mm/dd/yyyy
102
ANSI
yy.mm.dd
103
dd/mm/yy
104
dd.mm.yy
105
dd-mm-yy
106
dd mon yy
107
Mon dd, yy
108
hh:mm:ss
9 109
mon dd yyyy
hh:mi:ss:mmmAM ( PM)
10
110
mm-dd-yy
11
111
yy/mm/dd
12
112
ISO
yymmdd
13 113
dd mon yyyy
hh:mm:ss:mmm
(24- )
14
114
20 120
hh:mi:ss:mmm
(24- )
ODBC
yyyy-mm-dd
hh:mi:ss
(24- )
III. "-"
424
13.2 ()
(yy)
(yyyy)
"/"
21 121
ODBC
yyyy-mm-dd
hh:mi:ss.mmm
(24- )
126
ISO8601
yyyy-mm-dd
Thh:mm:ss.mmm
(no spaces)
127
ISO8601 Z
yyyy-mmddThh:mm:ss.mmmZ
( )
130
Hijri (
)
dd mon yyyy
hh:mi:ss:mmmAM
131
Hijri (
)
dd/mm/yy
hh:mi:ss:mmmAM
:
;
( );
;
( ).
SELECT GETDATE(),
CONVERT(CHAR(12),GETDATE(),4),
CONVERT(CHAR(24),GETDATE(),109),
CONVERT(CHAR(10),GETDATE(),108)
------
!Execute ------
2007-05-25 10:13:51.577
25.05.07
May 25 2007 10:13:51:577
10:13:51
425
13.7. Transact-SQL
MS SQL Server 2005
Transact-SQL,
SQL (Structured Query Language) ANSI SQL-92. , Transact-SQL ,
. Transact-SQL.
13.7.1.
Transact-SQL , , , , , ,
. . . :
: @, $, _, #;
128 ;
, , , &,
, : ^, !, %, -, ", \, ', ~;
.
Transact-SQL :
,
;
,
. , .
.
tblStreet:
SELECT * FROM [Real EstateSQL].dbo.tblStreet
III. "-"
426
. , .
.
? , , ,
?
Transact-SQL :
SET QUOTED_IDENTIFIER {ON | OFF}
QUOTED_IDENTIFIER, ON, MS
SQL Server :
.
,
;
-
.
QUOTED_IDENTIFIER, OFF, :
,
. ,
;
.
13.7.2.
, Transact-SQL,
, .
. . . Transact-SQL
427
. 13.1
:
"", -
.
;
/* -
*/. "" .
13.1. Transact-SQL
/* */
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [T_tblFlats_UpTrig] -
ON [dbo].[tblFlats] FOR UPDATE, INSERT AS
SET NOCOUNT ON
Declare @SqFlat REAL
--
--
IF UPDATE /* */ (SQUAREFLAT)
OR UPDATE(DWELL)
BEGIN
SELECT @SqFlat =inserted.SQUAREFLAT,
@SqBal=inserted.BALCONY
FROM inserted
IF @SqFlat,1) < @SqBal
ROLLBACK TRANSACTION
END
13.7.3.
, . -
428
III. "-"
. Transact-SQL
: .
.
. .
:
DECLARE <_> <_>
@. .
. @Account :
DECLARE @Account int
,
:
DECLARE @LastName nvarchar(20),
@FirstName nvarchar(15),
@SecondName nvarchar(25)
. . : @@.
:
SET SELECT. SET , :
DECLARE @ModelCar nvarchar(15)
SET @ModelCar='Carina'
13.7.4.
MS SQL Server , ,
, , , , . .
429
, () ( ).
, ,
. (. 13.3) , , .
13.3. Transact-SQL
- ()
: True ( ) False ( ). . 13.4.
13.4. Transact-SQL
>
>=
<
<=
<> !=
!<
!>
III. "-"
430
13.5. Transact-SQL
AND
""
()
False
True
""
()
False OR False
False
True OR False
True
NOT False
True
NOT True
False
OR
NOT
Transact-SQL
. :
1. MS SQL Server Management Studio,
.
2. Standard -
New Query.
3.
.
Object Explorer ( ) New Query
( ).
4. (. . 13.4).
. , .
. , ! Execute (), ,
.
: Results () Messages ().
AND, OR NOT Transact-SQL 7 .
ALL .
, True.
, .
IF '' <> ALL (SELECT FAMILY FROM tblAccount)
PRINT ' '
431
ELSE
PRINT ' '
BETWEEN True, -
, False, . , 1970
1980. ,
BETWEEN True.
SELECT STREET,HOUSE,YEAR FROM tblBuilding
WHERE YEAR BETWEEN 1970 AND 1980
------
14
57
1977
14
58
1971
16
17
13
!Execute ------
1980
1970
:
SELECT STREET,HOUSE,YEAR FROM tblBuilding
WHERE YEAR >= 1970 AND YEAR<=1980
ANY ( SOME)
. ,
True. , .
IF '' = ANY (SELECT FAMILY FROM tblAccount)
PRINT ' '
ELSE
PRINT ' '
EXIST True, ,
. , .
False
IF
ELSE
PRINT ' '
III. "-"
432
EXIST, ,
, ANY SOME
.
IN . -
,
True. ,
.
IF '' IN (SELECT FAMILY FROM tblAccount)
PRINT ' '
ELSE
PRINT ' '
IN ANY, ,
. . , , :
IF '' IN ('','')
PRINT ' '
ELSE
PRINT ' '
------
!Execute ------
LIKE True, , -
False.
, "".
SELECT FAMILY,NAME,SECOND FROM tblAccount
WHERE FAMILY LIKE '%'
433
,
, "".
SELECT FAMILY,NAME,SECOND FROM tblAccount
WHERE FAMILY LIKE '___%'
------
!Execute ------
13.7.5.
Transact-SQL . :
1. MS SQL Server Management Studio,
.
2. Standard -
New Query.
3.
.
Object Explorer New Query ( ).
4. (. .13.4).
. , .
. , ! Execute (), ,
.
: Results () Messages ().
434
III. "-"
, Transact-SQL
. :
BEGIN
<1>
<2>
...
END
. .
: tblBuilding tblStreet.
DECLARE @CountRecordALL smallint
------
!Execute ------
1231
.
.
Transact-SQL IF...ELSE.
THEN, IF ELSE .
:
IF <>
<1>
ELSE
<2>
ELSE , , .
- , BEGIN...END.
435
------
!Execute ------
,
CASE...END. :
CASE <_>
WHEN <1> THEN <_>
WHEN <2> THEN <_>
...
ELSE <_>
END
, Transact-SQL .
(_). CASE, .
CASE...END - Transact-SQL. , , PRINT, ,
. . .
. , WHEN, ,
-, THEN. , ,
ELSE.
III. "-"
436
, WHEN, , .
DECLARE @Rouble char(25)
SET @Rouble='6 '
PRINT
CASE @Rouble
WHEN '1 ' THEN ' '
WHEN '2 ' THEN ' '
WHEN '5 ' THEN ' '
ELSE ' '
END
------
!Execute ------
STREET,NAME,PRIZNAK =
CASE SIGN
WHEN '' THEN '.'
WHEN '' THEN '.'
WHEN '' THEN '.'
WHEN '' THEN '.'
WHEN '' THEN '.'
ELSE ''
END
FROM tblStreet
ORDER BY NAME
------
!Execute ------
STREET NAME
SIGN
PRIZNAK
[]
[]
10
11
12
13
14
15
437
Transact-SQL : WHILE...CONTINUE.
. . ,
: ,
, Transact-SQL
. :
WHILE <>
{ | }
[BREAK]
{ | }
[CONTINUE]
.
BREAK. 1 5.
DECLARE @Number tinyint
PRINT '
'
SET @Number = 1
WHILE @Number<=5
BEGIN
PRINT LTRIM(STR(@Number)+STR(@Number*@Number)
+ STR(@Number*@Number*@Number))
SET @Number=@Number+1
END
III. "-"
438
------
1
2
3
4
5
!Execute ------
1
4
9
16
25
1
8
27
64
125
Transact-SQL.
! Execute
() . ,
. , ,
GO.
Abs()
Abs(-345.6)
345.6
439
13.6 ()
Acos()
Acos(0.5)
1.0471976
Asin()
Asin(0.5)
0.5235988
Atan()
Atan(1)
0.7853982
Atn2()
,
,
,
Atn2(3,3)
0.7853982
Ceiling()
Ceiling(-15.2)
15
Ceiling (13.6)
14
Cos()
Cos(1)
0.5403023
Cot()
Cot(1)
0.6420926
Degrees()
Degrees(1.0)
57.29578
Exp()
Exp(1)
2.7182818
Floor()
(. )
Floor(-15.2)
16
Floor(13.6)
13
, ,
, 1. 0
IsNumeric(1.2)
IsNumeric
440
III. "-"
13.6 ()
Log()
Log(10)
2.302585
Log10()
Log10(100)
2.0
Pi()
Pi()
3.1415926
Power()
Power(3,3)
27
Radians()
Radians(90.0)
1.5707963
Rand()
0 1
Rand()
0.8529751
()
Sign()
1 , 0 , 1
Sign(-10.1)
Sign(0)
Sign(10.1)
Sin()
Sin(1)
0.8414710
Sqrt()
Sqrt(2)
1.4142136
Square()
Square(1.2)
1.44
Tan()
Tan(1)
1.5574077
. 13.7.
13.7. MS SQL Server 2005
GetDate()
GetDate()
12.03.2007
09:33:21.153
441
13.7 ()
Day()
Day(GetDate())
12
Month()
Month(GetDate))
Char()
,
ASCII
Char(37)
% ()
Year()
Year(GetDate())
2007
Len()
Len('')
Lower()
Lower('aSD')
asd
Upper()
Upper('aSD')
ASD
Replicate()
Replicate('Ado',2)
AdoAdo
Substring()
.
,
Substring
('abcdef',2,3)
bcd
Rtrim()
Rtrim('abcd ')
abcd
Ltrim()
Ltrim(' abcd')
abcd
Reverse()
Reverse('')
Str()
Str(1234.56)
1234.56
III. "-"
442
13.9.
, , . MS SQL Server 2005 . MS Access, MS SQL Server
.
, , . . . ,
. ,
.
13.9.1.
, . :
1. SQL Server Management Studio.
2. Connect to Server ( ). -
, , . Connect ().
3. Object Explorer Databases
( ), .
4. Tables ().
Indexes. .
5. New Index ... ( ). -
Index type ( ),
, .
Unique ().
7. , ,
OK.
443
New Index ( ).
10. Sort Order.
. 13.6.
Account tblFlats
444
III. "-"
13.9.2.
, . (. 13.7):
1. SQL Server Management Studio.
2. Connect to Server. -
, , . Connect ().
3. Object Explorer Databases
( ), .
. 13.7. tblBuilding
445
4. Tables (). -
.
5. . Modify ().
.
6. Manage Indexes and Keys.
. Indexes/Keys.
, .
7. , , General
() Columns ().
Index Columns.
8. Indexes/Keys Add () De-
lete () .
13.9.3.
,
.
. ,
, NULL. MS SQL Server 2005
(Unique) .
. :
1. SQL Server Management Studio.
2. Connect to Server. , -
, . Connect
().
3. Object Explorer Databases
( ), .
4. Tables (). -
.
5. . Modify (-
). .
6. Allow Nulls ( )
, .
446
III. "-"
7. , -
. .
8. , , -
<Ctrl>,
.
9. Set Primary Key ( -
), .
.
, .
13.10.
. . ,
1 9 .
District tblDistrict,
:
1. SQL Server Management Studio.
2. Connect to Server. -
, , . Connect ().
3. Object Explorer Databases
( ), .
4. Tables (). -
.
5. Constraint.
447
7. Expression (-
. 13.8. tblDistrict
, (19),
(. 13.9).
, , .
CHECK ,
-.
. 13.14.
448
III. "-"
. 13.9.
13.11.
.
.
.
, .
.
( ) ( ):
;
,
,
;
-
13.11.1. "--"
tblDictrict () tblBuilding (). , "--", . .
. ,
. :
1.
449
2. Connect to Server. -
, , . Connect ().
3. Object Explorer Data-
bases ( ), .
4. Database Diagrams ( ).
. . .
,
.
5. .
.
6. tblDictrict tblBuilding , .
7.
tblDictrict. DISTRICT. . (
DblClick). . .
8. , -
tblBuilding. , : FK_tblBuilding_tblDistrict.
"FK" Foreign Key ( ),
tblBuilding ,
tblDictrict .
10. "" , -
. OK
Tables and Columns.
11. Foreign Key Relationship. -
III. "-"
450
, , DRI,
. , ,
.
451
tblFlats ()
tblOwners ().
tblFlats : STREET, HOUSE FLAT.
tblOwners .
:
1. SQL Server Management Studio.
2. Connect to Server. , -
, . Connect
().
3. Object Explorer Databases
( ), .
4. Database Diagrams ( ).
. .
. , .
5. .
.
6. tblFlats tblOwners , .
III. "-"
452
7. ,
, , ,
STREET tblOwners. . : Foreign Key Relationship Tables and Columns (. 13.11).
9. Tables and Columns ( ) Relationship
name tblOwners.
, :
FK_tblOwners_tblFlats. "FK" Foreign Key
( ), tblOwners ,
tblFlats .
10. "" ,
13.11.2. "--"
tblFlats ()
tblAccount ( ).
453
, . :
1. SQL Server Management Studio.
2. Connect to Server ( ).
, , .
Connect ().
3. Object Explorer Data-
bases ( ), .
4. Tables (). tblFlats.
Indexes ().
.
5. New Index... ( ). -
New Index.
10. Sort Order.
. Ascending ( ).
OK.
11. Database Diagrams. -
. .
.
, .
12. .
.
13. tblAccount tblFlats , .
14.
tblAccount. ACCOUNT.
454
III. "-"
. ( DblClick).
. .
15. , -
ACCOUNT tblFlats,
. : Foreign Key Relationship Tables
and Columns.
16. Tables and Columns Relationship name -
tblFlats. ,
: FK_tblFlats_tblAccount.
"FK" Foreign Key ( ),
tblFlats , tblAccount .
17. "" , -
. OK
Tables and Columns.
18. Foreign Key Relationship. -
13.12.
() ,
.
, . SQL-, . , ,
, .
455
MS Access . ,
, . , . , "" . SELECT,
.
, ,
, ,
:
;
FROM;
UPDATE INSERT, -
, , ;
GROUP
DISTINCT, UNION
TOP,
BY,
(SUM, COUNT, MAX
.).
MS SQL Server 2005
, Microsoft SQL Server Management Studio.
.
, .
.
,
Real EstateSQL.
, , , , .
MS SQL Server.
:
1. SQL Server Management Studio.
456
III. "-"
2. Connect to Server ( ).
, , .
Connect ().
3. Object Explorer Databases
( ), .
4. Views. -
. New View....
5.
Add Table.
: Tables, Views, Functions Synonyms.
. 13.12. (View)
Microsoft SQL Server Management Studio
457
6. Transact-SQL
(. 13.12).
8.
. Table
, Column .
9. ,
, AREA Filter
=''.
10. -
Transact-SQL. 13.2.
13.2. AREA Transact-SQL
SELECT dbo.tblStreet.NAME,dbo.tblStreet.SIGN,
dbo.tblBuilding.HOUSE,dbo.tblDistrict.AREA,
dbo.tblBuilding.LAND,dbo.tblBuilding.YEAR,
dbo.tblBuilding.WEAR,dbo.tblWall.WALL,
dbo.tblBuilding.SQUARE
FROM dbo.tblWall INNER JOIN
dbo.tblDistrict INNER JOIN
dbo.tblStreet INNER JOIN
dbo.tblBuilding ON
dbo.tblStreet.STREET = dbo.tblBuilding.STREET ON
dbo.tblDistrict.DISTRICT = dbo.tblBuilding.DISTRICT
ON dbo.tblWall.MATERIAL = dbo.tblBuilding.MATERIAL
WHERE (dbo.tblDistrict.AREA = '')
,
. . .
458
III. "-"
13.13.
Transact-SQL, . ,
, - .
. , .
, . .
, , . "",
, , .
, . MS SQL Server 2005
.
,
, "" . .
.
.
Transact-SQL. :
CREATE { PROC | PROCEDURE } [schema_name.] procedure_name
[ { @parameter [ type_schema_name. ] data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]
[ WITH
{ ENCRYPTION | RECOMPILE | EXECUTE AS Clause}]
[ FOR REPLICATION ]
AS { <sql_statement> [;][ ...n ] | <method_specifier> }
[;]
:
schema_name , ;
459
procedure_name
.
(sp_),
(##);
@parameter , -
. .
2100;
type_schema_name , ;
data_type ;
VARYING OUTPUT
cursor;
default ;
ENCRYPTION ;
RECOMPILE -
;
FOR REPLICATION ;
AS ;
sql_statement . -
, BEGIN...END.
, ,
.
: .
:
1. SQL Server Management Studio.
2. Connect to Server ( ).
, , .
Connect ().
3. Object Explorer Databases,
.
4. Programmability.
5. Stored Procedures (-
). .
New Stored Procedure ... ( ). .
460
III. "-"
6. -
<Ctrl>+<Shift>+<M>. Specify
Values for Template Parameters. , ,
.
7. , 13.3.
8. ! Execute () . -
, ,
.
9. Stored Procedures. -
. Refresh ().
10. Object Explorer
Stored Procedures.
13.3. Citizens
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author:
Citizens
New Query, . . :
EXECUTE Citizens @StreetSQL=2, @HouseSQL=10
461
EXECUTE , @StreetSQL=2 ,
, @HouseSQL=10 .
! Execute .
Results :
...
Messages , 143 :
(143 row(s) affected)
13.14.
Transact-SQL ,
(, ).
.
. Transact-SQL, . , , , ,
. . :
CREATE TRIGGER [ schema_name. ]trigger_name
ON { table | view }
[ WITH [ ENCRYPTION ][ EXECUTE AS Clause ][ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { <sql_statement> [;][ ...n ] | <method_specifier> }
[;]
III. "-"
462
:
schema_name , ;
trigger_name ;
{table | view} , -
;
ENCRYPTION ;
EXECUTE AS ;
FOR , ;
AFTER ( );
INSTEAD OF , -
;
INSERT, UPDATE, DELETE ,
;
WITH APPEND
MS SQL Server;
NOT FOR REPLICATION ,
;
AS ;
sql_statement . ,
BEGIN...END.
, tblAccount. :
tblFlats (
ACCOUNT)
,
(tblAccount);
tblAccount. ,
, , , ,
(. 13.8).
463
13.8. ,
tblAccount ,
UserName
nvarchar(20)
[DateTime]
datetime
HostName
nvarchar(20)
ClientName
nvarchar(128)
:
1. SQL Server Management Studio.
2. Connect to Server ( ).
, , .
Connect ().
3. Object Explorer Data-
bases ( ), .
4. Tables ().
tblAccount
5. Triggers ().
. New Trigger... ( ). .
6. -
<Ctrl>+<Shift>+<M>. Specify
Values for Template Parameters. , ,
.
7. 13.4.
8. ! Execute () . -
, ,
.
9. Triggers. -
. Refresh ().
10. Object Explorer Triggers.
III. "-"
464
13.4. T_tblAccount_UTrig
CREATE TRIGGER T_tblAccount_UTrig
ON dbo.tblAccount FOR UPDATE AS
SET NOCOUNT ON
/* * 'tblFlats' */
IF UPDATE(ACCOUNT)
BEGIN
UPDATE tblFlats
SET tblFlats.ACCOUNT = inserted.ACCOUNT
FROM tblFlats, deleted, inserted
WHERE deleted.ACCOUNT = tblFlats.ACCOUNT
END
/* * */
UPDATE tblAccount SET
UserName=suser_sname(),--
[DateTime]=getdate(),
--
HostName=host_name(),
-- ,
ClientName=app_name()
--
. ,
MS Access 2007
tblAccount. (. 13.13).
. 13.13. T_tblAccount_UTrig
, tblAccount,
: inserted deleted.
465
. .
?
INSERT. inserted -
.
. deleted
.
UPDATE. deleted
, , .
inserted . .
DELETE. deleted ,
.
. inserted
.
14
Microsoft Access
12 Access- "". MS Access 2007
. Real EstateSQL MS SQL Server 2005, , ,
, ( Real Estate.accdb), MS Access Real EstateCS.adp. Microsoft Access 2007 OLE DB (. 14.1).
. 14.1. SQL-
MS Access
14.1.
"-", .
467
Real Estate, .
: " ,
?" !
95% , .
- .
14.2.
,
RTF- (Real Estate.RTF
- ).
. , MS Access 2007
SQL Server?
14.2.1.
. Real Estate : ": tblUser.
".
, . , . tblUser .
:
'tblUser'
156: Incorrect syntax near the keyword 'File'.
. File, , , . .
Transact-SQL File. .
FilePhoto .
. MS SQL
Server 2005.
III. "-"
468
14.2.2.
MS Access SQL Server.
. ACE
SQL Server, ,
.
. CHECK. MS SQL Server 2005
. 14.2. tblFlats,
, SQL Server
:
[SQUAREFLAT]=[DWELL]+[BRANCH]+[BALCONY]
.
,
Flats ( 14.1).
. 14.2. Check
" 1 9"
469
14.1.
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Round(txtSQUAREFLAT.Value, 1) <> _
Round(txtDWELL.Value + txtBRANCH.Value + _
txtBALCONY.Value, 1) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
txtSQUAREFLAT.SetFocus
'
Cancel = 1
End If
End Sub
Form_BeforeUpdate
( Round()).
"" .
:
[SQUAREFLAT]=[DWELL]+[BRANCH]+[BALCONY]
(), . , Transact-SQL.
14.2.
14.2. T_tblFlats_UTrig1,
CREATE TRIGGER T_tblFlats_UTrig1
ON dbo.tblFlats FOR UPDATE, INSERT AS
SET NOCOUNT ON
--
Declare @SqFlat DECIMAL(7,1)
--
--
III. "-"
470
IF UPDATE(SQUAREFLAT) OR UPDATE(DWELL)
OR UPDATE(BRANCH) OR UPDATE(BALCONY)
BEGIN
SELECT @SqFlat =inserted.SQUAREFLAT,
@SqDwell=inserted.DWELL,
@SqBranch=inserted.BRANCH,
@SqBal=inserted.BALCONY
FROM inserted
IF @SqFlat <> (@SqDwell+@SqBranch+@SqBal)
BEGIN
RAISERROR ('
',11,1)
-
ROLLBACK TRANSACTION
END
END
: @SqFlat,
@SqDwell, @SqBranch @SqBal, . :
DECIMAL(7,1). ,
tblFlats, MS SQL : inserted.
tblFlats, : REAL. DECIMAL ( ), = ()
ROUND() .
.
RAISERROR, :
RAISERROR ( { msg_id | msg_str | @local_variable }
{ , severity, state }
[ , argument [ ,...n ] ] )
[ WITH option [ ,...n ] ]
471
:
msg_id . , -
, sys.messages sp_addmessage,
50000, ;
msg_str 2047 ;
@local_variable
char varchar;
severity .
;
argument
. 20.
: tinyint, smallint, int, char, varchar, nchar,
nvarchar, binary, varbinary. ;
option :
LOG
NOWAIT
SETERROR
;
;
,
, 50000,
(New Query) :
sp_addmessage 50001,11, '
'
50001 ; 11 .
RAISERROR :
RAISERROR (50001,11,1)
( ),
sys.messages, SELECT:
472
III. "-"
sp_dropmessage .
. 14.3 , , Microsoft SQL
Server Management Studio. :
"Query completed with errors". ,
, ,
RAISERROR.
473
14.2.3.
,
,
. . . 14.4 , tblBuilding.
, .
. 14.4. ,
tblBuilding ()
III. "-"
474
(tblDistricttblBuilding,
tblWalltblBuilding) MS Access
(DISTRICT, MATERIAL STREET), MS Access. ""
.
, . . .
14.2.4.
MS Access 2007 MS Access 2007 Real Estate . . ,
,
,
( ).
,
( ). MS SQL Server?
tblWall ( ) . ( "") , . .
tblBuilding . Material
! ? .
14.3.
475
14.3. T_tblWall_UTrig
tblBuilding tblWall
CREATE TRIGGER T_tblWall_UTrig ON [tblWall] FOR UPDATE AS
SET NOCOUNT ON
/* * 'tblBuilding' */
IF UPDATE(MATERIAL)
BEGIN
UPDATE tblBuilding
SET tblBuilding.MATERIAL = inserted.MATERIAL
FROM tblBuilding, deleted, inserted
WHERE deleted.MATERIAL = tblBuilding.MATERIAL
END
MS SQL.
. , MS SQL Server .
, .
14.2.5.
, ? , ,
, Real Estate , .
, , .
SQL Server , , ,
, , ,
476
III. "-"
.
.
MS
SQL Server 2005? Object
Explorer (. 14.5). Views :
dbo.qwrArea.
.
. Modify. dbo.qwrArea
. . . 14.5
. .
, , , .
477
, . , ( 14.4).
14.4. dbo.qwrArea Transact-SQL
SELECT dbo.tblStreet.NAME,dbo.tblStreet.SIGN,dbo.tblBuilding.HOUSE,
dbo.tblDistrict.AREA,dbo.tblBuilding.LAND,
dbo.tblBuilding.YEAR,
dbo.tblBuilding.WEAR, dbo.tblWall.WALL,
dbo.tblBuilding.SQUARE
FROM
478
III. "-"
tblDistrict.DISTRICT=tblBuilding.DISTRICT) ON
tblWall.MATERIAL=tblBuilding.MATERIAL
WHERE (((tblDistrict.AREA)=""));
qwrFlats, ,
, Object Explorer
Programmability Functions.
dbo.qwrFlats,
Table-valued Functions (. 14.6).
:
@Forms_Building_Street1 ( );
@Forms_Building_House2 ( ),
479
14.6. dbo.qwrFlats
ALTER FUNCTION [dbo].[qwrFlats]
(@Forms_Building_Street1 varchar (255),
@Forms_Building_House2 varchar (255))
RETURNS TABLE
AS
RETURN ( SELECT dbo.tblFlats.STREET,dbo.tblFlats.HOUSE,
dbo.tblFlats.FLAT,dbo.tblFlats.STOREY,dbo.tblFlats.ROOMS,
dbo.tblFlats.SQUAREFLAT,
dbo.tblFlats.DWELL, dbo.tblFlats.BRANCH,
dbo.tblFlats.BALCONY, dbo.tblFlats.HEIGHT,
dbo.tblAccount.ACCOUNT, dbo.tblAccount.FAMILY,
dbo.tblAccount.NAME, dbo.tblAccount.SECOND
FROM dbo.tblAccount INNER JOIN
dbo.tblFlats ON dbo.tblAccount.ACCOUNT =
dbo.tblFlats.ACCOUNT
WHERE (dbo.tblFlats.STREET = @Forms_Building_Street1) AND
(dbo.tblFlats.HOUSE = @Forms_Building_House2) )
- , varchar(255), " ", - : smallint.
dbo.qwrFlats Table-valued Functions
New Query,
. :
DECLARE @sqlStreet smallint,
@sqlHouse smallint
SET @sqlStreet=2
SET @sqlHouse=10
SELECT * FROM dbo.qwrFlats(@sqlStreet,@sqlHouse)
, EXECUTE, SELECT.
, :
SELECT * FROM dbo.qwrFlats(2,10)
480
III. "-"
! Execute ()
(. 14.7). dbo.qwrFlats
67 , .
. 14.7.
dbo.qwrFlats
481
14.3. MS Access
Real EstateCS.adp, , ( ) Real Estate.accdb (. 14.8).
. 14.9.
482
III. "-"
Building .
MS Access 2007. :
.
, .
, , (. 14.9).
.
.
.
. 14.10. MS Access
MS SQL Server 2005
483
Office.
2. .
.
3. . .
(. 14.10).
4. -
OK.
14.4.
Real EstateCS.adp, . , ,
, . .
.
1. Login ( ) , VBA 91 (. 14.11).
( 14.7):
NameBase = CurrentDb.NAME
14.7. CurrentPath()
Public Function CurrentPath() As String
'
'
Dim NameBase As String
484
III. "-"
. 14.11. ,
CurrentDb.Name
CurrentDb.NAME ( ) MS
Access. . , Real
Estate.accdb ?
.
, Real Estate.accdb, Real Estate.adp. : , CurrentPath() CurrentProject.Path, .
, ( 14.8).
485
14.8.
Public Function CurrentPath() As String
'
' , ADP
CurrentPath = CurrentProject.Path
End Function
2. Login (
) (. 14.12). c 13, :
ChangePassword = [Forms]![Login]![ComboBox].Column(7)
ChangePassword :
Public ChangePassword As Boolean
ComboBox Login
tblUser ( Access02), MS Access . VBA . ?
VBA MS Access , VBA SQL Server 2005 ?
tblUser, . Access02
Bit MS SQL Server. VBA 1 ()
III. "-"
486
True?
, VBA True 1 ( ),
MS Access. , , :
If [Forms]![Login]![ComboBox].Column(7) = 0 Then
ChangePassword = False
Else
ChangePassword = True
End If
3. PageBuilding (
) (. 14.13). , :
SQLText = "SELECT tblBuilding.Street, " & _
"tblStreet.Name AS , " & _
"tblStreet.Sign AS , " & _
"tblBuilding.House AS , tblDistrict.AREA AS , " & _
"tblBuilding.Land AS , tblBuilding.Year AS " & _
"FROM tblStreet, tblBuilding, tblDistrict " & _
"WHERE
487
), .
Street, :
SQLText = "SELECT tblBuilding.STREET, " & _
"tblStreet.NAME AS , " & _
"tblStreet.SIGN AS , " & _
"tblBuilding.HOUSE AS , tblDistrict.AREA AS , " & _
"tblBuilding.LAND AS , tblBuilding.YEAR AS " & _
"FROM tblStreet, tblBuilding, tblDistrict " & _
"WHERE
4. PageBuilding (
) (. 14.14). , CountQuery() Open,
Real Estate ( 14.9).
. 14.14. , , MS Access
,
14.9. CountQuery(),
,
Public Function CountQuery(SQLText) As Integer
'
' SQLText -
III. "-"
488
'
'
Dim Connect As ADODB.Connection
' Connect - , ""
' ADO
Dim rsCount As ADODB.Recordset
' rsCount - ,
'
Set Connect = New ADODB.Connection
' MS Access 2007 (.accdb)
With Connect
.ConnectionString = _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & CurrentPath() & "\Real Estate.accdb"
.Open
End With
...
End Function
489
MS Access.
MS SQL Server
, VBA, , AutoCAD.
, ADO. . :
Set Connect = CurrentProject.Connection
5. PageBuilding (
) ,
ListBox ,
CountQuery() , (. 14.15).
: " , : 30".
, .
RowSourceType Real Estate.accdb ( ):
ListBox.RowSourceType = "Table/Query"
Real EstateCS.adp (, ):
ListBox.RowSourceType = "Table/View/StoredProc"
. 14.15. , , MS Access
,
III. "-"
490
6. , PageBuilding ( ),
, , .
T_tblBuilding_DTrig
tblBuilding CommandDel_Click()
PageBuilding. , :
' : SqlUpdateErr
On Error GoTo SqlUpdateErr
...
SqlUpdateErr:
If Err.NUMBER = 2501 Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
End If
accdb-,
"Run-time error"
(. . 8.6), ""
2501. ,
CommandDel_Click() . , ! :
SqlUpdateErr:
Select Case Err.Number
Case 2501
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
Case 44445
'
' T_tblBuilding_DTrig
MsgBox " . !", _
vbOKOnly + vbExclamation, ""
Case Else
'
MsgBox Err.Description
End Select
491
7. PassWord ( ) (. 14.16). , :
SELECT tblUser.LastName, tblUser.FirstName,
tblUser.SecondName, tblUser.Post,
tblUser.PassWord, tblUser.Date_up,
User.Time_up
FROM [tblUser] WHERE
(((tblUser.LastName)=GetValueSQL()));
PassWord.
,
GetValueSQL(), 8.9.
. 14.16. , , SELECT
GetValueSQL()
, MS SQL- . MS
SQL Server ( FAMILY). .
,
, 14.10.
III. "-"
492
14.10. PassWord
Private Sub Form_Load()
Me.RecordSource = "SELECT tblUser.LastName, tblUser.FirstName, " & _
"tblUser.SecondName, tblUser.Post, tblUser.PassWord, " & _
"tblUser.Date_up, tblUser.Time_up " & _
"FROM tblUser " & _
"WHERE tblUser.LastName = '" & FAMILY & "'"
End Sub
8. PassWord ( ) (. 14.17). , :
TextSQL = "UPDATE tblUser " & _
"SET tblUser.PassWord = '" & NewPasswordOne & "'," & _
"tblUser.Date_up=Date(),tblUser.Time_up=Time() " & _
"WHERE tblUser.LastName = '" & FAMILY & "' "
. 14.17. , , UPDATE
Date() MS Access, GETDATE() MS SQL Server
VBA , MS SQL-. .
tblUser PassWord , , .
493
MS Access .
MS SQL Server,
, . "" -
, , . (. 13.4).
tblUser.
MS Access MS SQL Server.
. MS Access :
Date() Time(), MS SQL Server
GetDate(). MS Access Now(),
. ! / "" , Convert():
TextSQL = "UPDATE tblUser " & _
"SET tblUser.PassWord = '" & NewPasswordOne & "'," & _
"tblUser.Date_up=GETDATE()," & _
"tblUser.Time_up=CONVERT(CHAR(8),GETDATE(),14) " & _
"WHERE tblUser.LastName = '" & FAMILY & "' "
. ,
, accdb-.
. CurrentDb.Name, -
CurrentProject.Path CurrentProject.Connection.
RowSourceType = "Table/Query" .
MS Access .
. MS SQL Server, -
, .
.
, . VBA .
.
14.5.
MS Access 2007 MS SQL Server 2005. .
494
III. "-"
= Forms_Building_Street, ?
= Forms_Building_House
. 14.18. Flats
495
Flats.
. , :
@Forms_Building_Street=[Forms]![Building]![Street],
@Forms_Building_House=[Forms]![Building]![House]
qwrFlats
Building. Flats .
14.5.1.
Flats . ,
Building,
. . ? ! tblFlats
tblAccount , ( tblOwners) . , , , ,
, , ,
, .
14.5.2.
Flats adp- ?
qwrFlats (. 14.4), Access SQL-. , , .
Flats qwrFlats. , tblAccount, FROM
( 14.11).
III. "-"
496
14.11. qwrFlats
ALTER FUNCTION [dbo].[qwrFlats]
(@Forms_Building_Street smallint,
@Forms_Building_House smallint)
RETURNS TABLE
AS
RETURN (SELECT *
FROM dbo.tblFlats
WHERE (dbo.tblFlats.STREET = @Forms_Building_Street)
AND (dbo.tblFlats.HOUSE = @Forms_Building_House))
tblFlats
qwrFlats ( Flats) ,
.
, Flats, tblAccount, , ,
tblAccount. , - - .
, Flats. , Owners .
,
tblAccount.
.
.
:
1. Flats .
2. ,
. "" . .
3.
.
, . .
497
4. , , -
,
. . .
5. ,
. ""
. .
tblAccount.
6.
.
ACCOUNT.
7. . -
. . 14.1.
14.1. SlaveAccount
9. , , -
ACCOUNT. <Delete>.
10. Flats
SlaveAccount. : ,
, , (. 14.19).
11. .
498
III. "-"
. , , . ""
-
<Ctrl>, - <Shift>.
. 14.19. Flats
Flats .
(. 14.20). tblFlats ( 14.12).
. ,
,
499
. .
.
. 14.20.
14.12. T_tblFlats_ITrig,
tblFlats.
ALTER TRIGGER T_tblFlats_ITrig
ON dbo.tblFlats FOR INSERT AS
SET NOCOUNT ON
/* * 'tblAccount' */
IF (SELECT COUNT(*) FROM inserted) !=
(SELECT COUNT(*) FROM tblAccount, inserted
WHERE (tblAccount.ACCOUNT = inserted.ACCOUNT))
BEGIN
RAISERROR 44447 '
.
"tblAccount".'
ROLLBACK TRANSACTION
END
, :
tblAccount
tblFlats;
tblAccount -
tbtFlats.
14.13 14.14 ,
tbtFlats .
III. "-"
500
14.13. T_tblFlats_DTrig,
tblFlats
CREATE TRIGGER [T_tblFlats_DTrig] ON [dbo].[tblFlats] FOR DELETE AS
SET NOCOUNT ON
/* * 'tblAccount' */
DELETE tblAccount
FROM deleted, tblAccount
WHERE deleted.ACCOUNT = tblAccount.ACCOUNT
14.14. T_tblFlats_UTrig,
tblFlats
CREATE TRIGGER [T_tblFlats_UTrig] ON [dbo].[tblFlats] FOR UPDATE AS
SET NOCOUNT ON
/* * 'tblAccount' */
IF UPDATE(ACCOUNT)
BEGIN
UPDATE tblAccount
SET tblAccount.ACCOUNT = inserted.ACCOUNT
FROM tblAccount, deleted, inserted
WHERE deleted.ACCOUNT = tblAccount.ACCOUNT
END
14.5.3.
Flats, I ,
, . , MS Access, .
.
, .
.
-
. "" ,
, .
501
, , .
.
Flats PageFlats, "", . MS Access 2007
accdb- adp-, , . :
1. MS Access 2007 ,
.
2. Flats.
.
3. . .
4. .
, . MS Access
.
5. . .
6. , -
. 14.21. Flats
,
accdb adp,
.
502
III. "-"
PageFlats
:
1. -
<Ctrl>+<X>.
2. .
.
3. -
.
4. . ,
, .
. "" .
. 14.22. PageFlats
503
5. . .
Page1 Page2.
6. .
(. 14.22).
7. .
8. PageFrame.
PageFlats PageBuilding,
,
( 14.15).
14.15. PageBuilding
Private Sub CommandFlats_Click()
'
On Error GoTo Err_CommandFlats_Click
Dim stDocName As String
Dim stLinkCriteria As String
' ,
SelectAddressStreet = Me!ComboStreet.Value
'
SelectAddressHouse = Me!txtHOUSE.Value
stDocName = "PageFlats"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_CommandFlats_Click:
Exit Sub
Err_CommandFlats_Click:
MsgBox Err.Description
Resume Exit_CommandFlats_Click
End Sub
: SelectAddressStreet
SelectAddressHouse ( ), ModuleMain.
"" MS Access.
PageFlats
,
( 14.16).
504
III. "-"
14.16. PageFlats
Private Sub Form_Open(Cancel As Integer)
'
If Not CurrentProject.AllForms("PageBuilding").IsLoaded Then
MsgBox " ." _
& " PageBuilding!", _
vbOKOnly + vbExclamation, ""
Cancel = 1
End If
End Sub
,
PageFlats. , ,
, (. 14.22). MS SQL Server qwrFlats.
. ,
PageFlats , 14.17.
SelectAddressStreet
SelectAddressHouse, 14.15.
. 14.2 PageFlats.
14.17. PageFlats
Private Sub Form_Load()
ListBox.RowSource = "SELECT FLAT,STOREY,ROOMS,SQUAREFLAT, " & _
"DWELL,BRANCH,BALCONY,HEIGHT,COST,ACCOUNT " & _
"FROM tblFlats WHERE STREET = " & _
SelectAddressStreet & " AND HOUSE = " & SelectAddressHouse & _
" ORDER BY FLAT"
' " "
ListBox.Selected(0) = True
CommandMain.Enabled = AccountWork
End Sub
ListBox.RowSource
tblFlats, .
, ( 14.18).
505
14.2. PageFlats
txtStreet
=[]![PageBuilding]!
[ComboStreet].[Column](1)
txtSign
=[]![PageBuilding]!
[ComboStreet].[Column](2)
txtHouse
=[]![PageBuilding]!
[txtHouse].[Value]
ListBox
VBA (. 14.14)
txtCountFlat
=[ListBox].[ListCount]
commandAdd
VBA
commandExit
VBA
14.18. ListBox
Private Sub ListBox_DblClick(Cancel As Integer)
' " "
Dim TxtSQL As String '
IndFlats = 2
'
' : SelectAddressStreet
' : SelectAddressHouse
'
SelectAddressFlat = [ListBox].Column(0)
'
TxtSQL = "SELECT * FROM tblFlats WHERE STREET = " & _
SelectAddressStreet & " AND HOUSE = " & SelectAddressHouse & _
" AND FLAT = " & SelectAddressFlat
III. "-"
506
'
Me.RecordSource = TxtSQL
'
Page2.Visible = True
Page2.SetFocus
'
txtFLAT.Enabled = False
txtFLAT.Locked = True
'
txtACCOUNT.Enabled = False
txtACCOUNT.Locked = True
'
Owners.Enabled = True
End Sub
. 14.23. ( PageFlats)
507
. 14.23 PageFlats.
, .
.
14.19.
14.19.
Private Sub CommandAdd_Click()
'
Dim TextSQL As String '
IndFlats = 1
'
'
Page2.Visible = True
'
Page2.Caption = " "
'
CommandDoc.Enabled = False
'
CommandTreaty.Enabled = False
'
CommandAccount.Enabled = False
'
CommandDel.Enabled = False
'
CommandMain.Enabled = False
'
txtFLAT.Enabled = True
txtFLAT.Locked = False
'
txtACCOUNT.Enabled = True
txtACCOUNT.Locked = False
'
Owners.Enabled = False
'
DoCmd.GoToRecord , , acNewRec
'
III. "-"
508
txtFLAT.SetFocus
'
Page1.Visible = False
End Sub
Owners
.
,
:
txtACCOUNT.Enabled = True
txtACCOUNT.Locked = False
. 14.24. PageFlats
509
,
PageFlats, . 14.24.
, ,
/ SlaveAccount
. .
. ( )
,
. PageFlats (. 14.17):
CommandMain.Enabled = AccountWork
AccountWork False/True .
PageFlats
IndFlats.
(1 , 2 ).
, ( 14.20).
14.20. CommandSave
Private Sub CommandSave_Click()
'
On Error GoTo SqlUpdateErr
If IsNull(txtFLAT.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
txtFLAT.SetFocus
'
Exit Sub
End If
III. "-"
510
If IsNull(txtSQUAREFLAT.Value) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
txtSQUAREFLAT.SetFocus
Exit Sub
End If
If IsNull(txtDWELL.Value) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
txtDWELL.SetFocus
Exit Sub
End If
If IsNull(txtBRANCH.Value) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
txtBRANCH.SetFocus
Exit Sub
End If
If IsNull(txtBALCONY.Value) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
txtBALCONY.SetFocus
Exit Sub
End If
If IsNull(txtACCOUNT.Value) Then
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
'
txtACCOUNT.SetFocus
'
Exit Sub
End If
If IndFlats = 1 Then
'
' ?
If DCount("*", "tblFlats", _
"STREET = " & SelectAddressStreet & _
511
III. "-"
512
'
If MsgBox(" " & _
" ? ", _
vbInformation + vbYesNo, "") = vbYes Then
'
DoCmd.RunCommand acCmdSaveRecord
End If
End If
Page1.SetFocus
'
ListBox.Requery
End If
Exit Sub
SqlUpdateErr:
Select Case Err.NUMBER
Case 2627
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
txtACCOUNT.SetFocus
Exit Sub
Case 50001
'
MsgBox "
.", _
vbOKOnly + vbExclamation, ""
Exit Sub
Case Else
'
MsgBox Err.Description
End Select
End Sub
. .
. ,
. , -
513
. DCount():
If DCount("*", "tblFlats", _
"STREET = " & SelectAddressStreet & _
"AND HOUSE = " & SelectAddressHouse & _
"AND FLAT = " & txtFLAT.Value) > 0 Then
MsgBox " !", _
vbOKOnly + vbExclamation, ""
'
txtFLAT.SetFocus
'
Exit Sub
End If
( ) FK_tblFlats_tvlAccount
tblFlats:
Select Case Err.NUMBER
Case 2627
'
MsgBox " .", _
vbOKOnly + vbExclamation, ""
txtACCOUNT.SetFocus
Exit Sub
. . . ()
. , PK_tblFlats tblFlats,
.
:
[SQUAREFLAT]=[DWELL]+[BRANCH]+[BALCONY]
tblFlats,
14.2. ,
Null. :
1. SQL Server Management Studio.
514
III. "-"
2. Connect to Server. , -
, . Connect.
3. Object Explorer Databases,
.
4. Tables. tblFlats.
. .
5. Modify. (. 14.25).
515
,
-, . . . :
If IsNull(txtSQUAREFLAT.Value) Then
MsgBox " .", _
vbOKOnly + vbExclamation, ""
txtSQUAREFLAT.SetFocus
Exit Sub
End If
CommandDel,
14.21.
14.21. CommandDel
Private Sub CommandDel_Click()
'
Dim TextSQL As String '
' : SqlUpdateErr
On Error GoTo SqlUpdateErr
' : SelectAddressStreet
' : SelectAddressHouse
'
SelectAddressFlat = [ListBox].Column(0)
TextSQL = "DELETE from tblFlats WHERE STREET = " & _
SelectAddressStreet & _
" AND HOUSE = " & SelectAddressHouse & _
" AND FLAT = " & SelectAddressFlat
If MsgBox(" ? ", _
vbInformation + vbYesNo, "") = vbYes Then
'
DoCmd.RunSQL TextSQL
Page1.SetFocus
ListBox.Requery
Exit Sub
End If
Exit Sub
III. "-"
516
SqlUpdateErr:
. 14.26. PageFlats
517
. 14.26 PageFlats . , . . . ,
,
Owners ( 14.22). ,
, ,
, .
14.22. Owners
Private Sub Form_BeforeUpdate(Cancel As Integer)
If MsgBox(" ? ", _
vbInformation + vbYesNo, "") = vbNo Then
DoCmd.RunCommand acCmdUndo
End If
End Sub
14.6.
MS Access 2007, , , , . .
. MS Access, MS SQL Server
2005.
14.6.1.
3 , MS
Access 2007.
. , . , Name ( , ,
). 14.23 MS Access. 14.24 Transact-SQL,
MS SQL- .
III. "-"
518
14.24. (
-, )
:
qwrDocument
. SQL:
CREATE FUNCTION qwrDocument
(@Forms_Building_Street1 varchar (255),
@Forms_Building_House2 varchar (255),
@Forms___Flats___Flat3 varchar (255))
RETURNS TABLE
AS RETURN (SELECT TOP 100 PERCENT
tblStreet.NAME AS NAME2,tblStreet.SIGN,
qwrFlats.HOUSE, qwrFlats.FLAT,qwrFlats.STOREY,
qwrFlats.ROOMS,qwrFlats.SQUAREFLAT,
qwrFlats.DWELL,qwrFlats.BRANCH, qwrFlats.BALCONY,
qwrFlats.HEIGHT,qwrFlats.ACCOUNT AS "_qwrFlats.ACCOUNT_",
qwrFlats.FAMILY,qwrFlats.NAME,qwrFlats.SECOND,
tblOwners.NUMBER, tblOwners.FAMILY AS FAMILY1,
tblOwners.NAME AS NAME1,tblOwners.SECOND AS SECOND1,
tblOwners.BORN,tblOwners.STATUS,
519
--
--
,
MS Access.
, -
FROM,
SQL-:
Msg 216, Level 16, State 1, Procedure qwrDocument, Line 2
Parameters were not supplied for the function 'qwrFlats'.
qwrFlats,
qwrDocument, , ,
qwrFlats, .
, ,
( , ), (, , ). :
1. SQL Server Management Studio.
2. Connect to Server. ,
, . Connect.
3. Object Explorer Databases,
.
4. Programmability.
III. "-"
520
5. Stored Procedures. -
--
@FlatSql smallint)
--
AS SELECT dbo.tblFlats.STREET,
dbo.tblStreet.NAME AS NameST,dbo.tblStreet.SIGN,
dbo.tblFlats.HOUSE,dbo.tblFlats.FLAT,
dbo.tblFlats.STOREY, dbo.tblFlats.ROOMS,
dbo.tblFlats.SQUAREFLAT, dbo.tblFlats.DWELL,
dbo.tblFlats.BRANCH,dbo.tblFlats.BALCONY,
dbo.tblFlats.HEIGHT, dbo.tblFlats.ACCOUNT,
dbo.tblAccount.FAMILY, dbo.tblAccount.NAME AS Expr1,
dbo.tblAccount.SECOND, dbo.tblOwners.NUMBER,
dbo.tblOwners.FAMILY AS Expr2,
dbo.tblOwners.NAME AS Expr3,
dbo.tblOwners.SECOND AS Expr4, dbo.tblOwners.BORN,
dbo.tblOwners.STATUS,dbo.tblStreet.FIRST
FROM
521
: EXECUTE , @StreetSQL=2 ,
, @HouseSQL=10 ,
@FlatSql=67 , .
! Execute
(. 14.27). .
. 14.27. dbo.Document
14.6.2.
SELECT, , , -
III. "-"
522
.
WHERE HAVING
.
2 Access SQL flat, .
"tbl" Flats, Street Owners
14.26.
14.26. Access SQL
SELECT tblStreet.NAME, tblStreet.SIGN, tblFlats.HOUSE,
tblFlats.FLAT, tblFlats.ROOMS
FROM tblStreet INNER JOIN tblFlats ON
tblStreet.STREET=tblFlats.STREET
WHERE NOT EXISTS
(SELECT * FROM tblOwners
WHERE STREET=tblFlats.STREET AND
HOUSE=tblFlats.HOUSE AND
FLAT=tblFlats.FLAT)
ORDER BY NAME, HOUSE, FLAT;
523
14.7.
Document Flats,
Real EstateCS,
.
524
III. "-"
. 14.28.
. 14.29. Document
. MS Access (
) , ,
. . -
525
(. 14.29) :
@StreetSql SmallInt=[Forms]![Building]![Street],
@HouseSql SmallInt=[Forms]![Building]![House],
@FlatSql SmallInt=[Forms]![Flats]![Flat]
? .
.
ADDRESS, :
=IIf([First]=;Trim([tblStreet.Name]+' '+[Sign]+
', '+(Trim([House]))+', .'+Trim(Str([Flat])));Trim([Sign]+
' '+[tblStreet.Name])+', '+(Trim([House]))+', .'+Trim(Str([Flat])))
. 14.30. ,
tblStreet.Name NameST,
dbo.Document (. 14.25):
=IIf([First]=;Trim([NameST]+' '+[Sign]+', '+(Trim([House]))+
', .'+Trim(Str([Flat])));Trim([Sign]+' '+[NameST])+
', '+(Trim([House]))+', .'+Trim(Str([Flat])))
526
III. "-"
, (. 14.29).
tblOwners.FAMILY, tblOwners.NAME tblOwners.SECOND Expr2, Expr3
Expr4 .
(. 14.30).
Flats, Account:
=[]![Flats]![FAMILY]
=[]![Flats]![NAME]
=[]![Flats]![SECOND]
14.8.
, , .
, . 14.29 , ,
. .
14.29.
Public Function LineNumeral(Chislo) As String
' Chislo -
If Chislo > 999999999999# Then
LineNumeral = " "
Exit Function
End If
Dim I, J, K, LK, NK, PART, PRS, FF, Z '
Dim RES As String
'
'
'
'
'
'
'
'
527
III. "-"
528
'
K = 3
Case 2 To 4
K = 2
' , ,
529
'
K = 3
Case 2 To 4
' , ,
K = 2
Case Else
' , , ...,
K = 1
End Select
Case Else
K = 1
End Select
'
' : , . .
RSset.Move 47 + K, adBookmarkFirst
FF = RSset(0)
RES = RES + LK + " " + RTrim(FF) + "."
RSset.Close
Set RSset = Nothing
LineNumeral = RES
End Function
530
III. "-"
. 14.31.
.
Recordset ( RSset):
Dim RSset As ADODB.Recordset
'
tblNumeral,
:
RSset.Open "tblNumeral", CurrentProject.Connection
, :
RSset.Move <_>, <>
, , (. 14.3).
531
14.3. Move
adBookmarkCurrent
adBookmarkFirst
adBookmarkLast
LineNumeral
, "" :
RSset.Move I, adBookmarkFirst
, , .
cNumeral, :
RSset.Fields ("cNumeral").Value
LineNumeral
:
<_> = RSset(0) ' cNumeral
<_> = RSset(1) ' dNumeral
, , (cNumeral) , (dNumeral)
. .
III. "-"
532
22,96
).
:
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb4362-4b0d-8edd-aab15c5e04f5&DisplayLang=en#AffinityDownloads;
SQL Server 2005 Management Studio Express
( SQLServer2005_SSMSEE.MSI 39,4 ):
http://www.microsoft.com/downloads/thankyou.aspx?familyId=6053c6f882c8-479c-b25b-9aca13141c9e&displayLang=ru;
MS SQL Server 2005 (-
):
http://www.microsoft.com/downloads/details.aspx?FamilyId=BE6A2C5D00DF-4220-B133-29C1E0B6585F&displaylang=ru.
MS SQL Server 2005 Express Edition , (. 14.32). . 14.4
MS SQL Server 2005 Express Edition.
533
. 14.32.
MS SQL Server 2005 Express Edition
Visual Studio 2005 MS Access 2007
CLR SQL
(
)
SQL Server
SQL Server
534
III. "-"
14.10.1.
MS Access . MS Access , SQL Server 2005 Management Studio.
MS Access 2007 . ,
. SQL Server 2005 Management Studio
, MS
Access - . :
1. Microsoft Access 2007.
2. . .
3. .
, , .
4. : , ,
.
5. . 1 -
.
6. , ,
.
7. 1. .
535
8. OK. -
. 14.33.
. 14.33.
MS Office Access 2007
14.10.2. , ,
MS SQL Server 2005 MS Access
, .
, . . MS SQL
Server .
III. "-"
536
.
;
;
;
;
;
;
.
537
. 14.34 ,
tblDistrict tblBuilding. ,
MS Access MS SQL Server (. . 12.13). ""
(. 12.112.3),
MS Access 2007. tblBuilding
. . . 14.34 .
14.10.3.
Table-valued Functions
SQL Server 2005 Management Studio , .
III. "-"
538
qwrFlats,
.
SQL. SQL. , .
:
1. Microsoft Access 2007.
2. . .
3. . -
.
4.
OK.
5. 1 .
6. 1.
.
OK.
14.10.4.
MS Access 2007
. 14.6 dbo.Document , Transact-SQL. MS Access:
1. Microsoft Access 2007.
2. . .
539
3. . -
.
4.
OK.
5. 1
. 14.36. Document
540
III. "-"
Document
tblStreet, tblFlats, tblAccount tblOwners.
(. 14.36). , ,
.
STREET, HOUSE FLAT :
=@StreetSql
=@HouseSql
=@FlatSql
SQL,
Microsoft Access 2007. .
, (Expr1, Expr2, Expr3 . .). ,
Microsoft Access.
.
SQL, .
(. 14.37).
. 14.37.
14.10.5.
, ,
541
. ,
(, . .), , .
. MS Access
adp-.
1. Office.
2. . -
.
3. SQL- .
.
4. , SQL Server 2005,
. .
5. , dat.
, SQL- .
14.11.
MS Access .
,
, MS Access
"Real EstateCS ". Office,
(. . 14.10).
.
Start , 14.30.
14.30. Start
Private Sub Form_Load()
If Not CurrentProject.IsConnected Then
DoCmd.RunCommand acCmdConnection
End If
End Sub
542
III. "-"
, VBA
MS Access 2007 .
Real EstateCS.adp VBA Real
Estate.ade. ADE. . !
MS SQL-,
MS Access.
, .
/runtime.
. : Y:\Real EstateCS.ade /runtime.
MS Access " ". .
. !
, , .
. 50 . , Real Estate
, .
1
-
"" (. 1.1). :
" ", "" . , , .
. , , .
, , .
1.1. 1
Seller
60
InnSeller
10
546
1.1 ()
Country
15
Chief
60
Address
60
Phone
10
Manager
60
PhonePlus
10
Bank
60
10
Account
20
11
GoodsID
10
12
Goods
30
13
Picture
OLE
14
Category
15
(, )
15
DateStart
16
Period
17
Manufacturer
60
18
Unit
10
19
CostUnit
15
20
Count
21
Client
60
22
InnClient
10
23
Director
60
24
PhoneDir
10
25
Address
Client
60
1.
547
1.1 ()
26
BankClient
60
27
Account
Client
20
28
Volume
29
CostUnitVol
15
30
DateVolume
31
Comment
2
(. 1.2). : (), (), () .
, ,
. .
( ).
, , .
( , , 13 14 ).
() .
1.2. 2
RegNumber
10
548
1.2 ()
RegName
60
Kind
20
(-80,
-80 . .)
Type
20
(,
)
TypeYear
TypeRepair
39
Picture
OLE
Money
15
Bonus
(/ )
10
BonusPercent
()
11
DateStart
12
DateStop
13
Reason
40
14
External
15
BankExternal
60
16
InnExternal
10
17
AddressExternal
80
18
FIOchief
40
19
Base
15
()
20
FIOworker
40
21
BaseWorker
15
()
1.
549
1.2 ()
22
YearWorker
23
SpecialWorker
30
24
BonusWorker
15
25
Comment
Memo
( )
26
Number BankKart
60
3
"" (. 1.3). .
. . .
. . .
. , .
1.3. 3
RegNumber
10
Name
60
Skipper
60
550
1.3 ()
Type
15
(, )
Capacity
10
Year
Picture
OLE
Dockyard
15
CustomValue
10
10
DepartureDate
11
ArriveDate
12
Origin
20
13
Destination
20
14
CustomClearan
ce
15
Number
16
Shipment
30
17
DeclareValue
18
Unit
10
19
InsureValue
20
Sender
30
21
INNsender
10
22
BankSender
60
23
AddressSender
80
24
Consignee
30
1.
551
1.3 ()
25
INNconsignee
10
26
BankConsignee
60
27
AddressConsig
n
80
28
Comment
Memo
4
(. 1.4).
(, , ).
,
. . ,
.
.
1.4. 4
Kadastr
20
Address
60
District
15
Land
10
Year
Material
15
552
1.4 ()
Base
15
Comment
Memo
Wear
10
Flow
11
Line
12
Square
10
13
Picture
OLE
14
Flats
15
Elevator
16
Flat
17
Storey
18
Rooms
19
SquareFlat
20
Dwell
21
Branch
22
Balcony
23
Height
24
Record
25
Document
60
26
DateDoc
27
FioHost
60
28
Passport
Memo
1.
553
1.4 ()
29
Part
, %
30
Born
5
- "" (. 1.5).
.
"" 80 .
30 .
, .
"" . . - , .
1.5. 5
EmployeeID
EmployeeName
60
Address
60
District
15
Experience
Year
Language
15
554
1.5 ()
Base
15
()
Comment
Memo
10
Salary
15
11
Bonus
15
12
GrossSalary
15
13
Exempt
15
14
Picture
OLE
15
ProjectID
16
Project Name
40
17
ProjectStart
18
ProjectStop
19
Chief
60
20
Customer
60
21
Cost
22
Phone
10
23
Bank
60
24
Account
20
25
INN
10
26
Address Cust
60
27
FioWorker
60
28
Phone Worker
10
29
BonusAll
(%)
1.
555
1.5 ()
30
Employee
Start
31
Employee
Stop
6
"" (. 1.6).
. ,
, .
,
, . .
,
.
.
.
1.6. 6
Provider
40
INN
10
Address
60
Bank
60
Account
20
Sign
556
1.6 ()
Film
20
Script
60
Comment
Memo
10
Producer
60
11
Company
40
12
Year
13
Expense
15
14
Cost
15
15
Translate
16
Cinema
20
17
INNcinema
10
18
Address
Cinema
60
19
Chief
60
20
Owner
60
21
BankCinema
60
22
Phone
10
23
District
15
24
Account
Cinema
20
25
Capacity
26
DateStart
27
DateStop
28
PhoneWorker
10
1.
557
1.6 ()
29
Worker
60
30
Summa
15
31
Tax
15
7
(. 1.7).
. 450 .
( ). TO-2 . -3
150 . .
, . : , . . . : ,
, , , .
(-1, -2, -3 . .). . , , . .
1.7. 7
RegNumber
10
RegName
60
RegChief
20
558
1.7 ()
Type
20
(,
. .)
TypeYear
TypeRepair
39
Picture
OLE
Money
15
Bonus
(/ )
10
BonusPercent
()
11
DateStart
12
DateStop
13
Reason
40
14
External
15
BankExternal
60
16
InnExternal
10
17
Address External
80
18
FIOchief
40
19
Base
15
()
20
FIOworker
40
21
BaseWorker
15
()
22
YearWorker
1.
559
1.7 ()
23
SpecialWorker
30
24
BonusWorker
15
25
Comment
Memo
( )
26
Number BankKart
60
8
LADA- (. 1.8). .
. ,
- . , , . , , .
, .
, .
.
1.8. 8
IDfilial
Filial
20
InnFilial
10
Chief
60
560
1.8 ()
Capacity
Address
60
Phone
10
Brand
15
Model
15
10
BodyID
20
11
EngineID
20
12
BodyModel
20
13
Picture
OLE
14
Volume
15
Power
, ..
16
Helm
(/)
17
Drive
18
DateStart
19
Cost
15
20
New
21
Year
22
Distance
23
Type
15
24
Client
60
25
Sign
(./. )
26
Bank
60
1.
561
1.8 ()
27
Account
20
28
Comment
Memo
29
Customer
60
30
Price
15
31
StartDate
9
" " (. 1.9).
, . , ,
,
. , . , , ,
.
1.9. 9
IDfilial
Filial
20
InnFilial
10
Chief
60
562
1.9 ()
Capacity
Address
60
Phone
10
GoodsID
15
Goods
40
10
Categoty
20
(, )
11
Country
20
12
Company
40
13
Picture
OLE
14
INNcompany
10
15
AdddressComp
60
16
DateStart
17
Period
18
DateBuy
19
Cost
15
20
Fax
12
21
PhoneCompany
12
22
20
23
Web
20
Web-
24
CostRepair
15
25
CustomerID
26
Customer
60
1.
563
1.9 ()
27
AddressCust
60
28
Comment
Memo
(
)
29
Sign
(./.
)
30
Guarantee
31
StartDate
32
StopDate
10
(. 1.10). . . , , .
. "".
.
: ,
. ,
, .
1.10. 10
Number
15
Battalion
30
564
1.10 ()
Commander
50
Rank
20
ViceCommander
50
Rank2
20
Photo
OLE
Commander2
50
Rank3
20
10
Passport
20
11
CompanyID
12
CompanyName
20
13
Photo2
OLE
14
PlatoonID
15
Commander3
50
16
Rank4
20
17
Photo3
OLE
18
PlatoonName
20
19
DepartmentID
20
Soldier
50
21
Post
20
(/)
22
Rank5
20
23
Start
1.
565
1.10 ()
24
Stop
25
Kind
( )
26
Address
60
27
Phone
15
28
Comment
Memo
29
Birth
11
" " (. 1.11). .
: , , , , . .
,
.
. : , ,
, , , . .
(, , ) .
1.11. 11
Number
Block
20
Address
60
District
15
566
1.11 ()
Inventory
Land
Actual
BuildUp
Yard
10
Green
11
Garden
12
Bad
13
Picture
OLE
14
Light
15
WaterPipe
16
Heating
17
Comment
Memo
18
Letter
()
19
Contents
20
20
Type
(./)
21
MySelf
22
Year
23
SquareAll
24
Inhabited
25
Wear
26
Wall
15
1.
567
1.11 ()
27
Cost
15
28
Storeys
29
NumberSign
30
Prescribe
20
31
SquareRoom
32
HighRoom
33
Storey
12
(. 1.12). : , . ,
, ( , ) (, ).
: , .
.
. , .
1.12. 12
PersonID
568
1.12 ()
Name
40
Department
40
Institute
40
()
Birth
Place
20
Address
60
Phone
15
Education
40
10
Year
11
Speciality
30
12
Picture
OLE
13
DegreeYes
(/)
14
Degree
15
Rank
16
Post
20
17
Comment
Memo
18
Passport
20
19
PassportDate
20
Region
40
21
WorkBegin
22
WorkEnd
1.
569
1.12 ()
23
Work
20
24
WorkPlace
20
25
WorkAddress
60
26
WorkPhone
15
27
Reason
30
28
Penalty
Memo
29
Rewards
Memo
13
(. 1.13). , , .
. . . ,
,
.
, .
, .
1.13. 13
JoblessID
LastName
20
570
1.13 ()
FirstName
20
Patronymic
20
Age
Passport
20
PassportDate
Region
40
Address
60
10
Phone
15
11
Picture
OLE
12
StudyPlace
60
13
StudyAddress
60
14
StudyType
15
(
. .)
15
Registrar
15
16
RegDate
17
Payment
15
18
Experience
(/)
19
Comment
Memo
20
ArchivesDate
21
Archivist
15
22
JobID
23
JobType
20
(,
. .)
1.
571
1.13 ()
24
JobName
20
25
JobGiver
20
26
Place
60
27
Mobile
15
28
District
15
29
Money
15
30
More
Memo
14
" " (. 1.14). .
1.14. 14
Kadastr
20
Address
60
District
15
Land
10
Year
Material
15
572
1.14 ()
Base
15
Comment
Memo
Wear
10
Flow
11
Line
12
Square
10
13
Picture
OLE
14
Flats
15
Elevator
16
Flat
17
Storey
18
Rooms
19
Level
20
SquareFlat
21
Dwell
22
Branch
23
Balcony
23
Height
25
Record
26
SquareRoom
27
Size
40
28
Name
30
(, . .)
1.
573
1.14 ()
29
Decoration
60
(, ...)
30
HeightRoom
31
Socket
32
Sections
15
(. 1.15).
.
, (, , . .) ,
, . . . . - ,
, , , .
1.15. 15
GoodsID
10
Name
40
International
40
Begin
574
1.15 ()
Yes
(/)
RF
20
Producer
60
Instructions
Memo
10
Batch
20
11
Seller
20
12
Address
60
13
Phone
15
14
INN
10
15
Sign
16
Date
17
Price
10
18
GoodsInvoice
19
ClientID
20
Company
25
21
Address
60
22
Phone
15
23
CountNumber
End
1.
575
1.15 ()
Sum
15
26
Cash
(/)
27
Worker
60
28
Invoice
29
INNClient
10
30
Seller
15
24
DateStart
25
16
" " (. 1.16).
, 16 000 . (, ), , , . .
(, , ). 265 000 . , . ,
.
1.16. 16
Kadastr
20
Address
60
576
1.16 ()
District
15
Land
10
Year
Material
15
Base
15
Comment
Memo
Wear
10
Flow
11
Line
12
Square
10
13
Picture
OLE
14
Hall
15
Elevator
16
HallNum
17
Storey
18
Rooms
19
Level
20
SquareHall
21
Branch
22
Balcony
23
Height
24
Record
1.
577
1.16 ()
25
SquarePart
26
Size
40
27
NamePart
30
(,
. .)
28
Decoration
60
(, . .)
29
HeightPart
30
Socket
31
Sections
17
(. 1.17).
. ,
. , , . 2002 . (13% ), ,
, . ., , .
1.17. 17
INN
13
578
1.17 ()
LastName
20
FirstName
20
Patronymic
20
Document
80
Serial
10
Number
20
Date
Region
30
10
Born
11
Picture
OLE
12
DateTax
13
NumberTax
12
14
Address
80
15
District
20
16
DistrictTax
20
17
TaxNumber
18
Enterprise
40
19
InnEnterprise
10
20
AddressWorks
30
21
Chief
60
22
Phone
10
23
SumAll
15
1.
579
1.17 ()
24
SumTax
15
25
SumPension
15
26
ExemptType
60
27
Exempt
15
28
Comment
Memo
18
"" (. 1.18). -, .
. , . .
.
, . , . , , ,
.
1.18. 18
CustomerID
CustomerType
(./. )
580
1.18 ()
CustomerFio
60
( . )
CustomerName
60
( .
)
CustomerInn
13
( . )
Chief
40
( . )
Phone
10
Address
60
Bank
60
( . )
10
District
15
11
Discont
12
MasterID
13
MasterFio
60
14
Experience
15
Defect
16
RepairAll
17
TypeID
18
Type
15
(,
. .)
19
Country
15
20
Company
40
21
Picture
OLE
22
Age
23
DateStart
1.
581
1.18 ()
24
DateStop
25
Summa
15
26
Period
27
Guarantee
(/)
28
Comment
Memo
19
(. 1.19).
.
, .
, , , . -
.
. , .
1.19. 19
Hostel
Address
60
District
15
Picture
OLE
582
1.19 ()
Owner
20
Rooms
Beds
RoomID
Square
10
10
Comment
Memo
11
RoomBeds
12
Type
(
. .)
13
Storey
14
Lodger
15
Name
40
16
Passport
20
17
PassportDate
18
Region
40
19
Work
20
20
Children
(/)
21
DocumentID
22
Document
20
23
Begin
24
Giver
20
1.
583
1.19 ()
25
DocComment
Memo
26
Payment
27
Settlement
28
End
29
Reason
Memo
20
(. 1.20). .
. . .
, , .
1.20. 20
OwnerID
OwnerType
(./. )
OwnerFio
60
( . )
OwnerName
60
OwnerInn
10
584
1.20 ()
Chief
60
Phone
10
Address
60
District
15
10
Number
10
11
Brand
15
12
Model
15
13
BodyID
20
14
EngineID
20
15
BodyModel
20
16
Color
20
17
Volume
18
Comment
Memo
19
Power
. .
20
Helm
(/)
21
Drive
22
Year
23
TypeBody
15
(,
)
24
DrivingAway
25
DateAway
1.
585
1.20 ()
DateSee
28
Inspector
60
29
YearTax
15
30
YearNumber
15
31
Work
15
32
Distance
33
Okey
34
Reason
Memo
26
DateReturn
27
21
(. 1.21).
. , , , , . . - . , ,
. ,
. , , .
.
586
1.21. 21
Kadastr
BuildingName
20
()
Land
Address
60
Year
Material
15
Wear
Flow
Picture
OLE
10
Comment
Memo
11
HallID
12
Square
13
Windows
14
Heating
15
Target
15
(,
. .)
16
Department
15
()
17
Chief
30
18
DepartmentID
19
DepartmentName
15
1.
587
1.21 ()
20
Boss
40
21
Phone
10
22
OfficeDean
30
23
ChiefID
24
AddressChief
60
25
Experience
26
UnitID
27
UnitName
30
28
DateStart
29
Cost
15
30
CostYear
31
CostAfter
15
32
Period
22
"" (. 1.22).
. .
-
588
. . "" ,
.
,
, . - , ,
.
1.22. 22
ClientID
LastName
20
FirstName
20
Patronymic
20
Document
80
Serial
10
Number
20
Date
Region
30
10
Born
11
Picture
OLE
12
Pasport
13
RouteID
14
RouteName
30
15
Country
20
16
Period
1.
589
1.22 ()
17
Worker
20
18
Cost
15
19
Exempt
15
20
Return
15
21
DateStart
22
Town
15
23
Count
24
Hotel
15
25
StartDate
26
StopDate
27
Type
(***, ****)
28
Comment
Memo
23
(. 1.23).
. ,
( ).
"" , .
. .
. . -
590
, , .
1.23. 23
DoctorID
LastName
20
FirstName
20
Patronymic
20
Room
University
40
()
Type
20
(,
. .)
Experience
Phone
10
10
Born
11
Picture
OLE
12
Fio
60
13
Number
10
14
Address
80
15
District
20
16
PolicyNumber
20
17
Year
18
Sign
(/)
1.
591
1.23 ()
19
Department
40
20
TreatyID
10
21
DateStart
22
TimeStart
10
23
Cost
15
24
ExemptID
25
ExemptType
60
(,
)
26
Exempt
15
27
Summa
15
28
Comment
Memo
(
)
24
"Rapid" (. 1.24). , .
,
.
. ,
. . , . .
.
.
592
1.24. 24
RegNumber
10
Address
60
District
15
Orientation
60
(,
-2 . .)
Square
Size
10
CustomerID
10
Status
15
(,
, )
Customer
40
10
AddressCust
60
11
Chief
40
12
Phone
10
13
Bank
60
14
Account
20
15
Tax
15
16
Worker
40
17
PhoneWorker
10
18
TreatyID
19
DateStart
20
StopDate
21
SignDate
22
Advertisment
(/)
1.
593
1.24 ()
23
Cost
15
24
Leasing
15
25
Picture
OLE
26
Employee
40
27
Period
15
(, , )
28
Comment
Memo
25
OOO "
" (. 1.25). .
, - .
, , ,
, "
" .
, .
.
-.
1.25. 25
Registr
10
594
1.25 ()
Address
60
Name
60
Phone
10
TreatyID
AddressFlat
60
District
15
Floors
Floor
10
TypeHouse
20
(, )
11
TypePlan
20
(,
)
12
TypeToilet
20
(, )
13
SqAll
14
SqLife
15
SqKit
16
Agent
40
"
..."
17
Privat
18
SignPhone
19
DateStart
20
StopDate
21
Cost
15
1.
595
1.25 ()
22
Bonus
15
"
..."
23
Picture
OLE
24
Plan
OLE
25
Structure
Memo
26
Document
40
27
Prolong
28
Comment
Memo
26
(. 1.26). .
. . -
. , , ,
. , .
.
596
1.26. 26
Registr
10
Address
60
Name
60
Phone
10
TreatyID
AddressFlat
60
Key
Floors
Floor
10
TypeHouse
20
(, )
11
TypeDoor
20
(, ,
)
12
Balcony
13
TypeBalcony
60
(, )
14
Plan
OLE
15
Cost
15
16
Compensation
15
17
DateStart
1.
597
1.26 ()
18
StopDate
19
ActionID
20
PatrolID
21
Chief
20
22
Brand
15
23
DateTime
24
False
(/)
25
Tax
15
26
Document
40
27
Prolong
28
Comment
Memo
27
(. 1.27).
""
. .
. ,
, () ,
.
.
598
1.27. 27
Address
60
District
15
Balance
60
Year
Material
15
Base
15
Comment
Memo
Wear
Flow
10
Line
11
Square
10
12
Hall
13
Picture
OLE
14
Flats
15
Elevator
16
Flat
17
Storey
18
Rooms
19
SquareFlat
20
Dwell
21
Branch
22
Balcony
1.
599
1.27 ()
23
Height
24
Record
25
Document
60
26
DateDoc
27
Cost
27
FioHost
60
28
Pasport
Memo
29
Sign
(/)
30
Born
31
Status
20
28
""
(. 1.28). , . .
. .
, .
.
600
1.28. 28
Address
60
District
15
Material
15
Floor
15
Picture
OLE
Owner
15
Doorway
Flats
LastName
20
10
FirstName
20
11
Patronymic
20
12
Passport
20
13
Flat
14
FlatType
15
People
16
Phone
15
17
Account
15
18
DateCount
19
Stop
20
Number
10
21
ViewNumber
22
MadeIn
15
1.
601
1.28 ()
23
WhenMade
24
DateView
25
Result
26
PayMonth
27
Prophylaxis
28
PayDefect
29
Surname
20
29
" "
(. 1.29). . 200 .
.
, . .
, ,
, .
. . . . ,
. (
) , .
602
1.29. 29
NumberClaim
10
Name
60
Phone
10
Receipt
Bank
60
Account
20
Address
60
District
15
DateStart
10
Document
60
11
Speed
(/)
12
DateStop
13
Cost
15
14
Inspector
15
Time
20
16
Chief
30
17
Worker
30
18
DateWorker
1.
603
1.29 ()
19
Helper
30
20
Cash
(/)
21
DateCost
22
Value
15
23
Finish
(/)
24
Comment
Memo
30
"" (. 1.30). ,
,
. .
, "". 12-
, 300 .
. ,
. .
.
.
.
604
1.30. 30
CustomerID
CustomerType
(./. )
CustomerFio
60
( . )
CustomerName
60
( . )
CustomerInn
13
( . )
Chief
40
( . )
Phone
10
Address
60
Bank
60
( . )
10
District
15
11
Worker
30
12
PhoneWorker
10
13
HallID
14
Square
15
Size
20
16
Floor
17
PhoneHall
(/)
18
Decoration
10
(, , )
1.
605
1.30 ()
19
TreatyID
20
Type
21
DateStart
22
DateStop
23
Period
20
(, )
24
Value
15
25
Inspector
30
26
Target
30
(, ,
)
27
Tax
15
28
Comment
Memo
31
(. 1.31).
.
, . . . .
. ,
606
.
.
1.31. 31
CustomerID
CustomerType
(./. )
CustomerFio
60
( . )
CustomerName
60
( . )
CustomerInn
13
( . )
Chief
40
( . )
Phone
10
( .
)
Address
60
Bank
60
( . )
10
Account
20
11
PhoneNumber
10
12
PhoneAddress
60
13
Value
15
14
ExemptType
20
15
Exempt
15
16
DateClaim
17
NumberClaim
18
Inspector
15
1.
607
1.31 ()
Compensation
15
21
DateRing
22
RingType
23
Number
10
24
County
15
25
Town
15
26
Value
27
Summa
15
28
Comment
Memo
19
DateRepair
20
32
(. 1.32). ,
,
. , , . . , ,
. .
. , . .
608
1.32. 32
Provider
40
INN
10
Address
60
Bank
60
Account
20
Sign
Film
20
Author
60
Comment
Memo
10
Pages
11
Company
40
12
Year
13
Cost
15
14
Cdrom
15
Customer
20
16
CustomerSign
(./.)
17
INNcustomer
10
18
AddressCust
60
19
Chief
60
20
BankCustomer
60
21
Phone
10
1.
609
1.32 ()
22
District
15
23
AccountCust
20
24
CountNumber
25
DateStart
26
Value
15
27
Worker
60
28
Tax
15
29
Plus
Memo
33
"" (. 1.33).
.
. .
2,5.
. .
.
.
.
.
. . , .
610
1.33. 33
LastName
20
FirstName
20
Patronymic
20
Experience
Year
Category
20
(D, E)
Class
20
(1, 2, 3)
DriverID
BusNumber
10
Brand
15
11
Picture
OLE
12
Model
15
13
Capacity
14
YearBus
15
YearRepair
16
Distance
17
RouteID
18
PointStart
20
19
PointStop
20
20
DateStart
21
TimeStart
10
22
TimeAll
10
1.
611
1.33 ()
23
PlaceNumber
24
PlaceSign
(/)
25
SumDriver
15
26
SumTax
15
27
Comment
Memo
34
(. 1.34). . :
, ,
, . . , , . ,
,
.
. , ,
.
1.34. 34
CandidateID
Name
40
612
1.34 ()
Gender
Age
Myself
Memo
Demand
Memo
Phone
15
Picture
OLE
Registrar
15
10
RegDate
11
ClientID
12
ClientName
40
13
ClientGender
14
ClientPhone
15
15
Date
16
ClientMyself
200
17
ClientMore
50
18
ClientAge
19
ReceiptID
20
PayDate
21
Seller
15
22
Cash
(/)
23
Sum
24
MeetDate
1.
613
1.34 ()
25
MeetTime
26
InvitationID
27
DeleteDate
28
Deleter
15
29
Reason
30
35
(. 1.35). ,
. , , , . . .
:
, , , . .
1.35. 35
ClientID
Name
40
Date
Address
60
614
1.35 ()
District
15
Phone
15
Passport
20
PassportDate
Region
40
10
Agreement
11
StartDate
12
PercentDate
13
StopDate
14
Registrar
15
15
ThingID
16
Category
15
17
Thing
30
18
Count
19
Defects
(/)
20
Cost
10
21
Sum
10
22
Comment
Memo
23
Back
1.
615
1.35 ()
24
Tax
10
25
BackSum
10
26
Seller
15
27
FreeThing
28
Price
10
36
(. 1.36). : (, . .), , , ,
, , , . , , , , .
, . .
1.36. 36
GuestID
Name
40
Date
616
1.36 ()
Address
60
Town
20
Aim
30
Passport
20
PassportDate
Region
40
10
Work
20
11
Year
12
Money
10
13
Cash
(/)
14
Receipt
15
End
16
Comment
Memo
17
Registrar
15
18
Picture
OLE
19
Number
20
Rooms
21
Storey
22
TV
(/)
23
Fridge
(/)
24
Bed
25
Type
1.
617
1.36 ()
26
Balcony
(/)
27
Reservation
28
ReservName
40
29
Come
30
Leave
37
(. 1.37). , . : .
. , ,
, , (, , ) . . , . ,
.
, .
1.37. 37
SortID
10
Name
40
Year
618
1.37 ()
Adaptation
(/)
Frost
(/)
Description
200
Technology
Memo
Picture
OLE
Part
10
10
End
11
Yes
(/)
12
Batch
20
13
Amount
14
BatchTime
15
Weight
16
Period
17
NewSort
18
Date
19
Comment
Memo
20
ClientID
21
Company
25
22
BuyDate
23
Address
60
24
Phone
15
25
Sum
10
1.
619
1.37 ()
26
Cash
(/)
27
Seller
15
38
(. 1.38).
. : ,
; , , , - .
,
.
1.38. 38
PersonID
Name
40
Date
Picture
OLE
Address
60
Phone
15
620
1.38 ()
Birth
School
20
Money
(/)
10
Passport
20
11
PassportDate
12
Region
40
13
Attestat
20
14
Middle
15
Faculty
40
16
Speciality
40
17
Registrar
15
18
Talk
19
Result
20
Contract
(/)
21
ContractID
10
22
ContractAbout
Memo
23
ContAddress
60
24
ontPhone
15
25
Payment
(/)
26
EGE
20
1.
621
1.38 ()
27
Lesson
20
28
Score
29
YesID
30
Type
39
(. 1.39).
. ,
: , , (, ). , , , "
" . .
, , , ,
.
1.39. 39
Passage
Title
40
Date
Time
622
1.39 ()
Arrival
ArrivalTime
Seats
(/)
Places
50
Passenger
10
Name
40
11
Date
12
Passport
20
13
PassportDate
14
Region
40
15
Till
16
Ticket
10
17
Chair
18
Class
19
Price
20
Registrar
15
21
Airliner
10
22
AirlinerName
15
23
Year
24
Picture
OLE
25
Amount
1.
623
1.39 ()
26
Repair
27
Crew
28
Pilot
15
29
CrewNames
Memo
40
(. 1.40).
, .
. (, ), (
), (, ).
.
.
1.40. 40
Address
60
District
15
Material
15
Floor
15
Picture
OLE
624
1.40 ()
Owner
15
Doorway
Flats
LastName
20
10
FirstName
20
11
Patronymic
20
12
Passport
20
13
Flat
14
FlatType
15
People
16
EStove
(/)
17
Number
10
18
Kind
19
Type
20
Factor
21
Comment
Memo
22
Tariff
23
Day
24
Night
25
24hour
26
BeginMonth
27
EndMonth
1.
625
1.40 ()
28
Privilege
29
Surname
20
41
(. 1.41).
. , :
, , , (, , ).
, ,
"
" . .
, , , , .
1.41. 41
Passage
Title
40
Date
Time
Arrival
ArrivalTime
626
1.41 ()
Seats
(/)
Places
50
Passenger
10
Name
40
11
Date
12
Passport
20
13
PassportDate
14
Region
40
15
Till
16
Ticket
10
17
Chair
18
Class
19
Price
20
Registrar
15
21
Airliner
10
22
AirlinerName
15
23
Year
24
Picture
OLE
25
Amount
26
Repair
27
Crew
1.
627
1.41 ()
28
Pilot
15
29
CrewNames
Memo
42
(. 1.42). , , , ,
. , ,
.
"". 10- . ,
, .
.
1.42. 42
Number
10
Date
Name
255
FileName
PDF-,
628
1.42 ()
FolderName
Comment
Memo
Source
100
(, , )
Town
20
PostIndex
10
40
11
PhoneSource
20
12
FaxSource
20
13
Sign
(/ )
14
Department
100
15
Director
60
16
Point
17
Power
50
18
Chief
60
19
Slave
60
20
Answer
10
21
DateAnswer
1.
629
1.42 ()
22
NameAnswer
255
23
FileAnswer
PDF-,
24
FolderAnswer
25
CommentAns
Memo
26
PhoneAnswer
20
27
SubSlave
60
43
(. 1.43). .
( ) 18 ,
.
.
.
.
1.43. 43
Address
60
District
15
630
1.43 ()
Material
15
Floor
15
Picture
OLE
Owner
15
Doorway
Flats
LastName
20
10
FirstName
20
11
SecondName
20
12
Passport
20
13
Flat
14
FlatType
15
People
16
Type
(/)
17
Number
10
18
Kind
19
Type
20
DateTest
21
Comment
Memo
22
Tariff
23
Count
24
Sign
(/)
1.
631
1.43 ()
25
Square
26
BeginMonth
27
EndMonth
28
Privilege
29
Surname
20
44
(. 1.44). , .
,
. ,
. ,
.
. -
, , ,
, .
.
1.44. 44
GoodsID
10
632
1.44 ()
Name
40
International
OLE
Begin
End
NumberYes
DateYes
20
Producer
60
Instructions
Memo
10
Batch
20
11
Seller
20
12
Address
60
13
Phone
15
14
INN
10
15
Sign
16
Date
17
Price
10
18
GoodsInvoice
19
ClientID
20
Company
25
21
Address
60
22
Phone
15
1.
633
1.44 ()
23
CountNumber
24
DateStart
25
Sum
15
26
Cash
(/)
27
Worker
60
28
Invoice
29
INNClient
10
30
Seller
15
45
(. 1.45).
.
.
. ( ) . , , .
. .
1.45. 45
PersonID
Name
40
634
1.45 ()
Department
40
( )
Institute
40
() ( )
Birth
Place
20
Address
60
Phone
15
Education
40
10
Year
11
Speciality
30
12
Picture
OLE
13
DegreeYes
(/)
14
Degree
15
Rank
16
Post
20
17
Comment
Memo
18
Passport
20
19
PassportDate
20
Region
40
21
SubjectId
1.
635
1.45 ()
22
Code
15
23
CountHours
24
CourseWork
(/)
25
Examination
(/)
26
NameId
27
Sign
10
(,
, )
28
ISBN
10
29
BookYear
30
Press
40
31
Pages
32
DocNumber
33
Paper
50
34
Document
46
(. 1.46). .
. . .
. ,
636
,
.
1.46. 46
PersonID
Name
40
Department
NameId
Birth
Place
20
Address
60
Phone
15
Picture
OLE
10
Comment
Memo
11
Passport
20
12
PassportDate
13
Region
40
14
SubjectId
15
Code
15
16
CountHours
17
CourseWork
18
DateWork
1.
637
1.46 ()
19
Examination
20
DateExam
21
NameId
27
Sign
10
(,
, )
28
ISBN
10
29
Enter
30
DocNumber
31
Out
32
Document
47
"
" (. 1.47).
.
. . -
. , , , . ,
. .
638
1.47. 47
Kadastr
Address
60
Name
60
Phone
10
TreatyID
AddressFlat
60
Key
Floors
Floor
10
TypeHouse
20
(, )
11
TypeDoor
20
12
Balcony
13
TypeBalcony
60
(, )
14
Plan
OLE
15
Cost
15
16
Compensation
15
17
DateStart
18
StopDate
19
ActionID
1.
639
1.47 ()
20
PatrolID
21
Chief
20
22
Brand
15
23
DateTime
24
False
(/)
25
Tax
15
26
Document
40
27
Prolong
28
Comment
Memo
48
(. 1.48).
. , (
). "" , .
. .
.
. .
640
1.48. 48
Name
60
NumberID
10
Address
80
District
20
PolicyNumber
20
Year
Sign
(/)
Department
40
DateStart
10
DateStop
11
Cost
15
12
ExemptID
13
ExemptType
60
(, )
14
Exempt
15
15
Summa
15
16
Comment
Memo
(
)
17
Company
60
18
CompAddress
60
19
Bank
40
20
Inn
10
1.
641
1.48 ()
21
Chief
60
22
Doctor
60
23
DoctorID
24
University
40
()
25
Type
20
(,
. .)
26
Experience
27
DoctorExt
60
( )
28
DoctorIDExt
29
UniversityExt
40
30
TypeExt
20
(,
. ..)
31
ExperienceExt
49
(. 1.49). . . .
.
. .
642
1.49. 49
CandidateID
LastName
20
FirstName
20
SecondName
20
Age
Passport
20
PassportDate
Region
40
Address
60
10
Phone
15
11
Picture
OLE
12
StudyPlace
60
13
StudyAddress
60
14
StudyType
15
(
. .)
15
Registrat
15
16
RegDate
17
Place
15
18
Experience
19
Comment
Memo
20
ArchivesDate
21
Archivist
15
1.
643
1.49 ()
22
JobID
23
JobType
20
(, )
24
JobName
20
25
JobGiver
20
26
Place
60
27
Mobile
15
28
District
15
29
Money
15
30
More
Memo
50
(. 1.50).
. 2007 .
.
.
. . . .
.
.
.
, -
644
.
.
1.50. 50
CustomerID
CustomerType
(
)
CustomerFio
60
( . )
CustomerName
60
( )
CustomerInn
13
Chief
40
MapPhone
10
DateMap
60
MapCount
10
Account
20
11
Bank
50
12
PhoneAddress
60
13
Value
15
14
ExemptType
20
15
Exempt
15
16
DateClaim
17
NumberClaim
18
Inspector
15
1.
645
1.50 ()
Compensation
15
21
DateRing
22
RingType
23
Number
10
24
County
15
25
Town
15
26
Value
27
Summa
15
28
Comment
Memo
19
DateRepair
20
-
- , Real Estate (. 2.1). 3
6 :
Building ;
Help , -
- ;
Photo ;
Real Estate.accdb MS Access 2007, -
II;
Real EstateCS.adp MS Access, -
Estate;
Real Estate.rtf MS Access
2. -
647
. 2.1. -
"-" .
1. MS SQL Server 2005.
2. SQL Server Management Studio SQL Server Management Stu-
dio Express.
3. Connect to Server ( ).
, , .
Connect ().
4. Object Explorer Databases
( ) . .
5. Restore Database ( ). -
.
6. To Database : Real EstateSQL.
7. From device.
8. ,
. Specify Backup.
9. Add. .
648
OK. Specify
Backup.
11. OK. Specify Backup ,
, , Restore Database.
12. Select the
2. -
649
13. OK. -
.
14. Restore Database , Real EstateSQL
Object Explorer.
15. SQL Server Management Studio.
16.
-.
EstteCS.dat .
Real
OK.
A
ActiveX Data Objects 308
ADO 310
ADO.NET 406
ADODB 312
ALL 430
AllowBypassKey 235
Alphabetic 168
Alter table 215
ANY 431
Asc() 253
B
BEGIN CATCH 438
BEGIN TRY 438
BETWEEN 431
Bit 144
Byte 173
C
Case ... End 435
CAST() 422
Cell 348
Chr() 253
Convert() 422, 493
Copyright 345
Count() 199
Create 212
Create index 218
CreateObject 331
Currency 173
D
DAO 406
Date() 493
DCount() 208, 271
DDL 211
DECLARE 428
Delete 211
Dim 171
DISALLOW NULL 219
Distinct 197
Double 173
Drop 217
E
EXISTS 431
F
From 195
G
GetDate() 493
Group by 198
H
Having 199
HTML Help Workshop 358
I
IGNORE NULL 219
Immediate 172
IN 432
Insert 206
Integer 173
IsNull() 263
J
Jpeg 43
L
Len() 263
LIKE 432
Long 173
M
Microsoft.ACE.OLEDB.12.0 311
Mid() 252
Move 345
MsgBox() 175
N
Now() 493
O
Object Explorer 411
Object Linking and Embedding 42
ODBC 256, 401
OLE 82
OLE DB 405
Option Explicit 174
Order by 197
651
R
Raise 266
RAISERROR 470
Recordset 344
RunSQL 280
S
Select 194
Selection 348
SET 428
Single 173
SOME 431
SQL Server 2005
Developer Edition 373
Enterprise Edition 373
Express Edition 374
Mobile Edition 374
Standard Edition 373
Workgroup Edition 373
SQL Server Management Studio 409
Static 171
T
Time() 493
Top 198
Transact-SQL 425
Trim() 253, 263
U
UNIQUE 219
Update 207
V
Visual Basic for Applications (VBA) 167
W
Where 196
652
153
20
:
- 20
- 20
379
() 19, 34
237
290
290, 296
290
153, 158
179
83
101
239
46
47
365
47
35, 220
19
295
220
:
448
448
30
179
"Office" 39
381
175
40
174
VBA 328
40
94
76
:
248
290
290
, 117
:
206
211
203
36
76
328
179, 180
79
224
162
187
:
20
20
20
230
20
405
21
:
- 33
30
23
31
38
20
:
Messages 417
171
:
If ... Theh 183
Select ...case 183
With 182
187
181
184
119
:
Shift 235
238
124
135
38
83
233
30
46
46
170
171
653
171
171
61
118
62
40
87
91
"" 93
259
381
102
454
:
DRI 388
392
:
240
241
82
25
387
30
VBA 188
364
190
159
69
540
82
162
:
-- 32
-- 32
-- 32
-- 32
152
76, 244
654
39
474
121
37
27
19
55
31, 246
21, 39
448
27
448
27
294
VBA 173
461, 475
236
:
51
53
378
78
67
68
112
292
108
74
69
73
104
70
:
VBA 190
178
458
76
57
251
388
- 64
DML 205
"-"
:
www.bhv.ru
" ": ., ., . 29, .: (812) 251-41-10
: e-mail: opt@bhv.spb.su
., . Visual Prolog
(+CD-ROM)
992 .
640 .
752 .
1056 .
960 .
848 .
. Macromedia ColdFusion
672 .
. CorelDRAW 11
720 .
. CorelDRAW 12
720 .
1216 .
1120 c.
. . Delphi 7
1216 c.
., . IntelliJ IDEA.
Java (+CD-ROM)
800 .
1072 .
1024 .
. Macromedia Dreamweaver MX
736 .
736 .
800 .
704 c.
. HTML,
832 .
. .
. Mathcad 12
., . Microsoft Windows Server 2003
., . , 5- .
., . PHP 5
. ASP.NET
. Microsoft SQL Server 2000
. . HTML 4.0
1088 .
576 c.
1184 .
1152 c.
1120 .
992 .
1280 c.
672 .
1072 c.
592 .
1072 c.
. Web-, 2- .
1072 .
., . Microsoft Word 97
1120 .
- ., . XML
736 .
. AutoCAD 2004
976 .
. AutoCAD 2004.
624 .
. AutoCAD 2005
944 .
. FreeHand 7
320 .
. Adobe Illustrator CS
768 .
. Adobe Photoshop CS
928 c.
. WAP:
432 .
. Linux
912 .
. Linux, 2- .
944 .
. TCP/IP.
672 .
. Python (+CD-ROM)
768 .
. ., . . Adobe InDesign
704 .
784 .
1200 .
544 c.
1056 .
. Delphi
912 .
. CorelDRAW (+CD-ROM)
704 c.
. Qt. C++
544 .
Microsoft. Visual Basic 6.0
Microsoft. Microsoft Windows NT Server 4.0. 1 (+CD-ROM)
992 .
752 .
672 c.
Microsoft. . 2- (+CD-ROM)
368 .
496 .
., . Access 97 (+CD-ROM)
656 .
384 .
. Linux (+CD-ROM)
496 .
. Windows
304 .
. -: , ,
256 .
. Windows 98 (+)
496 .
. Internet 2000
448 .
480 .
816 .
624 .
. Sound Forge.
384 .
. Windows (+)
384 .
., . Delphi, 2- .
624 .
. - CSS
544 c.
. . MS Excel (+)
304 .
. -
480 .
. Shareware:
320 .
. AutoCAD (+CD-ROM)
1168 .
. .
320 .
. . MATLAB 7. ,
752 .
. . - Delphi (+)
432 .
. Windows 2000
640 .
. Windows XP
560 .
. GTK+.
(+CD-ROM)
368 .
416 .
352 .
. Java
336 .
. . Motorola
560 .
. -.
352 .
. . , ,
320 .
. Maple 6.
528 .
1040 .
., .
560 .
320 .
680 .
. . ,
624 .
2- .
. .
512 .
., . IP-
512 .
600 .
368 c.
., .
496 .
576 .
. Adobe InDesign:
544 .
512 .
., . .
(+CD-ROM)
432 c.
. .
352 .
., . 1C:. .
624 .
., . 1C:. .
320 .
., . 1:. .
304 .
., . 1:. .
368 .
., . 1:. .
352 c.
. SVGA- IBM
432 .
544 .
. Open GL. , 2- .
(+)
304 .
370 .
. BIOS
400 .
. (+)
448 .
. Java 2
704 .
528 .
400 c.
. Java (+CD-ROM)
400 c.
336 .
. -, 2- .
224 .
. Web-. XML
304 .
. ++
416 .
. SOFTIMAGE|XSI: (+CD-ROM)
432 .
. . , ,
(+CD-ROM)
464 .
. . Macromedia Flash MX 2004:
720 .
- ., - . Adobe Photoshop
592 .
., . Cubase SX (+CD-ROM)
640 .
., . Steinberg Nuendo 2.
(+CD-ROM)
432 .
., . (+CD-ROM)
496 .
., . Adobe Audition.
(+CD-ROM)
400 .
., . Cubase SX 2. (+CD-ROM)
656 .
., . Cubase Sonar
(+CD-ROM)
592 .
. AutoCAD:
288 .
. .
496 .
. :
320 .
. .
(+CD-ROM)
496 .
544 .
. - Java
704 .
1088 .
., . Delphi.
(+CD-ROM)
320 c.
768 .
., . Delphi 7 (+)
784 .
., . Web- Delphi
(+)
672 .
. - (+CD-ROM)
464 c.
. .
464 .
. . Windows-
(+CD-ROM)
. . MS Office XP:
544 .
944 .
C. . Microsoft ADO.NET:
768 .
., .
400 .
. SCSI IDE
592 .
. Windows, 2- .
656 .
800 .
., .
Visual C++, 2- . (+CD-ROM)
560 .
352 .
544 .
., .
Palm Pocket PC
352 .
. C++ Linux
368 .
592 .
. Web- Java
400 .
896 .
. :
(+)
384 .
480 .
. . . , ,
(+CD-ROM)
336 .
512 .
. -
(+CD-ROM)
368 .
. :
560 .
. Matlab 6.x:
672 .
. Microsoft Project
480 .
. MATLAB fuzzyTECH
736 .
., . . Crystal Reports
496 .
. (+CD-ROM)
464 .
. -3D
(+CD-ROM)
., . : , , 3- .
512 .
496 .
., .
542 .
. Mathcad Excel
464 .
. AutoCAD:
320 .
.
. Novell Netware 6/6.5 (+CD-ROM)
400 .
1056 .
. . , 2- .
368 .
640 .
., .
752 .
. , 2- .
608 .
640 .
., . FreeBSD: , ,
640 .
528 .
. OpenGL (+CD-ROM)
650 c.
. Delphi 2005
450 .
448 .
. OpenGL.
C++ (+CD-ROM)
736 .
400 .
. MS Agent. (+CD-ROM)
352 .
. (+CD-ROM)
272 .
. MS Office Delphi
(+CD-ROM)
496 .
960 .
. C++
(+CD-ROM)
496 .
384 .
. 1: 7.7/8.0:
336 .
. Windows (+CD-ROM)
880 .
. HTML Web-
400 .
608 .
. STL C++
656 .
368 .
., . Delphi, 3- .
640 .
. ++
496 .
. USB.
(+CD-ROM)
576 c.
416 .
. : , ,
320 .
384 .
. Linux
304 c.
. : ,
1200 .
464 .
. UNIX
800 c.
304 .
- . .
640 .
. Linux: , ,
288 .
. Linux (+CD-ROM)
480 .
1104 .
400 .