Считывание данных из гостевой книги
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
?я CleanText убирает специальные символы с помощью функции Replace.
Экранные копии этапов разработки с разъяснениями каждого изображения.
Для выполнения этого проекта необходимо было установить приложение MSFrontPage, который находится в пакете MSOffice2000. Его установочный пакет находится на компьютере User7 нашей локальной сети. При запуске установочного файла мы выбираем “add or remove Features”(См. Рис.1)
Рис.1
Затем мы выбрали FrontPage в списке и дали команду на установление.(См.Рис.2 и Рис.3)
С помощью FrontPage Wizard я создал Гостевую книгу (см.Рис.4), которую потом установили на сервере нашей локальной сети. Получив файл с данными, полученными через эту Гостевую книгу, я приступил к выполнению второй части проекта: создание однотабличной базы данных и написанию кода процедур.
Частью любого проекта VBA является набор ссылок на библиотеку типов всех компонентов IDE, которые применяются в данном проекте. Простые проекты содержат небольшое количество ссылок, которые применяются VBA, интерфейсом автоматизации и базовым приложением. Ссылками можно управлять интерактивно посредствам диалогового окна Ссылки(См.Рис.5) или программным путём, посредствам Rferences класса VBProject.
Рис.2
Рис.3
Guest Book
Welcome to my first web page
Please enter your private information:
First NameLast NameOrganizationStreet AddressAddress (cont.)CityState/ProvinceZip/Postal CodeCountryE-mail
Bottom of Form
Рис.4
Затем я создал однотабличную базу данных и подключил несколько библиотек, необходимых для работы проекта.(См. Рис.5 и Рис.6)
Следующий этап разработки - написание кода(См.Рис.7) Затем отладка процедур.
Так как у создателей этого набора процедур, по-видимому, была несколько другая Гостевая книга, то мне пришлось внести некоторые изменения в код процедур: поменять адрес файла, с которого считываются данные, изменить имя первой строки этого файла и отменить несколько команд “пропустить строку”(См. Рис.7 - 11).
Как показано на рисунке 8 программа не работала, т.к. не находил необходимый файл. При этом появляется диалоговое окно с указанием номера ошибки и её описанием (См.Рис.9)
Рис.5
Рис.6
Рис.7
Рис.8
Рис.9
Рис.10
Рис.11
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
&nbs