Курс лекции по дисциплине Современные программные средства
скачать (21152.1 kb.)
Доступные файлы (590):
Задание.doc | 21kb. | 05.02.2002 00:56 | ![]() |
Лекция_1.doc | 49kb. | 04.02.2004 09:27 | ![]() |
ЗАДАНИЕ.DOC | 37kb. | 13.02.2007 12:28 | ![]() |
Программирование с DAO и ADO.doc | 426kb. | 13.02.2007 17:20 | ![]() |
CRE_INFO.GID | |||
CRE_INFO.HLP | |||
Helpscr.doc | 213kb. | 11.09.1998 08:50 | ![]() |
README.TXT | 1kb. | 27.09.1998 08:05 | ![]() |
задание СПС лаб4.doc | 24kb. | 16.03.2005 12:15 | ![]() |
Задание.doc | 23kb. | 17.03.2006 16:06 | ![]() |
cube.swf | |||
snegovic.swf | |||
bubbles.fla | |||
bubbles_Scene 1.swf | |||
bubbles.swf | |||
Animate-Shape Tween.fla | |||
cube.fla | |||
Dirt Gear.fla | |||
Globe.fla | |||
Sun Town.fla | |||
Theater.fla | |||
Writing Pen.fla | |||
3d_animat.asp | |||
3d_animat.swf | |||
ani_but.asp | |||
ani_but.swf | |||
faq.asp | |||
fla.asp | |||
fonts.asp | |||
f_viewer.swf | |||
mail-list.asp | |||
optimization.asp | |||
player.swf | |||
practic.swf | |||
protect.asp | |||
ruhelp.asp | |||
rut.gif | 1kb. | 21.05.2000 22:16 | ![]() |
shortcuts.asp | |||
sounds.asp | |||
ssavers.asp | |||
textfield.asp | |||
trigger.asp | |||
trigger.swf | |||
2 Рисование.fla | |||
5 Работа с текстом.fla | |||
flash4_1_D.doc | 160kb. | 01.09.2001 06:27 | ![]() |
2 Слои.fla | |||
flash4_2_layers.doc | 143kb. | 01.09.2001 06:27 | ![]() |
Имитация увеличительного стекла.doc | 32kb. | 05.04.2001 07:31 | ![]() |
3 Символы и Копии.fla | |||
flash4_3_simbol.doc | 99kb. | 01.09.2001 06:29 | ![]() |
Skywriting.fla | |||
Skywriting.swf | |||
4 Кнопки.fla | |||
5 Звуки.fla | |||
flash4_5_sound.doc | 106kb. | 01.09.2001 06:30 | ![]() |
8 Анимация.fla | |||
8 Анимация.swf | |||
flash4_6_animation.doc | 98kb. | 01.09.2001 06:31 | ![]() |
Основы анимации.avi | скачать | ||
Macromedia Flash 5 (Лекция 1).doc | 217kb. | 19.11.2002 18:47 | ![]() |
test.swf | |||
Вставка Flash.doc | 30kb. | 28.04.2004 15:17 | ![]() |
Вставка Flash-роликов в HTML.doc | 73kb. | 28.04.2004 11:10 | ![]() |
Использование SWiSH в HTML.doc | 80kb. | 28.04.2004 15:28 | ![]() |
Как вставить Flash в HTML.doc | 28kb. | 28.04.2004 15:40 | ![]() |
Код вставки SWF файла Flash MX.doc | 24kb. | 28.04.2004 15:54 | ![]() |
Am179.gif | 31kb. | 05.04.1998 14:42 | ![]() |
ANATOMY3.GIF | 12kb. | 20.02.1998 18:25 | ![]() |
ANATOMY5.GIF | 7kb. | 20.02.1998 18:23 | ![]() |
ANATOMY7.GIF | 10kb. | 20.02.1998 18:26 | ![]() |
anieyes.gif | 50kb. | 11.10.1998 03:43 | ![]() |
Aniheart.gif | 5kb. | 05.04.1998 14:46 | ![]() |
BAT.GIF | 13kb. | 20.02.1998 08:37 | ![]() |
BIRD2.GIF | 4kb. | 20.02.1998 08:23 | ![]() |
BULL1.GIF | 44kb. | 20.02.1998 08:25 | ![]() |
BULL.GIF | 15kb. | 20.02.1998 08:23 | ![]() |
BUTTE~56.GIF | 34kb. | 20.02.1998 08:18 | ![]() |
BUTTE~58.GIF | 51kb. | 22.02.1998 02:44 | ![]() |
CAT10.GIF | 25kb. | 20.02.1998 08:06 | ![]() |
CAT13.GIF | 20kb. | 20.02.1998 17:02 | ![]() |
CAT14.GIF | 9kb. | 20.02.1998 07:56 | ![]() |
CAT2.GIF | 28kb. | 20.02.1998 08:11 | ![]() |
CAT8.GIF | 12kb. | 20.02.1998 17:03 | ![]() |
CAT9.GIF | 3kb. | 20.02.1998 17:01 | ![]() |
DOG13.GIF | 5kb. | 22.02.1998 02:36 | ![]() |
DOG1.GIF | 12kb. | 20.02.1998 07:53 | ![]() |
DOLPHIN.GIF | 18kb. | 20.02.1998 16:53 | ![]() |
DOLPHINS.GIF | 18kb. | 20.02.1998 07:34 | ![]() |
DOVE.GIF | 102kb. | 20.02.1998 16:59 | ![]() |
EAGLES.GIF | 85kb. | 22.02.1998 02:45 | ![]() |
FISH.GIF | 31kb. | 20.02.1998 07:30 | ![]() |
FLAM~172.GIF | 10kb. | 20.02.1998 07:11 | ![]() |
FLYI~176.GIF | 17kb. | 20.02.1998 07:12 | ![]() |
FROG.GIF | 8kb. | 20.02.1998 07:09 | ![]() |
LEOPARD.GIF | 8kb. | 20.02.1998 06:56 | ![]() |
MONKEY2.GIF | 34kb. | 20.02.1998 06:59 | ![]() |
MOOSE.GIF | 19kb. | 20.02.1998 06:55 | ![]() |
MOUSE1.GIF | 27kb. | 20.02.1998 07:02 | ![]() |
MOUSE2.GIF | 11kb. | 20.02.1998 06:53 | ![]() |
MOUSE3.GIF | 39kb. | 20.02.1998 06:55 | ![]() |
MOUSE.GIF | 72kb. | 20.02.1998 16:53 | ![]() |
ORCA.GIF | 10kb. | 20.02.1998 06:52 | ![]() |
OWL.GIF | 34kb. | 20.02.1998 16:42 | ![]() |
POLA~232.GIF | 16kb. | 20.02.1998 06:52 | ![]() |
PTER~234.GIF | 14kb. | 20.02.1998 19:19 | ![]() |
PUMA.GIF | 10kb. | 20.02.1998 06:50 | ![]() |
REDWORMS.GIF | 4kb. | 20.02.1998 06:51 | ![]() |
SEAGULL.GIF | 5kb. | 20.02.1998 06:48 | ![]() |
SPIDER1.GIF | 7kb. | 20.02.1998 06:46 | ![]() |
SWAN.GIF | 31kb. | 20.02.1998 06:45 | ![]() |
TIGER1.GIF | 10kb. | 20.02.1998 06:42 | ![]() |
TIGER2.GIF | 39kb. | 20.02.1998 06:54 | ![]() |
TIGER3.GIF | 12kb. | 20.02.1998 06:40 | ![]() |
TIGER4.GIF | 6kb. | 20.02.1998 06:40 | ![]() |
TIGER5.GIF | 9kb. | 20.02.1998 06:40 | ![]() |
TIGER6.GIF | 22kb. | 20.02.1998 05:44 | ![]() |
TRACKS.GIF | 3kb. | 20.02.1998 05:35 | ![]() |
T-REX.GIF | 50kb. | 20.02.1998 16:42 | ![]() |
TURTLE2.GIF | 12kb. | 20.02.1998 05:31 | ![]() |
WORM.GIF | 4kb. | 20.02.1998 05:30 | ![]() |
ani-tri.gif | 2kb. | 03.11.1998 15:51 | ![]() |
A-ANI5.GIF | 38kb. | 20.02.1998 06:40 | ![]() |
ASTERO~8.GIF | 49kb. | 20.02.1998 16:40 | ![]() |
EARTH10.GIF | 24kb. | 20.02.1998 16:36 | ![]() |
EARTH12.GIF | 8kb. | 20.02.1998 16:33 | ![]() |
EARTH13.GIF | 36kb. | 20.02.1998 16:33 | ![]() |
EARTH14.GIF | 52kb. | 20.02.1998 16:34 | ![]() |
EARTH16.GIF | 15kb. | 20.02.1998 16:30 | ![]() |
EARTH18.GIF | 87kb. | 20.02.1998 16:35 | ![]() |
EARTH1.GIF | 10kb. | 20.02.1998 16:37 | ![]() |
EARTH2.GIF | 113kb. | 23.02.1998 14:01 | ![]() |
EARTH4.GIF | 21kb. | 20.02.1998 06:32 | ![]() |
EARTH6.GIF | 55kb. | 20.02.1998 16:47 | ![]() |
EARTH8.GIF | 18kb. | 20.02.1998 16:35 | ![]() |
EARTH9.GIF | 7kb. | 20.02.1998 06:23 | ![]() |
EARTHBUT.GIF | 8kb. | 20.02.1998 06:07 | ![]() |
EARTH.GIF | 28kb. | 20.02.1998 06:34 | ![]() |
GLDGLOBE.GIF | 87kb. | 20.02.1998 16:29 | ![]() |
GLOBE.GIF | 19kb. | 20.02.1998 06:07 | ![]() |
GP_GLO~6.GIF | 37kb. | 20.02.1998 06:07 | ![]() |
MOON1.GIF | 40kb. | 20.02.1998 06:04 | ![]() |
MOON2.GIF | 26kb. | 20.02.1998 16:25 | ![]() |
MOON3.GIF | 47kb. | 20.02.1998 06:04 | ![]() |
MOON.GIF | 14kb. | 20.02.1998 06:05 | ![]() |
PLANET1.GIF | 168kb. | 22.02.1998 23:17 | ![]() |
PLANET3.GIF | 146kb. | 20.02.1998 16:26 | ![]() |
PLANET.GIF | 20kb. | 20.02.1998 16:29 | ![]() |
PULSAR.GIF | 3kb. | 20.02.1998 05:48 | ![]() |
REDGLOBE.GIF | 68kb. | 20.02.1998 16:24 | ![]() |
SATURN.GIF | 30kb. | 20.02.1998 05:52 | ![]() |
SHINING.GIF | 7kb. | 20.02.1998 05:47 | ![]() |
SPIKE.GIF | 4kb. | 20.02.1998 05:48 | ![]() |
STAR1.GIF | 53kb. | 22.02.1998 22:22 | ![]() |
STAR2.GIF | 3kb. | 20.02.1998 05:48 | ![]() |
STAR3.GIF | 17kb. | 20.02.1998 05:45 | ![]() |
STAR4.GIF | 3kb. | 20.02.1998 05:40 | ![]() |
STAR5.GIF | 1kb. | 20.02.1998 05:39 | ![]() |
STAR6.GIF | 7kb. | 20.02.1998 05:41 | ![]() |
STAR7.GIF | 3kb. | 20.02.1998 05:41 | ![]() |
STAR8.GIF | 5kb. | 20.02.1998 05:39 | ![]() |
STAR.GIF | 2kb. | 20.02.1998 05:47 | ![]() |
STARRY.GIF | 9kb. | 20.02.1998 05:39 | ![]() |
STARS.GIF | 11kb. | 20.02.1998 05:52 | ![]() |
TWSTAR.GIF | 3kb. | 20.02.1998 05:37 | ![]() |
ABALL1AB.GIF | 9kb. | 20.02.1998 09:59 | ![]() |
ABALL1A.GIF | 7kb. | 20.02.1998 09:58 | ![]() |
ABALL2A.GIF | 9kb. | 20.02.1998 09:57 | ![]() |
ABALL3A.GIF | 9kb. | 20.02.1998 09:57 | ![]() |
ABALL4A.GIF | 9kb. | 20.02.1998 10:07 | ![]() |
ABALL6A.GIF | 9kb. | 20.02.1998 09:56 | ![]() |
AG_BALL3.GIF | 4kb. | 20.02.1998 09:58 | ![]() |
AN_ICONA.GIF | 6kb. | 20.02.1998 18:22 | ![]() |
BALL1.GIF | 4kb. | 20.02.1998 09:54 | ![]() |
BALL2.GIF | 2kb. | 20.02.1998 09:54 | ![]() |
BALL3.GIF | 4kb. | 20.02.1998 09:54 | ![]() |
BALL.GIF | 6kb. | 20.02.1998 09:57 | ![]() |
BLINE.GIF | 3kb. | 20.02.1998 09:53 | ![]() |
BLINK~42.GIF | 3kb. | 20.02.1998 09:53 | ![]() |
BLINKIE.GIF | 3kb. | 20.02.1998 09:53 | ![]() |
BLUBOU.GIF | 1kb. | 20.02.1998 09:52 | ![]() |
BLUEBALL.GIF | 9kb. | 20.02.1998 09:53 | ![]() |
BLUER~50.GIF | 11kb. | 20.02.1998 09:53 | ![]() |
BLUERED.GIF | 2kb. | 20.02.1998 09:52 | ![]() |
BLUES~52.GIF | 3kb. | 20.02.1998 09:52 | ![]() |
BLUEY~54.GIF | 10kb. | 20.02.1998 09:51 | ![]() |
BLUPULSE.GIF | 2kb. | 20.02.1998 09:51 | ![]() |
BNC_ANM.GIF | 5kb. | 20.02.1998 09:53 | ![]() |
BUBBLER.GIF | 6kb. | 20.02.1998 09:48 | ![]() |
CONENB.GIF | 50kb. | 20.02.1998 09:52 | ![]() |
GLOBE.GIF | 40kb. | 20.02.1998 18:25 | ![]() |
GOLD1.GIF | 2kb. | 20.02.1998 09:41 | ![]() |
GP_BUT27.GIF | 10kb. | 22.02.1998 23:59 | ![]() |
GP_BUT29.GIF | 18kb. | 20.02.1998 09:44 | ![]() |
GP_BUT37.GIF | 2kb. | 20.02.1998 09:37 | ![]() |
GP_BUT38.GIF | 1kb. | 20.02.1998 09:36 | ![]() |
GP_BUT39.GIF | 2kb. | 20.02.1998 09:39 | ![]() |
GP_BUT40.GIF | 7kb. | 20.02.1998 09:44 | ![]() |
GP_GLO~7.GIF | 77kb. | 24.02.1998 00:22 | ![]() |
GP_GLO~8.GIF | 6kb. | 20.02.1998 09:39 | ![]() |
GP_GLO~9.GIF | 5kb. | 20.02.1998 09:32 | ![]() |
GP_GRN~2.GIF | 13kb. | 20.02.1998 09:36 | ![]() |
GP_MOON.GIF | 8kb. | 20.02.1998 09:31 | ![]() |
GP_PIC3.GIF | 72kb. | 20.02.1998 09:36 | ![]() |
GP_PIC4.GIF | 119kb. | 24.02.1998 00:21 | ![]() |
G_SPIRAL.GIF | 9kb. | 23.02.1998 00:02 | ![]() |
PALLA.GIF | 8kb. | 20.02.1998 09:30 | ![]() |
PERLREDB.GIF | 2kb. | 20.02.1998 09:29 | ![]() |
PURPIN.GIF | 2kb. | 20.02.1998 09:29 | ![]() |
ROLLBALL.GIF | 5kb. | 20.02.1998 09:29 | ![]() |
ROTDONE.GIF | 25kb. | 20.02.1998 09:31 | ![]() |
SBUTTON.GIF | 15kb. | 20.02.1998 09:26 | ![]() |
SOC_ANM.GIF | 14kb. | 22.02.1998 23:59 | ![]() |
SPIK~126.GIF | 8kb. | 20.02.1998 09:22 | ![]() |
SQUI~128.GIF | 9kb. | 20.02.1998 09:29 | ![]() |
TCWD_106.GIF | 7kb. | 20.02.1998 05:29 | ![]() |
TCWD_118.GIF | 4kb. | 20.02.1998 05:29 | ![]() |
banner_3.gif | 14kb. | 22.12.1998 20:36 | ![]() |
1P_BAR1.GIF | 135kb. | 23.02.1998 20:41 | ![]() |
AG_BAR2.GIF | 3kb. | 20.02.1998 09:22 | ![]() |
ANIMA~22.GIF | 9kb. | 20.02.1998 09:21 | ![]() |
ANIM-BAR.GIF | 7kb. | 20.02.1998 09:20 | ![]() |
ANI-TUBE.GIF | 8kb. | 20.02.1998 09:19 | ![]() |
BAR_ANM.GIF | 7kb. | 20.02.1998 09:18 | ![]() |
BAR_EL.GIF | 11kb. | 20.02.1998 09:18 | ![]() |
BARMOVE.GIF | 28kb. | 20.02.1998 09:19 | ![]() |
BARSTAR.GIF | 5kb. | 20.02.1998 09:17 | ![]() |
BBOMB.GIF | 14kb. | 20.02.1998 09:17 | ![]() |
BEEP2.GIF | 4kb. | 20.02.1998 09:16 | ![]() |
BLOODBAR.GIF | 5kb. | 20.02.1998 09:17 | ![]() |
BLUEONE.GIF | 4kb. | 20.02.1998 09:16 | ![]() |
BLUERULE.GIF | 4kb. | 20.02.1998 09:16 | ![]() |
BLUETWO.GIF | 2kb. | 20.02.1998 09:15 | ![]() |
BOLT_ANI.GIF | 18kb. | 20.02.1998 09:15 | ![]() |
BOMBBAR.GIF | 11kb. | 20.02.1998 09:14 | ![]() |
BR_BAR.GIF | 12kb. | 20.02.1998 09:18 | ![]() |
BULBOUT.GIF | 2kb. | 20.02.1998 09:13 | ![]() |
BURST~70.GIF | 10kb. | 20.02.1998 09:14 | ![]() |
CANON.GIF | 15kb. | 20.02.1998 09:14 | ![]() |
CAT.GIF | 10kb. | 20.02.1998 09:16 | ![]() |
COLOR~82.GIF | 16kb. | 20.02.1998 09:17 | ![]() |
COLORBAR.GIF | 5kb. | 20.02.1998 09:13 | ![]() |
COLORLIN.GIF | 8kb. | 20.02.1998 09:13 | ![]() |
CON-BAR3.GIF | 7kb. | 20.02.1998 09:10 | ![]() |
COP.GIF | 13kb. | 20.02.1998 17:16 | ![]() |
DANCEBAR.GIF | 1kb. | 20.02.1998 09:09 | ![]() |
DOG_H~94.GIF | 64kb. | 20.02.1998 09:12 | ![]() |
DRIP1.GIF | 4kb. | 20.02.1998 09:09 | ![]() |
DRIP.GIF | 7kb. | 20.02.1998 09:09 | ![]() |
ELECTRIC.GIF | 6kb. | 20.02.1998 09:08 | ![]() |
FIREBAR2.GIF | 12kb. | 20.02.1998 09:09 | ![]() |
FIREBAR.GIF | 42kb. | 20.02.1998 09:12 | ![]() |
FLOW~110.GIF | 1kb. | 20.02.1998 09:07 | ![]() |
FUSS.GIF | 5kb. | 20.02.1998 09:07 | ![]() |
G_BAR_N3.GIF | 11kb. | 20.02.1998 09:08 | ![]() |
GEOBAR.GIF | 12kb. | 20.02.1998 09:09 | ![]() |
GP_BAR10.GIF | 12kb. | 20.02.1998 08:54 | ![]() |
GP_BAR11.GIF | 10kb. | 20.02.1998 17:12 | ![]() |
GP_BAR12.GIF | 18kb. | 20.02.1998 08:52 | ![]() |
GP_BAR1.GIF | 27kb. | 20.02.1998 09:05 | ![]() |
GP_BAR2.GIF | 45kb. | 20.02.1998 09:05 | ![]() |
GP_BAR3.GIF | 9kb. | 20.02.1998 17:16 | ![]() |
GP_BAR4.GIF | 13kb. | 20.02.1998 09:00 | ![]() |
GP_BAR5.GIF | 20kb. | 20.02.1998 09:00 | ![]() |
GP_BAR6.GIF | 17kb. | 20.02.1998 08:59 | ![]() |
GP_BAR7.GIF | 34kb. | 20.02.1998 17:13 | ![]() |
GP_BAR8.GIF | 62kb. | 23.02.1998 20:38 | ![]() |
GP_BAR9.GIF | 32kb. | 20.02.1998 08:59 | ![]() |
GP_GLO~5.GIF | 31kb. | 20.02.1998 08:55 | ![]() |
GREY~150.GIF | 14kb. | 20.02.1998 08:53 | ![]() |
HR1.GIF | 8kb. | 20.02.1998 08:49 | ![]() |
HR_S~156.GIF | 9kb. | 20.02.1998 08:50 | ![]() |
INDI~158.GIF | 10kb. | 20.02.1998 08:50 | ![]() |
JETRIGHT.GIF | 14kb. | 22.02.1998 02:46 | ![]() |
KILROY.GIF | 5kb. | 20.02.1998 08:48 | ![]() |
LASER.GIF | 6kb. | 20.02.1998 08:47 | ![]() |
LIBUNT.GIF | 1kb. | 20.02.1998 08:47 | ![]() |
LILRED.GIF | 3kb. | 20.02.1998 08:46 | ![]() |
LINE04C.GIF | 29kb. | 20.02.1998 17:15 | ![]() |
LINEDOT.GIF | 18kb. | 20.02.1998 08:47 | ![]() |
LOLLIPOP.GIF | 7kb. | 20.02.1998 17:11 | ![]() |
MATC~178.GIF | 9kb. | 20.02.1998 08:44 | ![]() |
NASCAR.GIF | 26kb. | 20.02.1998 17:12 | ![]() |
NEWS~182.GIF | 11kb. | 20.02.1998 08:41 | ![]() |
PROGRESS.GIF | 5kb. | 20.02.1998 08:38 | ![]() |
RULE02.GIF | 6kb. | 20.02.1998 08:38 | ![]() |
SABE~190.GIF | 30kb. | 20.02.1998 08:40 | ![]() |
SLIDBAR.GIF | 9kb. | 20.02.1998 08:36 | ![]() |
SPARK.GIF | 5kb. | 20.02.1998 08:33 | ![]() |
STAR~196.GIF | 14kb. | 20.02.1998 17:10 | ![]() |
WELLMESS.GIF | 12kb. | 20.02.1998 05:36 | ![]() |
WLCME.GIF | 8kb. | 20.02.1998 05:30 | ![]() |
YELLCAR.GIF | 28kb. | 20.02.1998 05:38 | ![]() |
BOOK2.GIF | 10kb. | 20.02.1998 18:57 | ![]() |
BOOK3.GIF | 20kb. | 20.02.1998 18:56 | ![]() |
ANIMASCT.GIF | 12kb. | 20.02.1998 11:32 | ![]() |
ANIRATZ.GIF | 4kb. | 20.02.1998 16:05 | ![]() |
ANMCALLE.GIF | 4kb. | 20.02.1998 11:32 | ![]() |
BUGSD~14.GIF | 68kb. | 20.02.1998 11:42 | ![]() |
CALVIN.GIF | 6kb. | 20.02.1998 11:28 | ![]() |
DEVIL~28.GIF | 8kb. | 20.02.1998 11:23 | ![]() |
DEVIL.GIF | 62kb. | 20.02.1998 11:30 | ![]() |
DRINK~30.GIF | 33kb. | 20.02.1998 11:22 | ![]() |
FOX.GIF | 18kb. | 20.02.1998 11:22 | ![]() |
FREAK~38.GIF | 3kb. | 20.02.1998 11:17 | ![]() |
GENIE.GIF | 67kb. | 20.02.1998 11:27 | ![]() |
GOLDHERO.GIF | 11kb. | 20.02.1998 11:15 | ![]() |
HERORUN.GIF | 57kb. | 20.02.1998 11:16 | ![]() |
OSCAR.GIF | 12kb. | 20.02.1998 10:59 | ![]() |
PNKPAN.GIF | 6kb. | 20.02.1998 10:58 | ![]() |
SHARPS.GIF | 99kb. | 20.02.1998 10:55 | ![]() |
SONIC.GIF | 5kb. | 20.02.1998 10:50 | ![]() |
SPIDE~54.GIF | 4kb. | 20.02.1998 10:50 | ![]() |
ST.GIF | 68kb. | 20.02.1998 10:56 | ![]() |
SUPER~58.GIF | 14kb. | 20.02.1998 10:49 | ![]() |
SYLVEST.GIF | 22kb. | 20.02.1998 10:49 | ![]() |
TWEETY.GIF | 9kb. | 20.02.1998 10:46 | ![]() |
VIKING.GIF | 38kb. | 20.02.1998 10:48 | ![]() |
WB.GIF | 16kb. | 20.02.1998 10:45 | ![]() |
WIZARD.GIF | 8kb. | 20.02.1998 10:43 | ![]() |
WOLF.GIF | 10kb. | 20.02.1998 10:43 | ![]() |
clownanim48.gif | 28kb. | 03.04.1998 17:05 | ![]() |
counting_fingers.gif | 4kb. | 11.10.1998 03:43 | ![]() |
3D.GIF | 20kb. | 20.02.1998 11:48 | ![]() |
COMETANI.GIF | 23kb. | 20.02.1998 11:49 | ![]() |
ORBIT.GIF | 57kb. | 20.02.1998 11:48 | ![]() |
WRING.GIF | 32kb. | 20.02.1998 11:37 | ![]() |
dancers.gif | 3kb. | 18.06.1998 21:05 | ![]() |
dansman.gif | 4kb. | 19.11.1998 02:53 | ![]() |
dtr10x.jpg | 35kb. | 18.03.1999 11:04 | ![]() |
dtr7.jpg | 25kb. | 07.11.1998 17:18 | ![]() |
ANI_EYE.GIF | 4kb. | 20.02.1998 12:00 | ![]() |
ANIMAL94.GIF | 22kb. | 20.02.1998 12:00 | ![]() |
EYE1.GIF | 17kb. | 20.02.1998 11:58 | ![]() |
EYE2.GIF | 41kb. | 20.02.1998 11:58 | ![]() |
EYE3.GIF | 19kb. | 20.02.1998 11:58 | ![]() |
EYE5.GIF | 17kb. | 20.02.1998 11:56 | ![]() |
EYE-LOOK.GIF | 3kb. | 20.02.1998 11:56 | ![]() |
EYE-MOV.GIF | 71kb. | 20.02.1998 12:00 | ![]() |
EYES2ANI.GIF | 30kb. | 20.02.1998 11:53 | ![]() |
EYES.GIF | 3kb. | 20.02.1998 11:54 | ![]() |
GP_PIC5.GIF | 134kb. | 20.02.1998 12:04 | ![]() |
GRN_E~40.GIF | 3kb. | 20.02.1998 11:50 | ![]() |
GRNEYES.GIF | 7kb. | 20.02.1998 11:49 | ![]() |
PEEP.GIF | 21kb. | 20.02.1998 13:12 | ![]() |
ANGEL.GIF | 54kb. | 20.02.1998 12:19 | ![]() |
ANKH.GIF | 8kb. | 20.02.1998 12:13 | ![]() |
DFLYGB.GIF | 28kb. | 25.02.1998 05:15 | ![]() |
DFLYGS.GIF | 28kb. | 25.02.1998 05:15 | ![]() |
DFLYSB.GIF | 19kb. | 25.02.1998 05:16 | ![]() |
DFLYS.GIF | 43kb. | 25.02.1998 05:16 | ![]() |
DRAGON~1.GIF | 12kb. | 20.02.1998 12:12 | ![]() |
DRAGON1.GIF | 41kb. | 20.02.1998 12:14 | ![]() |
DRAGON2.GIF | 18kb. | 20.02.1998 12:11 | ![]() |
HPS.GIF | 10kb. | 20.02.1998 12:10 | ![]() |
MONSTER.GIF | 11kb. | 20.02.1998 12:07 | ![]() |
PEGASUS2.GIF | 12kb. | 20.02.1998 12:05 | ![]() |
PEGASUS.GIF | 143kb. | 23.02.1998 20:26 | ![]() |
SORCE~44.GIF | 14kb. | 20.02.1998 12:05 | ![]() |
SPIRIT.GIF | 6kb. | 20.02.1998 12:05 | ![]() |
SWORD1.GIF | 51kb. | 20.02.1998 12:06 | ![]() |
SWORD.GIF | 23kb. | 20.02.1998 13:10 | ![]() |
SWORDS1.GIF | 23kb. | 20.02.1998 12:02 | ![]() |
UNUS_~58.GIF | 102kb. | 22.02.1998 02:34 | ![]() |
WIZARD1.GIF | 20kb. | 20.02.1998 13:08 | ![]() |
WRAITH.GIF | 24kb. | 20.02.1998 12:01 | ![]() |
ANI020.GIF | 22kb. | 20.02.1998 12:42 | ![]() |
BLUFIRE.GIF | 4kb. | 20.02.1998 12:42 | ![]() |
CANDLE1.GIF | 8kb. | 20.02.1998 12:41 | ![]() |
CANDLE2.GIF | 2kb. | 20.02.1998 12:41 | ![]() |
CANDLE3.GIF | 4kb. | 20.02.1998 12:40 | ![]() |
CANDLE6.GIF | 22kb. | 20.02.1998 12:48 | ![]() |
CANDLE7.GIF | 8kb. | 20.02.1998 12:45 | ![]() |
CANDLE.GIF | 10kb. | 20.02.1998 12:42 | ![]() |
DOOMFIRE.GIF | 13kb. | 20.02.1998 12:38 | ![]() |
DRKTORCH.GIF | 15kb. | 20.02.1998 13:10 | ![]() |
EXPLO~34.GIF | 19kb. | 20.02.1998 12:37 | ![]() |
FIRE001.GIF | 17kb. | 20.02.1998 12:35 | ![]() |
FIRE1.GIF | 7kb. | 20.02.1998 12:34 | ![]() |
FIRE2.GIF | 46kb. | 20.02.1998 12:36 | ![]() |
FIRE3.GIF | 6kb. | 20.02.1998 12:34 | ![]() |
FIREANM.GIF | 6kb. | 20.02.1998 12:33 | ![]() |
FIRELINK.GIF | 100kb. | 20.02.1998 12:41 | ![]() |
FIREW~54.GIF | 65kb. | 20.02.1998 13:09 | ![]() |
FIREW~56.GIF | 65kb. | 20.02.1998 12:33 | ![]() |
FIREW~58.GIF | 69kb. | 20.02.1998 12:33 | ![]() |
FIREWRKS.GIF | 37kb. | 20.02.1998 12:32 | ![]() |
FLAME1.GIF | 12kb. | 20.02.1998 13:07 | ![]() |
FLAME2.GIF | 4kb. | 20.02.1998 13:06 | ![]() |
FLAME3.GIF | 22kb. | 20.02.1998 13:07 | ![]() |
FLAME.GIF | 21kb. | 20.02.1998 12:30 | ![]() |
FLAMM~72.GIF | 7kb. | 20.02.1998 12:23 | ![]() |
FLIKER.GIF | 40kb. | 20.02.1998 13:07 | ![]() |
NUCLEAR.GIF | 34kb. | 20.02.1998 12:22 | ![]() |
RTORCH.GIF | 9kb. | 20.02.1998 12:19 | ![]() |
TORCH1.GIF | 16kb. | 20.02.1998 13:07 | ![]() |
TORCH.GIF | 12kb. | 20.02.1998 12:21 | ![]() |
TORCHSM.GIF | 16kb. | 20.02.1998 12:20 | ![]() |
ANIMDIAB.GIF | 26kb. | 20.02.1998 13:06 | ![]() |
BCROSS.GIF | 21kb. | 20.02.1998 13:06 | ![]() |
BLACK~10.GIF | 15kb. | 20.02.1998 13:05 | ![]() |
BONED~12.GIF | 23kb. | 20.02.1998 13:05 | ![]() |
BUTCHER.GIF | 15kb. | 20.02.1998 13:04 | ![]() |
CHESS.GIF | 23kb. | 20.02.1998 13:04 | ![]() |
DEDDI~20.GIF | 83kb. | 20.02.1998 12:49 | ![]() |
DIABL~24.GIF | 67kb. | 20.02.1998 13:03 | ![]() |
DIABL~26.GIF | 65kb. | 20.02.1998 13:12 | ![]() |
DIABL~28.GIF | 25kb. | 20.02.1998 13:02 | ![]() |
DIABL~30.GIF | 69kb. | 20.02.1998 13:06 | ![]() |
DNTIGER1.GIF | 16kb. | 20.02.1998 13:00 | ![]() |
DOOM2.GIF | 5kb. | 20.02.1998 13:00 | ![]() |
DRUIDD.GIF | 67kb. | 20.02.1998 13:03 | ![]() |
EXPLO~42.GIF | 26kb. | 20.02.1998 12:59 | ![]() |
FIGHTER.GIF | 8kb. | 20.02.1998 12:58 | ![]() |
GANGS.GIF | 47kb. | 25.02.1999 17:37 | ![]() |
INCIN~48.GIF | 21kb. | 20.02.1998 16:07 | ![]() |
INVIS~50.GIF | 12kb. | 20.02.1998 12:58 | ![]() |
KNIGHT.GIF | 35kb. | 20.02.1998 13:05 | ![]() |
LAZARUS.GIF | 21kb. | 20.02.1998 13:00 | ![]() |
LORDS~56.GIF | 25kb. | 20.02.1998 12:58 | ![]() |
MAGEAT.GIF | 19kb. | 20.02.1998 12:53 | ![]() |
MAGE.GIF | 30kb. | 20.02.1998 12:53 | ![]() |
MAGICIAN.GIF | 50kb. | 20.02.1998 13:02 | ![]() |
PEN.GIF | 27kb. | 20.02.1998 12:52 | ![]() |
PENTA~68.GIF | 3kb. | 20.02.1998 12:51 | ![]() |
PENTA~70.GIF | 11kb. | 20.02.1998 12:51 | ![]() |
QUAKE.GIF | 13kb. | 20.02.1998 12:51 | ![]() |
RAD.GIF | 10kb. | 20.02.1998 12:51 | ![]() |
ROGUEBOW.GIF | 12kb. | 20.02.1998 12:51 | ![]() |
SCORPIO.GIF | 14kb. | 20.02.1998 12:51 | ![]() |
SKULL~84.GIF | 5kb. | 20.02.1998 12:50 | ![]() |
SKULL~86.GIF | 9kb. | 20.02.1998 12:50 | ![]() |
SORCERF.GIF | 19kb. | 20.02.1998 12:50 | ![]() |
SUB-ZERO.GIF | 13kb. | 20.02.1998 12:52 | ![]() |
SUCCUBUS.GIF | 14kb. | 20.02.1998 12:50 | ![]() |
UNRAV~96.GIF | 9kb. | 20.02.1998 12:50 | ![]() |
UO.GIF | 13kb. | 20.02.1998 12:50 | ![]() |
WARRIORA.GIF | 17kb. | 20.02.1998 12:50 | ![]() |
WARRIORB.GIF | 19kb. | 20.02.1998 12:49 | ![]() |
WARRIOR.GIF | 19kb. | 20.02.1998 12:49 | ![]() |
HAND1.GIF | 37kb. | 20.02.1998 12:46 | ![]() |
HAND3.GIF | 55kb. | 20.02.1998 12:47 | ![]() |
HAND.GIF | 23kb. | 20.02.1998 12:46 | ![]() |
HANDS.GIF | 24kb. | 20.02.1998 12:45 | ![]() |
HANDWAVE.GIF | 17kb. | 20.02.1998 12:45 | ![]() |
HEART2.GIF | 10kb. | 20.02.1998 18:55 | ![]() |
ABELLL~6.GIF | 25kb. | 23.02.1998 04:29 | ![]() |
ABELLR~8.GIF | 24kb. | 23.02.1998 04:39 | ![]() |
XMASLT2.GIF | 21kb. | 23.02.1998 02:42 | ![]() |
hoparlor.gif | 10kb. | 02.04.1998 15:11 | ![]() |
hot_mix.gif | 20kb. | 09.06.1998 14:04 | ![]() |
line13.gif | 15kb. | 18.04.1998 02:16 | ![]() |
mailmove.gif | 7kb. | 18.05.1998 02:36 | ![]() |
1P_LVER1.GIF | 61kb. | 24.02.1998 19:22 | ![]() |
ALARMCL.GIF | 8kb. | 24.02.1998 19:20 | ![]() |
ANADIM.GIF | 29kb. | 24.02.1998 19:21 | ![]() |
ART.GIF | 33kb. | 24.02.1998 19:19 | ![]() |
ASTER.GIF | 13kb. | 24.02.1998 19:19 | ![]() |
BLOB.GIF | 5kb. | 24.02.1998 19:04 | ![]() |
BRUSH.GIF | 30kb. | 24.02.1998 19:04 | ![]() |
C_FAN.GIF | 13kb. | 24.02.1998 19:03 | ![]() |
CLAP.GIF | 49kb. | 24.02.1998 19:03 | ![]() |
$.GIF | 30kb. | 24.02.1998 19:22 | ![]() |
GUNANIM.GIF | 9kb. | 24.02.1998 18:51 | ![]() |
LLRINGS.GIF | 31kb. | 25.02.1998 05:16 | ![]() |
LOOKER1.GIF | 2kb. | 25.02.1998 05:16 | ![]() |
M14.GIF | 9kb. | 25.02.1998 05:16 | ![]() |
PLAYBOY.GIF | 9kb. | 24.02.1998 00:38 | ![]() |
RCHAIR.GIF | 30kb. | 24.02.1998 00:37 | ![]() |
REDRINGS.GIF | 37kb. | 24.02.1998 00:36 | ![]() |
RFHEA~40.GIF | 19kb. | 24.02.1998 00:37 | ![]() |
RING_ANM.GIF | 9kb. | 24.02.1998 00:36 | ![]() |
ROSE01.GIF | 22kb. | 24.02.1998 00:35 | ![]() |
STARR.GIF | 138kb. | 24.02.1998 00:32 | ![]() |
MOV11.GIF | 5kb. | 03.04.1998 17:10 | ![]() |
mp3cd.gif | 30kb. | 20.11.1998 05:07 | ![]() |
newSmCLR.gif | 2kb. | 18.06.1998 21:07 | ![]() |
PERL.GIF | 32kb. | 02.04.1998 15:20 | ![]() |
pulsar1.gif | 12kb. | 17.01.1998 21:25 | ![]() |
ATOM1.GIF | 7kb. | 24.02.1998 21:00 | ![]() |
ATOM2.GIF | 37kb. | 24.02.1998 21:00 | ![]() |
ATOM3.GIF | 25kb. | 24.02.1998 21:00 | ![]() |
NUC_AN3.GIF | 12kb. | 24.02.1998 20:59 | ![]() |
SPIKES.GIF | 15kb. | 24.02.1998 20:59 | ![]() |
DANCIN~8.GIF | 34kb. | 24.02.1998 20:54 | ![]() |
SKELE~14.GIF | 7kb. | 24.02.1998 20:52 | ![]() |
SKELE~16.GIF | 66kb. | 24.02.1998 20:52 | ![]() |
SKELEDAN.GIF | 22kb. | 24.02.1998 20:53 | ![]() |
SKELETON.GIF | 70kb. | 24.02.1998 20:54 | ![]() |
SKULL1.GIF | 40kb. | 24.02.1998 20:52 | ![]() |
SKULL2.GIF | 31kb. | 24.02.1998 20:52 | ![]() |
SKULL33.GIF | 4kb. | 24.02.1998 20:49 | ![]() |
SKULL3.GIF | 13kb. | 24.02.1998 20:50 | ![]() |
SKULL.GIF | 46kb. | 24.02.1998 20:51 | ![]() |
Smile.gif | 2kb. | 03.04.1998 17:10 | ![]() |
SMILELY.GIF | 1kb. | 03.04.1998 17:10 | ![]() |
ABDUCT~6.GIF | 33kb. | 24.02.1998 20:50 | ![]() |
ALIEN1.GIF | 14kb. | 24.02.1998 20:49 | ![]() |
ALIEN2.GIF | 17kb. | 24.02.1998 20:49 | ![]() |
ALIENBAL.GIF | 33kb. | 24.02.1998 20:49 | ![]() |
AL_IEN.GIF | 6kb. | 24.02.1998 20:49 | ![]() |
ALIEN.GIF | 15kb. | 24.02.1998 20:49 | ![]() |
ALION.GIF | 5kb. | 24.02.1998 20:47 | ![]() |
BORGSHIP.GIF | 121kb. | 24.02.1998 20:48 | ![]() |
COOL_D1.GIF | 15kb. | 24.02.1998 20:47 | ![]() |
FLASH.GIF | 5kb. | 24.02.1998 20:46 | ![]() |
FLYIN~30.GIF | 6kb. | 24.02.1998 20:46 | ![]() |
GBOWL.GIF | 22kb. | 24.02.1998 20:46 | ![]() |
KLINGON.GIF | 33kb. | 24.02.1998 20:45 | ![]() |
LIGHTMAN.GIF | 126kb. | 24.02.1998 20:47 | ![]() |
MECH10.GIF | 35kb. | 24.02.1998 20:40 | ![]() |
MECH1.GIF | 7kb. | 24.02.1998 20:43 | ![]() |
MECH2.GIF | 54kb. | 24.02.1998 20:45 | ![]() |
MECH3.GIF | 56kb. | 24.02.1998 20:43 | ![]() |
MECH4.GIF | 55kb. | 24.02.1998 20:43 | ![]() |
MECH5.GIF | 37kb. | 24.02.1998 20:41 | ![]() |
MECH6.GIF | 53kb. | 24.02.1998 20:42 | ![]() |
MECH7.GIF | 62kb. | 24.02.1998 20:41 | ![]() |
MECH8.GIF | 60kb. | 24.02.1998 20:41 | ![]() |
MECH9.GIF | 15kb. | 24.02.1998 20:39 | ![]() |
NXTGEN.GIF | 53kb. | 24.02.1998 20:38 | ![]() |
R2D2.GIF | 146kb. | 24.02.1998 20:39 | ![]() |
REDSHIP.GIF | 95kb. | 24.02.1998 20:37 | ![]() |
SHIPANI.GIF | 39kb. | 24.02.1998 20:34 | ![]() |
SHIP.GIF | 96kb. | 24.02.1998 20:36 | ![]() |
SPACE~84.GIF | 27kb. | 24.02.1998 20:29 | ![]() |
SPACE~90.GIF | 76kb. | 24.02.1998 20:31 | ![]() |
SPACE~92.GIF | 46kb. | 24.02.1998 20:27 | ![]() |
SPACE.GIF | 111kb. | 24.02.1998 20:34 | ![]() |
SPSHIP10.GIF | 10kb. | 24.02.1998 20:16 | ![]() |
SPSHIP12.GIF | 44kb. | 24.02.1998 19:44 | ![]() |
SPSHIP1.GIF | 28kb. | 24.02.1998 20:24 | ![]() |
SPSHIP2.GIF | 104kb. | 24.02.1998 20:24 | ![]() |
SPSHIP3.GIF | 18kb. | 24.02.1998 20:22 | ![]() |
SPSHIP4.GIF | 67kb. | 24.02.1998 20:22 | ![]() |
SPSHIP6.GIF | 36kb. | 24.02.1998 20:21 | ![]() |
SPSHIP7.GIF | 36kb. | 24.02.1998 20:20 | ![]() |
SPSHIP8.GIF | 114kb. | 24.02.1998 20:21 | ![]() |
SPSHIP9.GIF | 42kb. | 24.02.1998 20:18 | ![]() |
SPSHIP.GIF | 84kb. | 24.02.1998 20:26 | ![]() |
STARBADG.GIF | 14kb. | 24.02.1998 19:43 | ![]() |
STARWARS.GIF | 102kb. | 24.02.1998 19:42 | ![]() |
TIEF~130.GIF | 74kb. | 24.02.1998 19:42 | ![]() |
TREK.GIF | 21kb. | 24.02.1998 19:39 | ![]() |
VOYBAR2.GIF | 17kb. | 24.02.1998 19:38 | ![]() |
WINK~142.GIF | 19kb. | 24.02.1998 19:38 | ![]() |
XWINGS.GIF | 25kb. | 24.02.1998 19:38 | ![]() |
Spicker.gif | 6kb. | 03.11.1998 16:03 | ![]() |
thatsall200.gif | 21kb. | 13.12.1998 12:43 | ![]() |
CAMERA1.GIF | 108kb. | 25.02.1998 05:13 | ![]() |
XFILES.GIF | 25kb. | 25.02.1998 05:09 | ![]() |
under5.gif | 6kb. | 13.04.1998 00:28 | ![]() |
LIGHT~14.GIF | 37kb. | 25.02.1998 05:13 | ![]() |
LIGHT~18.GIF | 42kb. | 25.02.1998 05:13 | ![]() |
TWISTER2.GIF | 13kb. | 25.02.1998 05:09 | ![]() |
задание СПС лаб6.doc | 27kb. | 20.04.2005 11:14 | ![]() |
1. РАЗРАБОТКА СПРАВОЧНЫХ HTML-СИСТЕМ.DOC | 103kb. | 24.02.2001 09:44 | ![]() |
2. ОБЗОР СИСТЕМЫ HTML HELP.DOC | 95kb. | 24.02.2001 07:47 | ![]() |
3. Работа с HTML Work Shop.doc | 225kb. | 28.03.2005 11:56 | ![]() |
4. ИНФОРМАЦИОННЫЕ МАТЕРИАЛЫ HTML И ФАЙЛ ПРОЕКТА.DOC | 54kb. | 23.02.2001 11:07 | ![]() |
5. MICROSOFT HTML HELP.DOC | 263kb. | 24.02.2001 10:04 | ![]() |
Как организовать вызов дополнительного окна на гиперссылку.doc | 30kb. | 23.03.2005 22:33 | ![]() |
Добавление закладки ПОИСК в HTML-HELP.doc | 56kb. | 23.03.2005 23:01 | ![]() |
Создание Pop-Up окна в HTML-HELP файлах.doc | 53kb. | 21.03.2005 23:51 | ![]() |
Встраивание сценариев в HTML.doc | 27kb. | 28.03.2005 20:46 | ![]() |
Прочие элементы.doc | 26kb. | 27.03.2005 20:23 | ![]() |
Словарь по HTML для начинающих.doc | 43kb. | 28.03.2005 15:06 | ![]() |
Таблица цветов RGB и HTML.doc | 232kb. | 28.03.2005 15:15 | ![]() |
1. Добавление Flash к Html-Help.doc | 43kb. | 27.03.2005 18:59 | ![]() |
2. Подключение Flash к html.doc | 41kb. | 26.03.2005 10:27 | ![]() |
3. Атрибуты тэгов OBJECT и EMBED.doc | 76kb. | 26.03.2005 01:00 | ![]() |
Hh_C++.pdf | 77kb. | 12.02.2001 06:56 | ![]() |
Hh_VB.pdf | 60kb. | 12.02.2001 06:56 | ![]() |
1. ИСПОЛЬЗОВАНИЕ HTML HELP В ПРИЛОЖЕНИЯХ НА VISUAL BASIC.DOC | 123kb. | 24.05.2005 19:31 | ![]() |
2. Добавление HTML Help в приложение VB 6.0.doc | 28kb. | 02.04.2010 11:57 | ![]() |
3. Как вызывать help из приложения С++.doc | 48kb. | 06.03.2005 10:05 | ![]() |
4. Использование HTML Help в проекте MFC.doc | 29kb. | 17.03.2005 14:52 | ![]() |
Теги HTML.doc | 1691kb. | 31.03.2006 14:36 | ![]() |
01. Все, что нужно знать о программировании в Macromedia Flash.doc | 178kb. | 04.05.2005 14:38 | ![]() |
02. СПРАВОЧНИК по программированию во FLASH.doc | 407kb. | 04.05.2005 14:37 | ![]() |
03. ОБЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ в ACTION SCRIPT.doc | 605kb. | 03.05.2005 17:24 | ![]() |
04. Программирование клиентских приложений с использованием Macromedia Flash.doc | 133kb. | 28.03.2005 19:09 | ![]() |
05. ЯЗЫК ACTION SCRIPT.doc | 2998kb. | 20.04.2005 10:27 | ![]() |
06. ActionScript - во Flash.doc | 104kb. | 30.03.2005 11:08 | ![]() |
07. Отладка во Flash 5.doc | 124kb. | 01.03.2004 11:23 | ![]() |
08. Обнаружение ошибок в именах переменных Actionscript.doc | 26kb. | 26.11.2003 10:45 | ![]() |
09. Создание элементов сайтов с использованием Flash.doc | 133kb. | 28.03.2005 19:20 | ![]() |
10. Программное создание часов во Flash.doc | 76kb. | 28.03.2005 19:24 | ![]() |
11. Программирование во Flash.doc | 54kb. | 01.03.2004 10:54 | ![]() |
12. Стандарты Actionscript.doc | 218kb. | 26.03.2005 01:07 | ![]() |
Программирование с DAO и ADO.doc
ВведениеВ этом уроке вы должны научиться использовать объектные модели доступа к данным. Для этого возьмем типовые задачи, которые приходится решать в процессе разработки приложения. Поскольку в Access 2002 можно использовать две объектные модели для доступа к данным — DАО и ADO, — мы будем рассматривать примеры параллельно и в той и в другой модели.
ПРИМЕЧАНИЕ При описании синтаксиса методов употребляются русские термины для аргументов методов DАО и английские — в модели ADO. Это связано с тем, что при использовании методов ADO, как правило, применяют именованные аргументы, и имена аргументов должны совпадать с терминами, используемыми при описании синтаксиса.
Чтобы работать с данными в базе данных, нужно сначала выполнить соединение с этой базой данных, то есть получить на нее ссылку. В модели DAO это будет ссылка на объект Database, а в модели ADO — на объект Connection. А когда ссылка получена, можно обращаться к семействам и объектам этой базы данных. Поэтому начнем рассматривать операции с данными со способов установки соединения с базами данных.
^
В объектной модели DAO возможны два способа установки ссылки на текущую базу данных:
Dim db As Database
Set db = DBEngine.Workspaces(0).Databases(0)
Это означает, что текущая база данных является первым объектом в семействе Databases рабочей области по умолчанию.
ВНИМАНИЕ Семейство Workspaces содержит все объекты Workspace, соответствующие открытым рабочим областям. Приложение Access может одновременно использовать любую комбинацию рабочих областей Jet и ODBCDirect а значит, и множество одновременно действующих сеансов. При первом обращении приложения Access к любому объекту ОАО автоматически создается объект Workspace — DBEngine.Workspaces(O), который является рабочей областью по умолчанию
Семейство Workspaces является стандартным для объекта DBEngine, а семейство Databases — стандартным для объекта Workspace, поэтому по правилам синтаксиса языка вместо полной ссылки, приведенной выше, можно использовать сокращенную: DBEngine(0)(0).
^
Set db = CurrentDB
В данном случае применяется метод CurrentDB объекта Application. Метод CurrentDb входит в набор глобальных методов, поэтому для его вызова можно использовать сокращенную ссылку без префикса Application с точкой. Оба способа можно использовать в программах VBA, но нужно знать различие между ними. В первом случае возвращается ссылка на открытый экземпляр текущей базы данных, а во втором — создается новый экземпляр этой базы данных.
ПРИМЕЧАНИЕ Метод CurrentDB позволяет создать несколько объектных переменных; которые ссылаются на разные копии одной и той же базы данных и с которыми можно работать независимо, что позволяет избежать конфликтов в многопользовательских приложениях.
В объектной модели ADO, чтобы получить доступ к данным в текущей базе данных, используется объект CurrentProject модели объектов Access. Этот объект создается автоматически, когда открывается файл базы данных, и имеет свойство Connection, которое и содержит всю необходимую информацию для осуществления доступа к данным:
^
Set cnnDB = CurrentProject.Connection
Сначала должна быть объявлена переменная, которая ссылается на объект Connection библиотеки ADODB. Затем этой переменной присваивается значение.
ВНИМАНИЕ Если в одном приложении используются объекты и ОАО и ADO, нужно при объявлении объектных переменных указывать объектную модель, которая будет использована. Это связано с тем, что одни и те же имена объектов встречаются и в той и в другой модели, например Connection, Recordset. Если имя объектной модели не указано, по умолчанию используется та библиотека, которая встречается раньше в списке ссылок.
^
Для работы с базой данных, отличной от текущей, то есть той, которая открыта в окне базы данных, используется метод OpenDatabase. Этот метод имеют два объекта объектной модели DAO: Workspace и DBEngine.
Если применить метод OpenDatabase объекта Workspace, база данных будет открыта в указанной рабочей области. Если применить метод OpenDatabase объекта^
Метод OpenDatabase возвращает ссылку на объект Database и имеет следующий синтаксис:
^
где <переменная> — имя переменной, которая является ссылкой на объект Database; <объект> — объект Workspace или DBEngine. По умолчанию (когда объект явно не упоминается) используется метод объекта DBEngine.
Метод имеет один обязательный аргумент — имя файла существующей базы данных. Остальные аргументы являются необязательными. Например, аргумент <режим> используется для открытия базы данных только для чтения (значение True) или для чтения и записи (значение False). Аргумент <соединение> — для указания параметров соединения с источником данных, в том числе пароля. В листинге 5.1 приводится пример открытия базы данных Библиотека.mdb.
Листинг 5.1. Открытие базы данных
Dim ws As Workspace
Dim db As Database
'выбираем рабочую область
Set ws = DBEngine.Workspaces(O)
'открываем базу данных, при этом можно указать полный путь к файлу
^
'Код работы с данными
db.Close ' Закрываем базу данных
Set db = Nothing ' Очищаем объектные
Set ws= Nothing ' переменные
Последний аргумент метода OpenDatabase— <соединение>— используется также для получения доступа к базам данных других форматов. Он представляет собой символьную строку следующего типа:
<типИсточникаДанных>;[<списокПараметров>].
О возможных типах источника данных и параметрах вы можете узнать из Справки Microsoft Access (свойство Connect объектов Database и Connection). Но в следующем примере (листинг 5.2) показано, как открыть базу данных из источника ODBC, Paradox и защищенную паролем базу данных Access.
Листинг 5.2. Открытие баз данных разных форматов (DАО)
Dim db As Database
'открываем базу данных из источника ODBC
Set db = DBEngine(O).OpenDatabase("", False, False,
"ODBC;DSN=Northwi nd;DATABASE=Northwi nd;UID=sa;PWD=") 'открываем базу данных Example в формате Paradox
^
"Paradox 4.0;DATABASE=C:\PARADOX\Example")
'открываем базу данных Access, защищенную паролем
Set db = DBEngine(0).OpenDatabase(“MyDB.mdb”,False,False, _
“;PWD=password”)
Обратите внимание, что при открытии базы данных Access защищенной паролем, строка соединения начинается со знака точка с запятой (;). Это означает, о используется тип источника данных по умолчанию — Access.
объектной модели ADO, чтобы получить доступ к данным в некоторой базе иных (не текущей), обязательно должен быть создан объект Connection. Объ-т Connection представляет собой одно подключение к провайдеру OLE ОВ.Он 1жет быть создан как явно, так и неявно в процессе создания других объектов иерархии ADO. В любом случае этот объект содержит информацию об источ-ке данных (что это за файл, какого типа), о том, где он находится и какой тип провайдера будет использоваться.
Явно создать объект Connection можно с помощью метода Open. Метод Open mo-it иметь четыре аргумента, однако все они не являются обязательными. Каж-му аргументу метода соответствует определенное свойство объекта Connection. )этому в программе можно либо использовать значения аргументов по умол-нию, либо установить нужные значения соответствующих свойств до выпол-ния метода Open, либо задавать параметры при вызове метода Open.
ПРИМЕЧАНИЕ В большинстве случаев свойства объекта ADO должны устанавливаться до того, как объект будет создан (открыт). А после создания объекта они становятся доступными только для чтения. Если при вызове метода Open передаются фактические параметры, то значения этих параметров наследуются соответствующими свойствами создаваемого объекта.
Основным аргументом, который обязательно должен быть задан, является строка соединения (подключения). Ей соответствует свойство ConhectionString. Строка подключения содержит всю информацию, необходимую для того, чтобы найти и сконфигурировать провайдер OLE DB для доступа к нужному источнику данных. Эта строка состоит из пар параметр=значение, разделенных знаком точка с запятой (;).
Строка соединения может содержать большое число параметров и, следовательно, быть достаточно длинной. Но как минимум в ней должны быть указаны имя провайдера OLE DB и источник данных.
НОВОЕ В версии Microsoft Access 2002 появилась возможность в качестве альтернативы строки подключения использовать адреса URL для указания источника данных. Они могут использоваться также при открытии объектов Recordset, Record и Stream.
Ниже приводятся два различных способа открытия базы данных (листинги 5.3 5.4). При первом способе сначала устанавливается свойство Provider, а затем зывается метод Open, и ему в качестве параметра передается имя файла базы данных, с которым нужно установить соединение. При втором — все необходимыe данные передаются в строке подключений. И в том и в другом случае в результате выполнения такого кода создается объект Connection, устанавливается свойство ConnectionString, и осуществляется соединение.
О других параметрах строки подключений мы будем говорить дальше по мере знакомства с другими объектами доступа к данным.
Листинг 5.3. Открытие базы данных (ADO — вариант 1)
Dim cnn As ADODB.Connection
Инициапизируем объект Connection
Set cnn = New ADODB.Connection
Указываем провайдер: Microsoft Jet 4.0 Provider
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0" ' Сокрываем базу данных
.Open "Библиотека.mdb"
'Код работы с данными
End With
' Закрываем объект Connection и очищаем объектную переменную.
cnn.Close
Set cnn = Nothing
Листинг 5.4. Открытие базы данных (ADO — вариант 2)
Dim cnn As New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = Библиотека.mdb"
'Код работы с данными
…
cnn.close
Set cnn = Nothing
Если строка подключения длинная, можно использовать специальный тип файла — Microsoft Data Link, или UDL (universal data link), для хранения параметров соединения. В этом случае инструкция открытия базы данных будет выглядеть следующим образом:
cnnDB.Open "File Name = C:\DataLinks\Библиотека.udl"
Чтобы создать файл UDL, раскройте папку, в которой вы хотите создать этот файл, щелкните правой кнопкой мыши и выберите в контекстном меню команду Создать > Microsoft Data Link (New > Microsoft Data Link). Будет создан новый файл. Дайте этому файлу название, а потом откройте двойным щелчком кнопки мыши. Появится диалоговое окно Свойства связи с данными (Data Links Properties). Раскройте вкладку Поставщик услуг (Provider) и выберите из списка нужный провайдер. Затем раскройте вкладку Подключение (Connection) и укажите параметры соединения с источником. Вид этой вкладки зависит от выбранного провайдера. Для Microsoft.Jet.OLE DB.4.0 она выглядит, как показано на рис. 5.1. На вкладке Дополнительно (Advanced) можно выбрать права доступа (значение свойства Mode).
ПРИМЕЧАНИЕ Использование файла DDL удобно тем, что строка подключения создается с помощью графического интерфейса и может быть легко изменена (код программы при этом не меняется).
Используя Microsoft Jet 4.0 OLE DB Provider, можно выполнить соединение с любым из источников данных ISAM, поддерживаемых ядром Jet 4.O. Для этого устанавливается свойство Extended Properties объекта Connection, которое является динамическим свойством объекта. Доступ к нему осуществляется только через семейство Properties.

В листинге 5.5 показано, как установить соединение с таблицей Excel.
Листинг 5.5. Установка соединения с таблицей Excel (ADO)
Dimm cnn As ADODB.Connection
Set cnn = New ADODB.Connection
Устанавливаем свойства Provider и Extended Properties объекта Connection и открываем файл Example.xls
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
^ ;
.Open C:\EXCEL\Example.xls
End With
Кроме уже указанных свойств объекта Connection существует еще несколько в, которые могут быть установлены до открытия соединения.
ConnectTimeout позволяет установить время ожидания установки соединения, умолчанию это значение равно 15 с. Если в течение этого времени не прошло открытия соединения, возникает ошибка.
Mode позволяет установить права доступа к данным в открываемом соединении. Существует 8 значений этого свойства, которые задаются встроенными стантами, приведенными в табл. 5.1.
CursorLocation позволяет указать, где будут создаваться и обрабатываться курсоры на сервере или на клиенте. По умолчанию будут использоваться серверные курсоры, однако можно использовать клиентские курсоры, которые обеспечивают локальное кэширование и пакетное обновление данных. Можно вообще не использовать курсоры. Вопросы, касающиеся курсоров, более подробно будут рассмотрены далее в разделе «Работа с записями».
Таблица 5.1. Значения свойства Mode объекта Connection
Константа | Описание |
acModeUnknown | Права доступа не установлены (значение по умолчанию) |
acModeRead | Только чтение |
acModeWrite | Только запись |
acModeReadWrite | Чтение/запись |
acModeShareDenyRead | Монопольный режим чтения |
acModeShareDenyWrite | Монопольный режим записи |
acModeShareExdusive | Монопольный режим |
acModeShareDenyNone | Режим совместного использования |
ПРИМЕЧАНИЕ В приведенных выше примерах показано, как явно создать соединение с источником данных посредством ADO. Но в отличие от объектной модели ОАО, объектная модель ADO не требует явного создания соединения для работы с данными. Соединение может создаваться неявно при выполнении команд, создании наборов записей и выполнении запросов к данным а указанном источнике, что, конечно, удобно, поскольку сокращает количество строк кода, но злоупотреблять этим не стоит. При работе в многопользовательском режиме следует всегда заботиться об экономии количества соединений, так как в противном случае это может вызвать проблемы, особенно для удаленных источников данных. Примеры неявных соединений будут показаны ниже.
^
В объектной модели DАО создать и открыть новую базу данных можно с помощью метода CreateDatabase объектов DBEngine и Workspace. Глобальным является метод CreateDatabase объекта DBEngine.
Метод CreateDatabase создает новый объект Database, добавляет его в семейство Databases открытых баз данных в рабочей области, сохраняет базу данных на диске и возвращает ссылку на открытый объект Database. Этот метод используется только в рабочей области ядра Microsoft Jet и имеет следующий синтаксис:
Set <переменная> = <объект>. CreateDatabase (<имяФайла>, <порядок>, [<списокПараметров>]).
Как и при открытии существующей базы данных, <переменная> — это имя объектной переменной, представляющей собой ссылку на открытый объект Database, а <объект> может быть одним из объектов: DBEngine или Workspace. Метод имеет два обязательных аргумента: имя файла создаваемой базы данных и строковое выражение, определяющее порядок символов, который будет использоваться в операциях сравнения строк и сортировки в создаваемой базе данных.
Необязательный аргумент представляет собой константу или комбинацию констант, которые определяют один или несколько параметров: версию формата данных и режим шифрования или дешифровки (или дешифрования) базы данных во время сжатия. Эти константы приведены в справке Access
.
Листинг 5.6. Создание базы данных (DАО)
'используем метод объекта DBEngine
^
Set db2 = DBEngine.CreateDatabaseC'C:\NewDB", DbLangCyrillic)
'использование метода объекта Workspace для создания 'зашифрованной базы данных
^
Из приведенного примера (листинг 5.6) видно, что при использовании метода CreateDatabase объекта DBEngine можно применить сокращенную ссылку или указать префикс DBEngine с точкой. А при использовании метода объекта Workspace нужно указать конкретную рабочую область, как, это показано в следующем примере. В объектной модели ADO, чтобы создать новую базу данных Access и установить с ней соединение, используется метод Create объекта Catalog библиотеки s AD ОХ. Синтаксис этого метода следующий:
<catalog>.Create <connectionString>. -|
При выполнении метода создается и открывается новый объект Catalog, который ; описывается строкой соединения <connectionString>. При этом так же, как и при использовании DАО, можно явно указать порядок символов, который будет использоваться в операциях сравнения и сортировки в создаваемой базе данных. Для этого применяется параметр Locale Identifier строки соединения. В листинге 5.7 приводятся примеры создания новой базы данных Access.
Листинг 5.7. Создание базы данных (ADO)
Dim cat As New ADOX.Catalog
Dim catNewDB As New ADOX.Catalog
'создаем новый файл базы данных Access и устанавливаем
'с ним соединение
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0; _
Data Source=c:\new.mdb"
'создаем новый файл базы данных Access и определяем 'порядок сортировки
catNewDB.Create "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Locale Identifier=1036;Data Source= c:\new.mdb"
ВНИМАНИЕ Библиотека объектов ADOX не подключается автоматически во время установки Microsoft Access 2002. Вы должны установить ссылку на эту библиотеку из диалогового окна References (Ссылки) редактора VBA .

Диалоговое окно со всеми подключенными библиотеками ADO показано на рис. 5.2.
Доступ к таблицам базы данных Access
После установки соединения с источником данных обеспечивается доступ ко bccn объектам этой базы данных. Основными объектами, в базе данных Access явля ются таблицы. Все таблицы базы данных Access, включая присоединенные, скры тые и системные, содержатся в семействе TableDefs объектной модели ОАО. Тш таблицы определяется значением свойства Attributes объекта TableDef. В листин ге 5.8 приводится пример процедуры, которая печатает имена и типы всех таб лиц в базе данных Библиотека.mdb. !
Листинг 5.8. Печать объектов семейства TableDefs (DAO)
Sub PrintTablesO
Dim ws As Workspace, db As Database, td As TableDef
'выбираем рабочую область
^
'открываем базу данных
Set db = ws .OpenDatabase ("С:\Библиотека.mdb")
For Each td in db.TableDefs
Debug.Print td.Name & vbTab & td.Attributes
Next td
db.Close ' Закрываем базу данных
Set db = Nothing ' Очищаем объектные
Set ws= Nothing ' переменные
End Sub
Семейство TableDefs является стандартным семейством объекта Database, поэтому к его объектам можно обращаться с помощью сокращенной ссылки, например:
^
Set db = CurrentDB
strType = db!Авторы.Connect
strName = db!Авторы.SourceTableName
В приведенном примере переменной strType присваивается значение свойства Connect присоединенной таблицы Авторы, определяющее тип и местонахождение таблицы, а переменной strName — значение свойства SourceTableName, которое содержит имя присоединенной таблицы в источнике1. В объектной модели ADOX семейство Tables содержит ссылки на все таблицы л представления (запросы на выборку) базы данных. В семейство входят также хылки на присоединенные и системные таблицы. Определить тип таблицы можно тутем проверки свойства Туре объекта Table. В табл. 5.2 приведены строковые значения, которые возвращаются при проверке свойства Туре с помощью Microsoft Jet 4.0 OLE DB Provider. Таким образом, семейство Tables обеспечивает программный доступ к любой таблице и запросу на выборку базы данных.
Таблица 5.2. Значения свойства Туре объекта Table
Тип | Описание |
Access Table | Системная таблица Access |
Link | Связанная таблица из источника данных, отличного от ODBC |
Pass-Through | Связанная таблица из источника данных ODBC |
System Table | Системная таблица Microsoft Jet |
Table | Обычная таблица |
View | Запрос без параметров, возвращающий набор записей (запрос на выборку) |
Как видно из этой таблицы, в модели ADOX, как и в модели DAO, различаются вязанные таблицы из источников данных ISAM и ODBC. Если связанная таблица находится в базе данных ISAM, свойство Туре возвращает значение Link, если в базе данных ODBC, — значение Pass-Through.
В листинге 5.9 приводится пример получения списка таблиц базы данных Библиотека.mdb
Листинг 5.9. Печать имен и типов таблиц (ADO — вариант 1)
Dim cat As ADOX. Catalog
Dim tbl As ADOX.Table 'создаем объект Catalog
Set cat = New ADOX.Catalog
cat.ActiveConnection ="Provider=Microsoft.Jet.OLEDB.4.0; "_
& "Data Source=C:\Библиотека.mdb"
'печатаем имена и типы всех таблиц (запросов в этой базе данных нет)
For Each tbl In cat.Tables
Debug.Print tbl.Name & vbTab & tbl.Type
^
Set cat = Nothing
В этом примере используется другой метод создания объекта Catalog. Вместо использования метода Create, как это делалось в предыдущих примерах, сначала объявляется новый объект Catalog, а затем присваивается значение его свойству ActiveConnection. Затем объект Catalog используется для доступа к семейству Tables таблиц и запросов базы данных.
Обратиться к существующей таблице базы данных можно сразу после создания объекта Catalog, просто указав имя таблицы или ее индекс в семействе Tables, например:
^
cat.ActiveConnection = CurrentProject.Connection
strName = cat.Tables(0).Name
В этом примере в качестве объекта Connection используется соединение с текущей базой данных.
Альтернативным способом доступа к таблицам базы данных посредством объектов ADO является применение метода OpenSchema объекта Connection. Установив соединение с базой данных посредством объекта Connection, можно выполнить метод OpenSchema и получить объект Recordset, который содержит информацию о схеме данных источника, возвращаемую провайдером OLE DB. Синтаксис метода OpenSchema следующий:
Set <переменная> = <connection>.OpenSchema (<типЗапроса>, [<критерий>],
[<идентификаторСхемы>]),
где <connection> представляет собой ссылку на объект Connection. Метод имеет один обязательный аргумент — <типЗапроса>. Это константа, которая определяет тип возвращаемой информации. Может возвращаться информация о таблицах, представлениях, процедурах, индексах и других объектах базы данных. Остальные аргументы необязательны. Их значения вы можете посмотреть в Справке Access (метод OpenSchema объекта Connection). Ниже приведен пример использования метода OpenSchema и провайдера Microsoft Jet 4.0 для получения списка таблиц в базе данных Библиотека.mdb (листинг 5.10).
Листинг 5.10. Печать имен и типов таблиц (ADO — вариант 2)
Dim cnn As New ADODB.Connection
Dim rstSchema As ADODB.Recordset
'устанавливаем соединение с базой данных
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=C:\Библиотека.mdb
'создаем объект Recordset
Set rstSchema = cnn.OpenSchema(adSchemaTables)
'выводим на печать имена и типы таблиц базы данных
^ F
Debug.Print "Имя таблицы: " & rstSchema.Fields _
("TABLE_NAME") & " тип: " & rstSchema.Fields _
("TABLE_TYPE") & vbCr
rstSchema.MoveNext
Loop
rstSchema.Close
cnn.Close
При переборе таблиц этот метод работает быстрее, чем цикл по всем объектам семейства Tables объектной модели ADOX.
^
Семейства TabteDefs и Tables имеют все стандартные свойства и методы семейства зектов:
свойство Count, возвращающее количество таблиц в семействе;
метод Append для добавления новой таблицы в семейство;
метод Delete для удаления таблицы из семейства;
метод Refresh для обновления семейства.
Это значит, что можно программным путем добавлять в базу данных таблицы и удалять их.
Алгоритм создания новой таблицы также одинаков в обеих моделях.
Создается новый объект — таблица.
Создаются все подчиненные объекты — поля таблицы, индексы, если нужно, и т.д.
Все подчиненные объекты добавляются в соответствующие семейства,
Главный объект — таблица — добавляется в семейство
Для создания нового объекта TableDef используется метод CreateTableDef объекта Database, который инициализирует объектную переменную, содержащую ссылку на таблицу.
Синтаксис метода CreateTableDef:
Set <переменная> = <database>.CreateTableDef ([<имяТаблицы>], [<атрибуты>],
[источник>], [<соединение>]),
;database> — ссылка на объект Database.
Посольку все аргументы метода CreateTableDef являются необязательными, можно пускать, а затем при необходимости установить значения соответствующих свойств объекта TableDef.
Аргумент <имяТаблицы> представляет собой имя создаваемой таблицы. Аргумент <атрибуты> — это константа или комбинация констант, которая определяет характеристики создаваемой таблицы. Аргументы используются, если создается присоединенная таблица. Имя этой таблицы в текущей базе данных может отличаться от имени таблицы в базе данных-источнике, поэтому аргумент <источник> опрделяет имя таблицы в базе данных-источнике. Аргумент <соединение> представляет собой строку соединения, которая определяет тип и местонахождение источника данных, например, для таблицы Excel аргумент <соединение> может содержать значение "Excel 8.0; DATABASE=C:\TABLES\SUMMARY.XLS".
После того, как новая таблица создана, необходимо определить ее структуру, то есть свойства полей. Прежде чем добавить ее в семейство TableDefs, нужно определить хотя бы одно поле, в противном случае Access выдаст сообщение об ошибке. Чтобы создать поле, используется метод CreateField объекта TableDef, который имеет следующий синтаксис:
Set <nepeменная> = <tableDef>.CreateField ([имя], [тип], [размер]).
Метод CreateField имеет три необязательных аргумента, позволяющие определить три свойства поля: имя, тип данных и размер. Поскольку аргументы не являются обязательными (как и при создании таблицы), их можно опустить, а позже установить соответствующие свойства объекта Field. Созданные поля нужно обязательно добавить в семейство Fields.
Когда структура таблицы определена, можно добавить ее в семейство TableDefs, используя метод Append, и затем вызвать метод Refresh, чтобы обновить семейство. Удалить таблицу, если она больше не нужна, можно с помощью метода Delete.
СОВЕТ Метод Refresh семейства TableDefs рекомендуется применять после каждого добавления, удаления или изменения объекта TabteDef. Это особенно важно в многопользовательских приложениях.
ВНИМАНИЕ Недостаточно создать объект и установить его свойства, если это объект не временный. Чтобы сохранить его в базе данных, нужно обязательно добавить его в соответствующее семейство. В противном случае Access ничего не будет «знать» о его существовании, и объект просто «исчезнет».
Листинги 5.11 и 5.12 демонстрируют примеры использования этих методов.
Листинг 5.11. Создание таблиц (DАО — вариант 1)
Sub CreateTempTable ()
Dim db As Database, td as TableDef, fid As Field
Set db = CurrentDB 'создаем новую таблицу
Set td = db.CreateTableDef("ВремТовары") 'создаем поля таблицы и добавляем их в семейство Fields
^
td. Fields.Append fid
Set fid = td.CreateFieldC'HanMeHOBaHHe", dbText,50)
td.Fields.Append fid
Set fid = td .CreateField("OnncaHne")'можно и так
fid.Type = dbText
fid.Size = 255
td. Fields.Append fid 'добавляем таблицу в семейство TableDefs
db.TableDefs.Append td 'обновляем семейство TableDefs
db.TableDefs.Refresh
db.Close End Sub
Листинг 5.12. Удаление таблицы (DАО — вариант 1)
Sub DeleteTempTableO
Dim db As Database,
^
'удаляем таблицу из семейства TableDefs
db.TableDefs.Delete "ВремТовары"
'обновляем семейство TableDefs
db.TableDefs.Refresh
db.Close
End Sub
Существует еще один способ изменения структуры базы данных — использова-ше метода Execute объекта Database для выполнения инструкций языка SQL. Этот 1етод позволяет выполнить любую инструкцию языка, в том числе и подмноже-тво инструкций языка определения данных DDL (Data Definition Language). 5 листингах 5.13 и 5.14 приведены примеры тех же процедур, но написанных использованием инструкций языка DDL.
Листинг 5.13. Создание таблицы (DАО — вариант 2) Sub CreateTempTable ()
Dim db As Database, strDDL As String
Set db = CurrentDb
'создаем новую таблицу
strDDL = "CREATE TABLE ВремТовары"
strDDL = strDDL & "КодТовара ТЕХТ(5),"
strDDL = strDDL & "Наименование TEXT(50),"
strDDL = strDDL & "Описание ТЕХТ(255)"
db.Execute strDDL
'закрываем базу данных
db.Close
End Sub
Листинг 5.14. Удаление таблицы (DAO — вариант 2) Sub DeleteTempTableQ
^
Set db = CurrentDB
'удаляем таблицу из семейства TableDefs
strDDL = "DROP TABLE ВремТовары"
db.Execute strDDL
db.Close
End Sub
Для изменения структуры таблицы следует использовать свойства объектов Field мейства Fields объекта TableDef или инструкцию DDL ALTER TABLE.
Например, чтобы удалить все поля из таблицы ВремТовары, нужно выполнить цикл:
For i = 1 То db.TableDefs("BpeMToBapbi").Fields.Count
db.TableDefs("ВремТовары").Fields.Delete get_column_name(i)
Next i
В качестве аргумента метода Delete указывается имя удаляемого поля, возвраща-зе функцией get_column_name. Добавить новое поле можно так же, как это сазано для новой таблицы. Используя свойства объекта Field, можно изменить >йства любого поля таблицы. С инструкцией ALTER TABLE и другими инструк-ши SQL вы познакомитесь в уроке 6.
В модели ADO процессы создания, изменения и удаления таблиц аналогичны описанным выше процессам в модели DАО, только вместо объекта Database используется объект Catalog, вместо семейства TableDefs — семейство Tables, а вместо семейства Fields — семейство Columns библиотеки ADOX. Пример, приведенный в листинге 5.15, демонстрирует применение этих объектов.
Листинг 5.15. Создание временной таблицы (ADO)
Dim cat As ADOX.Catalog, tbl As ADOX.Table
Set cat = New ADOX.Catalog
'открываем каталог
cat.ActiveConnection = "Provider=Microsoft.Jet .OLEDB.4.0;" & _
"Data 5ource=C: \Склад.mdb"
‘создаем новый объект Table
Set tbl = New ADOX.Table
With tbl
.Name = "ВремТовары" 'создаем поля и добавляем их в семейство Columns
With .Columns
.Append "КодТовара", adVarWChar
.Append "Наименование", adVarWChar
.Append "Описание", adLongVarWChar
End With
End With
'добавляем новую таблицу к семейству Tables базы данных
cat .Tables.Append tbl
Set cat= Nothing
При создании полей таблицы первым параметром метода Append является имя поля, а вторым — тип данных. Для указания типа данных используются встроенные константы. Например, adVarWChar соответствует типу данных Текстовый в Access. Список констант в моделях DAO и ADOX и соответствующих им типов данных Access приведен в табл. 5.3.
Таблица 5.3. Типы данных в моделях DАО и ADOX
Тип данных Access | ОАО | ADOX |
Числовой (размер поля — байт) | dbByte | adllnsignedTinylnt |
Числовой (размер поля — целое) | dblnteger | adSmalLInt |
Числовой или счетчик | dbLong | adSmalllnt |
(размер поля — длинное целое) | | |
Поле объекта OLE | dbLongBinary | adLongVarBinary |
Поле MEMO | dbMemo | adLongVarWChar |
Текстовый | dbText | adVarWChar |
Гиперссылка | dbMemo, и свойство Attributes должно иметь значение dbHyperlinkField | adLongVarWChar, и свойство Column должно иметь значение JetOLEDB:Hyperlink |
Следующие два примера (листинги 5.16 и 5.17) демонстрируют, как выполняется присоединение таблицы, размещенной в другой базе данных Access. Метод Append в ADOX позволяет объединить создание объекта и добавление его в семейство. Этой возможностью мы и воспользовались в данном примере.
Листинг 5.16. Присоединение внешних таблиц (DAO)
Sub CreateLinkedAccessTableQ
Dim db As Database, tdf As TableDef
^
'создаем новую таблицу
Set tdf = db.CreateTableDef ("Издания")
'устанавливаем свойства таблицы
tdf.Connect = " ;DATABASE=C:\Библиотека(данные).mdb"
tdf.SourceTableName = "Издания"
'добавляем таблицу в семейство
TableDefs db.TableDefs.Append tdf
End Sub
В модели ADO, чтобы указать путь к внешнему источнику данных и имя присоединяемой таблицы, нужно установить значения двух свойств семейства Properties объекта Table: Jet OLEDB:Link Datasource и Jet OLEDB:Remote Table Name. Кроме того, свойству Jet OLEDB:Create Link должно 'быть присвоено значение True.
ПРИМЕЧАНИЕ Объекты Connection, Command, Recordset и Field и коллекция Parameters модели —^ADODB, а также объекты Table, Index и Column модели ADOX имеют семейство Properties. Каждое такое семейство включает стандартные (встроенные) свойства соответствующего объекта и дополнительные (динамические) свойства, которые зависят от используемого провайдера OLE DB, и поэтому называются свойствами провайдера. Эти динамические свойства не всегда присутствуют для объекта, хотя для всех объектов одного типа от одного провайдера они будут одинаковы. Ссылаться на эти свойства можно только через семейство Properties. Свойства провайдера можно отличить от стандартных свойств по префиксу, который присутствует в их именах. Например, объект Connection не имеет стандартного свойства, позволяющего указать файл рабочих групп (файл .mdw) для защищенной на уровне пользователей базы данных Access (файл .mdb) (в модели ОАО такое свойство есть у объекта DBEngine и называется оно SystemDB). Но объект Connection имеет свойство Jet OLEDB:System database. Это свойство входит в семейство Properties и может быть использовано для данной цели. Информацию о свойствах провайдера Microsoft Jet 4.0 OLE DB Provider можно найти в файле ADOProperties.DOC в папке ODETools\V9\Samp'les\OPG\Appenixes компакт-диска из комплекта Microsoft Office 2000 для разработчиков.
Листинг 5.17. Присоединение внешней таблицы (ADO)
Sub CreateLinkedAccessTableO
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Set cat = New ADOX.Catalog
'устанавливаем соединение с базой данных,
'к которой будем присоединять таблицу
Скачать файл (21152.1 kb.)