Программирование и комп-ры

Считывание данных из гостевой книги в таблицу



|                                                                   |
|Министерство образования и культуры                                |
|республики Молдова                                                 |
|                                                                   |
|Университет иностранных языков и                                   |
|международного бизнеса                                             |
|                                                                   |
|                                                                   |
|                                                                   |
|                                                                   |
|Отчёт по курсовой работе                                           |
|                                                                   |
|                                                                   |
|“Программирование”                                                 |
|II курс. Специальность: Вычислительная техника                     |
|                                                                   |
|                                                                   |
|                                                                   |
|Дата выдачи                                                        |
|дата защиты                                                        |
|10 апреля 2000                                                     |
|5 июля 2000                                                        |
|                                                                   |
|                                                                   |
|                                                                   |
|Студент гр.989                                                     |
|Сергеев Александр Владимирович                                     |
|Оценка:                                                            |
|За дизайн        ____                                              |
|За содержание____                                                  |
|За защиту        ____                                              |
|-------------------------                                          |
|Проверил :                                         Общая оценка____|
|                                                                   |
|__________________                                                 |
|                                                                   |
|                                                                   |
|                                                                   |
|Кишинёв 2000                                                       |

Дата выдачи задания: 10.04.00
Дата сдачи готового задания 5.06.00
В результате выполнения задания по курсовой работе представляется дискета,
содержащая разработанную программу (функции, процедуры), наборы исходных
данных, требуемые для проверки работы, а также составляется отчет который
должен содержать:

1. Титульный лист                              1 стр.
2. Задание (этот лист)                              1 стр.
3. Теоретическое введение (общие вопросы,
     относящиеся к Вашей работе)             3-4 стр.
4. Описание разработанной программы
     области применения, методы использования      1-2 стр.
5. Система обозначений, описание переменных,
     аргументов функций и процедур и пр.           1-2 стр.
6. Экранные копии этапов разработки с
    разъяснениями каждого изображения.
    Описание работ по отладке программы      2-3 стр.
7. Копии диалогов, итоговые результаты       2-3 стр.
8. Текст программы (программ) в виде
    текстового файла, описание их подключения
     к системе VBA, MS Office или VB6        2-4 стр.
9. Заключение и библиография, ссылки
    Internet (c описанием содержимого, тема-
     тической направленности)                           2 стр.
                                        ______
                 ИТОГО            15-22 стр.


                                  Задание 2


Тема: «Набор процедур VBA - Считывание данных из гостевой книги  frontpage
2000 в таблицу   access 2000.


Ccылка - http://www.ProgrammingMSAccess.COM/


    - Исходные данные в файле «Date2.doc»  в каталоге «Соммоn» сети
          «Univers-Moldova».
    - Перевести на русский язык техническое описание процедур.
    - Ввести и отладить код функций и процедур, используемых в примере.
    - Создать необходимые процедуры и файлы данных (если это необходимо) для
      проверки работоспособности разработанного приложения.



                           Теоретическое введение



   Секрет, как стать профессиональным разработчиком программ на Visual
Basic, состоит в том, чтобы писать программы, требующие от нас применения
самых разнообразных возможностей Visual Basic. Среди них: доскональное
знание и способность на практике применять стандартные средства управления
панелью инструментов и компоненты ActiveX; умение правильно устанавливать и
манипулировать свойствами, функциями и событиями объекта; способность
писать ясный и чёткий программный код с возможностью повторного
использования некоторых сегментов программы в дальнейшем; умение создавать
наглядный и эффективный интерфейс пользователя.
   Для работы над этой курсовой мне потребовалось изучить приложение
FrontPage, а также изучить некоторые возможности Visual Basic в приложении
Access.

Microsoft FrontPage 2000 включает все необходимые средства для эффективной
разработки и эксплуатации веб-узлов. Пользователи могут легко создавать
качественно оформленные веб-страницы, выбирая наиболее удобный способ
разработки. FrontPage 2000 позволяет придавать законченный и
профессиональный вид веб-узлам, импортировать и редактировать код HTML
любым из существующих способов и применять новейшие веб-технологии. С
помощью FrontPage 2000 можно легко выполнять обновление веб-страниц, а
также пользоваться гибкими средствами для управления узлами Интернета и
интрасетей. FrontPage 2000 позволяет создавать и поддерживать узлы, следить
за их работой и производить периодические обновления. Рабочие группы и
команды специалистов могут использовать веб-узлы для совместной работы, а
компании - осуществлять развертывание и администрирование FrontPage 2000 в
масштабах предприятия. FrontPage 2000 помогает сэкономить время
пользователям пакета Microsoft Office. Этот продукт работает по принципу
приложений Microsoft Office, что упрощают его освоение.

   Моя задача состояла в том, чтобы в приложении FrontPage создать гостевую
книгу. Затем в приложении Access создать однотабличную базу данных и в
модуле Visual Basic набрать и отладить код программ, которые бы считывали
данные из гостевой книги в базу данных.
   Для того чтобы набрать и отладить программу необходимо ознакомиться с
элементами, составляющими основу программирования на Visual Basic, т.е. с
командами, операторами, функциями и ключевыми словами.



                             Операторы и функции


Оператор Sub объявляет имя, параметры и тело процедуры.
Оператор End Sub заканчивает процедуру.
Оператор Dim объявляет переменные и выделяет память под них.
Оператор Set связывает ссылку на объект с переменной или свойством.
Цикл Do Until … Loop повторяет блок команд, пока условие не станет верным.
Цикл If … Then … Else выполняет команду (инструкцию) или блок команд в
зависимости от значения выражения.
Оператор On … GoTo передаёт на одну из нескольких определённых строк, в
зависимости от значения выражения.
Функция InStr возвращает позицию первой найденной подстройки в строке.
Функция Ucase возвращает строку, преобразованную в верхний регистр.
Оператор Mid замещает определённое количество символов в строке на символы
из другой строки.
Функция Mid возвращает определённое количество символов с определённой
позиции строки.
Функция Lcase возвращает строку в нижнем регистре.
Функция Left возвращает определённое количество символов с начала строки.
Оператор With выполняет последовательность команд для конкретного объекта
или переменной специализированного типа.
Функция Resume продолжает выполнение программы после завершения процедуры
обработчика ошибок.
Оператор Print записывает форматированные данные в файл.
Оператор Function объявляет имя, аргументов и код подпрограммы,
возвращающей значение (функции).


                                 Переменные

Итак, переменная представляет собой временное хранилище для данных в нашей
программе. Кто учился информатике в школе, наверное, помнит, что
"переменные - это такие ящички в которых содержится информация...". В
тексте программы мы можем использовать сколько угодно переменных. Особая
польза от них - это то, что мы присваиваем нужным данным короткий и легко
запоминающийся идентификатор. Ярлычок, так сказать. Если мы присвоим
переменной UserName значение "Иванов Пётр Иванович", то в дальнейшем
использовать восемь символов легче, чем восемнадцать !!! Переменные могут
содержать практически любую информацию.
Чтобы грамотно использовать переменную, нужно её сначала объявить,
зарезервировать под неё память. Для этого используются следующие ключевые
слова: Dim, Private, Public, Static, Global.
Переменные можно объявлять на уровне модуля и на уровне процедуры. Под
уровнем модуля подразумевается часть формы General и стандартный модуль, а
под уровнем процедуры подразумевается Sub, Function и т.д.
Пояснение использования Static. Описывает переменные только на уровне
процедуры. Переменная, описанная на уровне процедуры, "живёт" только в
пределах этой процедуры на протяжении работы приложения.
Пояснение использования Dim. Описывает переменные как на уровне модуля так
и на уровне процедуры. Переменная, описанная на уровне процедуры, живёт
только в пределах этой процедуры и прекращает работу по окончанию
процедуры. Её мы чаще всего и применяем как счётчик, т.к. он и нужен то нам
всего в данной процедуре. Переменная, описанная на уровне модуля, доступна
для всех процедур данного модуля. Т.е. если нам нужна переменная, которую
видят все функции и процедуры, тo её надо объявить со словом Dim на уровне
модуля.
Пояснение использования Public. Описывает переменные на уровне модуля.
Таким образом переменная стаёт глобальной, но на уровне формы и доступна
всем остальным модулям
Конечно, при переходе в другую форму переменная будет пустой, неизвестной
для второй формы! Чтобы избежать этого нужно объявить переменную в
стандартном модуле со словом Public или Global. Тогда переменная будет
доступна и известна каждой форме.
Пояснение использования Private. Описывает переменные как на уровне модуля
так и на уровне процедуры. Переменная, описанная на уровне процедуры, живёт
только в пределах этой процедуры. Переменная, описанная на уровне модуля,
доступна лишь модулю, в котором она объявлена.
Объявление всех переменных считается хорошей привычкой. В помощь забывчивым
и незабывчивым есть инструкция Option Explicit. Помещать эту инструкцию
нужно на уровне модуля и потом она проверяет каждую переменную объявлена ли
она или нет? Если нет - выскакивает ошибка. Размер отводимой памяти под
переменную зависит от вида этой переменной. Основные виды переменных
указаны в Таблице 1 .



Таблица1 Основные виды переменных
|Тип данных               |Размер        |Диапазон значений        |
|Integer (Целое)          |2 байта       |от -32 768 до 32 767     |
|Long Integer (Длинное    |4 байта       |от -2 147 483 648 до 2   |
|целое)                   |              |147 483 647              |
|Single - precision       |4 байтa       |от -3.402823E38 до       |
|Floating point (Одинарной|              |3.402823E38              |
|точности с плавающей     |              |                         |
|десятичной точкой)       |              |                         |
|Double - precision       |8 байт        |от -1.79769313486232D308 |
|Floating point (Двойной  |              |до 1.79769313486232D308  |
|точности с плавающей     |              |                         |
|десятичной точкой)       |              |                         |
|Currency (Денежные       |8 байт        |от -922337203685477.5808 |
|единицы)                 |              |до 922337203685477.5807  |
|String (Строка)          |1 байт на     |от 0 до 65 535 символов  |
|                         |символ        |                         |
|Boolean (Логический)     |2 байт        |True (Истина) или False  |
|                         |              |(Ложь)                   |
|Date (Дата)              |8 байт        |от January (Январь)1,    |
|                         |              |100, до December         |
|                         |              |(Декабрь) 31, 9999       |
|Variant (Вариант)        |16 байт (для  |для всех  типов данных   |
|                         |чисел); 22    |                         |
|                         |байт на символ|                         |
|                         |(для строк)   |                         |



 Описание разработанной программы, области применения, методы использования.


   Набор процедур, включенных в эту курсовую, был специально создан для
сайта THE TECH REPUBLIC (www.techrepublic.com).
   Этот набор процедур разработан для считывания данных из Гостевой книги,
созданной в приложении FrontPage, в однотабличную базу данных, созданную в
приложении Access.

    При работе с Гостевой книгой очень удобно использовать этот набор
процедур.
   Сейчас очень широко используется Интернет. Существует огромное
количество сайтов, на которых очень часто можно встретить страничку с
Гостевой книгой. Там можно не только просто зарегистрироваться, заполнив
необходимые формы, но и оставить свой комментарии по тому или иному
вопросу, подписаться на всевозможные электронные журналы и газеты и многое
другое.

   Рассматриваемый набор процедур работает с простой Гостевой книгой.
Увидеть эту страничку и зарегистрироваться вы можете по адресу-
 http:// univers/college/students/emel/main.htm

Эта Гостевая книга была создана в приложении FrontPage. Это – новое
приложение расширенного пакета Microsoft Office2000. Сейчас в этом
приложении создавать веб-узлы стало еще проще. Приложения пакета Office
2000 и FrontPage 2000 используют общие панели инструментов, темы, меню, а
также некоторые инструментальные средства, такие как фоновая проверка
орфографии и "Формат по образцу" (Format Painter). FrontPage 2000 также
упрощает использование форм и баз данных на веб-узлах.

 FrontPage 2000 обеспечивает разработчиков веб-узлов простыми и мощными
инструментальными средствами. FrontPage не изменяет импортированный код
HTML и дает пользователям возможность самостоятельно настраивать его
форматирование. Работая в режиме редактирования HTML, пользователи могут
ускорить процесс создание страниц, используя кнопки и элементы меню.

 FrontPage 2000 облегчает совместную работу. Пользователи приложений пакета
Microsoft Office могут сохранять документы непосредственно на веб-узлах,
созданных с помощью FrontPage, а система резервирования документов и отчеты
по проекту помогают осуществлять совместную работу над веб-страницами.

FrontPage 2000 прост в обслуживании и эксплуатации. В нем используется та
же программа установки, что и в приложениях Microsoft Office. Эта программа
позволяет производить установку по требованию, запускать приложения с
сервера и восстанавливать программное обеспечение.

Гостевые книги используются в разнообразных целях, на пример для получения
статистических данных или для создания базы данных пользователей этого
сайта. Для создания такой базы данных и был создан данный набор процедур,
который считывает данные Гостевой книги, сохранённые в локальном файле, и
записывает их в базу данных.
В дальнейшем, используя этот набор процедур, можно будет постоянно
обновлять данные в этой базе данных.

Используя в дальнейшем возможности базы данных  приложения Access, можно
создавать различные запросы и отчёты, на пример отчёт о количестве
пользователей сайта за определённый месяц, отчёт по регионам о месте
проживания пользователей сайта и т.д.



  Система обозначений, описание переменных, аргументов функций и процедур и
                                    т.д.

   Для VBA существуют соглашения о наименовании Реддика (RVBA), которые
предоставляют указания по присвоению имён объектам в языке Microsoft Visual
Basic for Applications (VBA). Наличие соглашений необходимо для любого
программного проекта. При использовании соглашений имя объекта несёт в себе
информацию о его назначении. Предлагаемые соглашения стандартизируют
обозначения в сфере  программирования.
  Язык VBA разработан для взаимодействия с базовым приложением, например с
MS Access, Visual Basic, MS Excel, MS Project. Соглашения RVBA применимы ко
всем разработкам на языке VBA, независимо от базового приложения.
  Соглашения RVBA основаны на Венгерской нотации. Цель этой нотации –
лаконичное и эффективное представление информации об объекте в его имени.
   Единственной обязательной частью имени объекта является признак –
короткий набор символов, обычно мнемонический, который указывает тип
объекта. Признак должен состоять из строчных букв и обычно выбирается из
стандартного списка признаков, указанного в Таблице 2

Таблица2  Признаки для переменных VBA


|Признак                          |Типы объекта                     |
|Byt                              |Byte                             |
|F                                |Boolean                          |
|Int                              |Integer                          |
|Sng                              |                          Single |
|Dbl                              |Double                           |
|Cur                              |Currency                         |
|Dtm                              |Date                             |
|Obj                              |Object                           |
|Str                              |String                           |
|Stf                              |String(фиксированной длины)      |
|Var                              |Variant                          |
|Lng                              |Long                             |

В данном наборе процедур используется Венгерская нотация. Все переменные и
объекты имеют в своём имени признак, который соответствует типу этих
переменных и объектов.
   Набор рассматриваемых процедур состоит из двух частей: процедуры
LookForNameStart и процедуры ProcessContact. Перед написанием кода
процедур, оператор Dim объявляет переменные txtobj1 как объект, имеющий
доступ к файловой системе компьютера(Scripting) и считывающий текст файла
потоком(FileStream); strTemp как строковую переменную и  rst1 как
встроенный объект(Recordset) ADO базы данных (см. Рис7)  и выделяет под эти
переменные часть памяти. Объявление переменных до написания самого кода
процедур необходимо для того, чтобы эти переменные были доступны более чем
одной процедуре.
Оператор Sub объявляет тело и имя процедуры LookForNameStart.
Оператор  Dim резервирует часть памяти под переменную fs , которая будет
иметь доступ к системному файлу.
Оператор Set связывает ссылку на новый объект, имеющий доступ к системному
файлу с переменной fs. Также  этот оператор связывает ссылку на новый
объект fs, в котором открывается файл Myformrstl.htm(См.Рис.12) для чтения
( с помощью оператора Open) с диска   F: на локальном компьютере с
объектомt xtobj1. Он также связывает rst1  с новым встроенным объектом ADO
базы данных. Потом в объекте rst1 открывается таблица “tblContacts” в
текущем проекте CurrentProject.Connection.
Цикл Do Until … Loop выполняется до тех пор пока не будет найдена строка,
которая находится прямо перед строкой “X_FirstName”. Для этого используется
ещё один цикл If …Then … Else … End If, который проверяет является ли
читаемая строка txtobj1.ReadLine  файла Myformrstl.htm строкой “
X_FirstName ”. Это осуществляется при помощи функции InStr , которая
возвращает позицию искомой строки “X_FirstName”. И если она является
таковой, то выполняется вторая процедура ProcessContact нашего проекта,
если же нет – то продолжается цикл Do ... Loop.
Для очистки ресурсов используется метод Close для объектов txtobj1и rst1 и
оператор Set, который ссылается на пустые объекты txtobj1 и rst1.
Для заполнения таблицы “tblContacts” в базе данных была создана процедура
ProcessContact.
Оператор On … GoTo в случае ошибки заставляет перепрыгивать программу на
строку MyErrorTrap.
Оператор  Dim объявляет переменные strFname, strLname, strCName, strSt1,
strSt2, strCity, strRegion, strPostalCode, strCountry, strEmailAddr как
строковые переменные; intFirst и intLen как числовые переменные и cmd1  как
встроенный объект ADO базы банных.
С помощью цикла If …Then … Else … End If в этой процедуре проверяются
строки с введёнными данными из Гостевой книги, которые сохранены в файле
Myformrstl.htm.  Цикл If …Then … Else … End If с помощью функции InStr
проверяет наличие в строке специального знака “ ” и если его нет, то
присваевает переменной intFirst номер позиции символа + 1, с которого будет
производиться запись. Затем переменной intLen присваевается значение длины
записи, т.е. сколько символов будет записано – 1. Переменным strFName и
strLName присваиваются значения с помощью функций Ucase, Lcase и Mid
символа с большой буквы под номером, который присвоен переменной intFirst
строки strTemp и символов, с номерами, следующими за intFirst из той же
строки, длиной intLen – 1. Если условие не выполняется то строка остаётся
пустой.
По такому же принципу переменным strCName, strSt1 и strSt2 присваиваются
значения, но при этом вместо функций Ucase, Lcase исползуется функция
CleanText, которая создана в этом пpоекте. Она убирает все лишние символы
из строки.
В присвоении переменным strCity, strRegion, strPostalCode, strCountry,
strEmailAddr используются практически те же способы, но вместо цикла If
…Then … Else … End If применяется упрощённый  цикл, который записывается в
одну строку If …Then. И он поверял лишь наличие спецсимволов в очередной
строке, и если они ести то Эти переменные остаются пустыми.Также здесь
используется только функция Mid и функции Left для strRegion, которая
возвращает определённое количество символов с начала строки.
Метод SkipLine объекта txtobj1 пропускает строку.
Для отладки программы используется объект Debug со свойством Print.
 Результаты работы процедур появляются в окне отладки.
Далее все считанные данные будут пооследовательно вписана в таблицу
tblContacts нашей базы данных.
Процедура проверяет пустые или нет переменные strFName , strLName  и
strEmailAddr если нет, то она использует оператор With для объекта rst1 для
заполнения полей таблицы, проверяя наличие записи в каждой строковой
переменной нашей процедуры.
Метка MyExit в нашей процедуре означает, что после выполнения цикла
процедура заканчивает работу.
 Каждая стандартная ошибка имеет свой номер. При ошибке – 214721887 объект
cmd1 ссылается на новый встроенный объект ADO базы данных и с помощью
оператора With связывается с текущим проектом, меняет некоторые свойства
этого объекта,  выполняет их и за оператором With следует функция
восстановления Resume,т.е. запускается с самого начала Sub
LookForNameStart. Если же номер ошибки другой , то в окне отладки
появляется номер и описание этой ошибки и программа возвращается к метке
MyExit.
Функция CleanText убирает специальные символы с помощью функции Replace.



    Экранные копии этапов разработки с разъяснениями каждого изображения.
Для выполнения этого проекта необходимо было установить приложение
MSFrontPage, который находится в пакете MSOffice2000. Его установочный
пакет находится на компьютере User7  нашей локальной сети. При запуске
установочного файла мы выбираем “add or remove Features”(См. Рис.1)

[pic]

                 Рис.1
Затем мы выбрали FrontPage в списке и дали команду на
установление.(См.Рис.2 и Рис.3)
С помощью FrontPage Wizard я создал Гостевую книгу (см.Рис.4), которую
потом установили на сервере нашей локальной сети. Получив файл с данными,
полученными через эту Гостевую книгу, я приступил к выполнению второй части
проекта: создание однотабличной базы данных и написанию кода процедур.
Частью любого проекта VBA является набор ссылок на библиотеку типов всех
компонентов IDE, которые применяются в данном проекте. Простые проекты
содержат небольшое количество ссылок,которые применяются VBA, интерфейсом
автоматизации и базовым приложением. Ссылками можно управлять интерактивно
посредствам диалогового окна ССылки(См.Рис.5) или програмным путём,
посредствам Rferences класса VBProject.
[pic]

                Рис.2

[pic]

                Рис.3


                                 Guest Book

                        Welcome to my first web page
                                 Top of Form
        Please enter your private information:
|First Name  |[pic]                 |
|Last Name   |[pic]                 |
|Organization|[pic]                 |
|Street      |[pic]                 |
|Address     |                      |
|Address     |[pic]                 |
|(cont.)     |                      |
|City        |[pic]                 |
|State/Provin|[pic]                 |
|ce          |                      |
|Zip/Postal  |[pic]                 |
|Code        |                      |
|Country     |[pic]                 |
|E-mail      |[pic]                 |


[pic]   [pic]
                               Bottom of Form

                        Author information goes here.

          Copyright © 2000 Sergheev Alexander. All rights reserved.

                                  Revised:


            Рис.4



Затем я создал однотабличную базу данных и подключил несколько библиотек,
необходимых для работы проекта.(См. Рис.5 и Рис.6)
Следующий этап разработки - написание кода(См.Рис.7) Затем отладка
процедур.
Так как у создателей этого набора процедур, по-видимому, была несколько
другая Гостевая книга, то мне пришлось внести некоторые изменения в код
процедур: поменять адрес файла, с которого считываются данные, изменить имя
первой строки этого файла и отменить несколько команд – “пропустить
строку”(См. Рис.7 - 11).
Как показано на рисунке 8 программа не работала, т.к. не находил
необходимый файл. При этом появляется диалоговое окно с указанием номера
ошибки и её описанием (См.Рис.9)



                                                                [pic]


                                                                    Рис.5

[pic]

Рис.6



[pic]

                                             Рис.7

[pic]

                                           Рис.8



[pic]

                 Рис.9



[pic]

                                  Рис.10



[pic]

                                 Рис.11


[pic]
X_FirstName:
      Sasha
X_LastName:
      Sergheev
X_Organization:
      College
X_WorkAddress:
      A Russso 1
X_Address2:
      A Russo 1
X_City:
      Chishinev
X_State:
      Moldova
X_ZipCode:
      22222222
X_Country:
      Moldova
X_Email:
      sergheev@mail.md

                                       Рис.12



Тексты программ в виде текстового файла и описание их подключения к системе
MSOffice


'Объявите переменные глобально, так чтобы  они были доступны больше чем
одной ‘процедуре;
' Txtobj1 и объекты fs требуют ссылки на библиотеку Microsoft Scripting
RunTime

Dim txtobj1 As Scripting.TextStream

Dim strTemp As String

Dim rst1 As ADODB.Recordset
Sub LookForNameStart()

Dim fs As Scripting.FileSystemObject


' Формируйте ссылку к системе файла, и используйте это, чтобы 'открыть
текстовый ‘объект, основанный
' на локальном файле, который содержит регистр Гостевой книги


Set fs = New Scripting.FileSystemObject

Set txtobj1 = fs.OpenTextFile (“ F:\formrslt.htm", ForReading)



' Откройте recordset на tblContacts таблице

Set rst1 = New ADODB.Recordset

rst1.Open "tblContacts", CurrentProject.Connection, adOpenKeyset,_
adLockOptimistic



' Пройти цикл через текстовый объект для нахождения линии как раз ‘перед
‘FirstName  полем

Do Until txtobj1.AtEndOfStream

    strTemp = txtobj1.ReadLine

    If InStr(1, strTemp, "X_FirstName")   <> 0 Then

    ProcessContact

    End If

Loop



‘Очистить ресурсы


rst1.Close

Set rst1 = Nothing

txtobj1.Close

Set txtobj1 = Nothing

Set fs = Nothing

End Sub



Sub ProcessContact()

On Error GoTo MyErrorTrap

Dim strFname As String

Dim strLname As String

Dim strCname As String

Dim strSt1 As String

Dim strSt2 As String

Dim strCity As String

Dim strRegion As String

Dim strPostalCode As String

Dim strCountry As String

Dim strEmailAddr As String

Dim intFirst As Integer

Dim intLen As Integer

Dim cmd1 As ADODB.Command


’Извлечь First Name в нужном регистре

strTemp = txtobj1.ReadLine

If InStr(1, strTemp, " ") = 0 Then

    intFirst = InStr(1, strTemp, ">") + 1

    intLen = InStr(InStr(1, strTemp, ">"),  strTemp, "<") - intFirst

    strFname = UCase(Mid(strTemp, intFirst, 1)) &_
    LCase(Mid(strTemp, intFirst + 1, intLen - 1))

Else

    strFname = ""

End If


’Извлечь Last Name в нужном регистре


txtobj1.SkipLine

strTemp = txtobj1.ReadLine

If InStr(1, strTemp, " ") = 0 Then

    intFirst = InStr(1, strTemp, ">") + 1

    intLen = InStr(InStr(1, strTemp, ">"), strTemp, "<") - intFirst

    strLname = UCase(Mid(strTemp, intFirst, 1)) & _

        LCase(Mid(strTemp, intFirst + 1, intLen - 1))

Else

    strLname = ""

End If


’Извлечь Organization Name в любом регистре


txtobj1.SkipLine

’txtobj1.SkipLine

’txtobj1.SkipLine

strTemp = txtobj1.ReadLine

If InStr(1, strTemp, " ") = 0 Then

    intFirst = InStr(1, strTemp, ">") + 1

    intLen = InStr(InStr(1, strTemp, ">"), strTemp, "<") - intFirst

    strCname = CleanText(Mid(strTemp,  intFirst, intLen))

Else

    strCname = ""

End If


’Извлечь строки с первым и вторым адресами


txtobj1.SkipLine

strTemp = txtobj1.ReadLine

If InStr(1, strTemp, " ") = 0 Then

    intFirst = InStr(1, strTemp, ">") + 1

    intLen = InStr(InStr(1, strTemp, ">"), strTemp, "<") - intFirst

    strSt1 = CleanText(Mid(strTemp, intFirst,  intLen))

Else

    strSt1 = ""

End If

txtobj1.SkipLine

strTemp = txtobj1.ReadLine

If InStr(1, strTemp, " ") = 0 Then

    intFirst = InStr(1, strTemp, ">") + 1

    intLen = InStr(InStr(1, strTemp, ">"),  strTemp, "<") - intFirst

    strSt2 = CleanText(Mid(strTemp,  intFirst, intLen))

Else

    strSt2 = ""

End If


’Извлечь City, Region, Postal Code, and Country


txtobj1.SkipLine

strTemp = txtobj1.ReadLine

intFirst = InStr(1, strTemp, ">") + 1

intLen = InStr(InStr(1, strTemp, ">"), strTemp, "<") - intFirst

strCity = Mid(strTemp, intFirst, intLen)

If strCity = " " Then strCity = ""

txtobj1.SkipLine

strTemp = txtobj1.ReadLine

intFirst = InStr(1, strTemp, ">") + 1

intLen = InStr(InStr(1, strTemp, ">"), strTemp, "<") - intFirst

strRegion = Left(Mid(strTemp, intFirst, intLen), 20)

If strRegion = " " Then strRegion = ""

txtobj1.SkipLine

strTemp = txtobj1.ReadLine

intFirst = InStr(1, strTemp, ">") + 1

intLen = InStr(InStr(1, strTemp, ">"), strTemp, "<") - intFirst

strPostalCode = Mid(strTemp, intFirst, intLen)

If strPostalCode = " " Then strPostalCode = ""

txtobj1.SkipLine

strTemp = txtobj1.ReadLine

intFirst = InStr(1, strTemp, ">") + 1

intLen = InStr(InStr(1, strTemp, ">"), strTemp, "<") - intFirst

strCountry = Mid(strTemp, intFirst, intLen)

If strCountry = " " Then strCountry = ""


’Извлечь  Email address ; Использовать как строкe в VBA proc, но это
добавляется к ‘таблице как гиперсвязь

txtobj1.SkipLine

txtobj1.SkipLine

txtobj1.SkipLine

strTemp = txtobj1.ReadLine

intFirst = InStr(1, strTemp, ">") + 1

intLen = InStr(InStr(1, strTemp, ">"), strTemp, "<") - intFirst

strEmailAddr = Mid(strTemp, intFirst, intLen)

If strEmailAddr = " " Then strEmailAddr = ""


' Используйте этот набор печати для отладки целей

'Debug.Print

'Debug.Print strFname & " " & strLname

'Debug.Print strCname

'Debug.Print strSt1

'Debug.Print strSt2

'Debug.Print strCity & ", "; strRegion & " " & strPostalCode

'Debug.Print strCountry

'Debug.Print strEmailAddr


' Добавьте запись, если это имеет допустимый первичный ключ- клавишу
If strFname <> _

"" And strLname <> "" And strEmailAddr <> "" Then

    With rst1

        .AddNew

        If strFname <> _

            "" Then .Fields("FirstName") =  strFname

        If strLname <> "" Then .Fields("LastName") =  strLname

        If strCname <> "" Then .Fields("CompanyName") = strCname

        If strSt1       <>  "" Then .Fields("Address") =  strSt1

        If strSt2       <>  "" Then .Fields("Address1") =  strSt2

        If strCity      <> "" Then .Fields("City") =  strCity

        If strRegion <>  "" Then .Fields("StateOrProvince") = strRegion

        If strPostalCode <> "" Then .Fields("PostalCode") = strPostalCode

        If strCountry <>  "" Then .Fields("Country") =  strCountry

        If strEmailAddr <>  "" Then .Fields("EMailName") = strEmailAddr

        .Update

    End With

End If


MyExit:

Exit Sub


MyErrorTrap:

If Err.Number = -2147217887 Then


'Перехватчик дублирует ключевую ошибку и заменяет запись

    Set cmd1 = New ADODB.Command

    With cmd1

        .ActiveConnection = CurrentProject.Connection

        .CommandText = "DELETE * " & "FROM tblContacts " & _

            "WHERE tblContacts.EMailName " &  "= '" & strEmailAddr & "'"

        .CommandType = adCmdText

        .Execute

    End With

    Resume

Else

    Debug.Print Err.Number; Err.Description

    Resume MyExit

End If


End Sub
Function CleanText(strText As String)


' Замените специальные символы HTML типа & with & и " with "

CleanText = Replace(strText, "&", "&")

CleanText = Replace(CleanText, """, """")


End Function
Как описывалось выше этот набор процедур используется в приложении Access,
для считывания данных с файла с расширением html. В этом файле хранятся
данные о пользователях Гостевой книги.



                          Заключение и библиография


В результате этой работы я ознакомился с приложением MSFrontPage  и узнал о
новых возможностях MSOffice2000. Также я узнал много нового о приложении
Access.
В процессе разработки проекта я много времени уделял работе в Internet.
Огромное количество сайтов для людей, которые интересуются
программированием на VBA.
В работе над этим проектом использовались материалы сайтов:
   1. www.vbrussian.com - сайт на русском языке. Включает в себя большое
      количество статей, примеров, кодов, ActiveX для специалистов и
      начинающих в области программирования на VBA.
   2. www.microsoft.com - сайт на русском языке. Рассказывает  о новых
      достижениях корпорации Microsoft: новая операционная система
      Windows2000, пакет приложений MSOffice2000  и многое другое.
   3. www.devx.com - сайт на английском языке. Он является путеводителем
      для программистов, использующих различные языки программирования.
   4. www.VBPJ.com -  сайт на английском языке. Это журнал в котором
      печатаются статьи с новыми разработками в области программирования на
      VBA.

 Также в работе над проектом использовались книги:
   1. “Программирование в Microsoft Office” К.Гетц, М.Джильберт,(BHV, Киев
      1999г.)
   2. “Информационные технологии” Ю. Шафрин (Лаборатория базовых знаний,
      Москва 1999г.)
   3. “использование Visual Basic 6” Б.Сайлер Д. Спотс (Издательский дом
      «Вильямс», Москва – Санкт-Петербург – Киев 1999г.)





смотреть на рефераты похожие на "Считывание данных из гостевой книги в таблицу"