В окне свойств первого объекта управления данными установите свойство DataBaseName как имя базы данных FRIENDS.MDB с указанием полного пути к файлу. Затем установите свойство RecordSource как PERSON. Использование кнопок со стрелками этого объекта управления даст возможность пользователю перемещаться от записи к записи в таблице PERSON. У второго объекта управления данными установите свойство DataBaseName аналогичным образом и определите источник записей как следующий SQL-запрос:
SELECT Idwork, Office FROM WORKPLACE ORDER BY Id_work.
В результате выполнения этого запроса будет создан набор записей, содержащий значения полей Id work и Office, и упорядоченный по полю Id work. В принципе, второй объект управления данными можно сделать невидимым, установив его свойство Visible в False, так как для работы нам потребуется только созданный им набор записей.
Определите свойства меток, текстовых окон, списка и комбинированного окна следующим образом:
Label1.Caption=Имя
Label2.Caption=Фамилия
Label3.Caption=Идентификатор места работы
Label4.Caption=Обновление места работы
Text1.DataSource=Data1
Text1.DataField=Name
Text2.DataSource=Data1
Text2.DataField=LastName
Text3.DataSource=Data1
Text3.DataField= Idwork
DBList1.RowSource=Data2
DBList1.ListField=Office
DBList1.DataSource=Data1
DBList1.DataField=Id_work
DBList1.BoundColumn=ID_work
DBCombo1.RowSource=Data2
DBCombo1.ListField=Office
DBCombo1.DataSource=Data1
DBCombo1.DataField= Idwork
DBCombo1.BoundColumn=ID_work
Сохраните и запустите проект (рис. 8.12). В связанных текстовых окнах на экранной форме будет отображаться содержимое полей Name, LastName и Id work из таблицы PERSON. Список и комбинированное окно заполнятся названиями мест работы из таблицы WORKPLACE, причем место работы человека, определенного содержимым текстовых окон, будет выделено в списке подсветкой. Перемещением по набору записей с помощью первого объекта управления данными установите указатель на запись, где вы хотите обновить место работы. Из списка или комбинированного окна выберите требуемое значение и нажмите какую-либо кнопку на первом объекте управления данными, чтобы переместить указатель текущей записи и произвести обновление данных. Теперь верните указатель на ту же запись и убедитесь что информация о месте работы изменена в соответствие со сделанным выбором.
Рис. 8.12.
Урок 9
Сетка (MSFIexGrid) и улучшенное текстовое окно (RichTextBox)
ActiveX объект MSFIexGrid может применяться для отображения на экранной форме данных, представленных в табличном виде. Если сетка MSFIexGrid связана с базой данных, то данные используются в режиме только для чтения. Это значит, что вы можете проводить операции над содержимым ячеек таблицы, например, сложение, умножение, сравнение, слияние строк, вывод результатов в ячейки, но не можете обновить данные в базе данных. Для установки связи сетки MSFIexGrid с данными используется свойство DataSource, которое определяется как имя соответствующего объекта управления данными.
Чтобы добавить объект MSFIexGrid на панель инструментов, выполните команду меню Project — > Components и выберите из списка элементов управления (Controls) Microsoft FlexGrid Control и затем нажмите кнопку ОК.
После этого на панели инструментов появится новая пиктограмма -
Свойства Row и Col объекта MSFIexGrid определяют положение текущей ячейки. Содержимое текущей ячейки доступно через свойство Text, то есть данные в таблице хранятся в текстовом виде. Этот факт не доставляет много хлопот, так как в Visual Basic есть функции преобразования строки в число и обратно. Если в ячейку требуется занести число, то необходимо использовать функцию преобразования числа в строку CStr, например:
MSFlexGrid1.Text=CStr(sum).
С другой стороны, при извлечении числа из текстового содержимого ячейки можно использовать функцию Val, например:
sum=sum + Val(MSFlexGrid1.Тext)
Свойства Rows и Cols позволяют определить количество строк и столбцов в сетке. Наличие заголовков у строк и столбцов можно установить с помощью свойств FixedRows и FixedCols. Содержимое заголовков определяется свойством FormatString. Например, следующей пример показывает, как установить заголовки столбцов сетки: