![]() |
Практическая работа 28. MSFIexGridDate: 2015-10-07; view: 414. 1. Создать базу данных ACCESS с таблицами, например, student (см. ) и др, сохранить в файле stud.mdb; впоследствие это имя выбирается в стандартном диалоговом окне Open,
2. создать на форме объекты (см. и код, данный ниже): o MSFlexGrid (см. выше), o CommonDialоg: Проект o CommandButton (Name = Command1), o Data (Name = Data1, Connect = Accеss), o ComboBox (Name = Combo1, Style = 0), см. 10.1, o TеxtBox (Name = Text1), 3. ввести код, данный ниже, пояснения даны под комментариями: Private Sub Command1_Click() Dim i As Integer ' очистить свойство объекта CommonDialog, содержащее ' имя базы данных CommonDialog1.FileName = "" ' стартовать CommonDialog CommonDialog1.Action = 1 ' выводится стандартное диалоговое окно Open; ' нужно выбрать требуемую базу данных.
' связать объект Data1 с файлом базы данных, выбранным с ' помощью элемента управления CommonDialog1 Data1.DatabaseName = CommonDialog1.FileName ' обновить содержимое элемента управления Data1 Data1.Refresh
' читать в цикле имена таблиц базы данных и занести ' их в ComboBox (AddItem) For i = 0 To Data1.Database.TableDefs.Count - 1 ' свойство Count определяет количестко элементов Combo1.AddItem (Data1.Database.TableDefs(i).Name) Next i ' после добавления имeн таблиц в ComboBox очистить теку- ' щее значение свойства Text Combo1.Text = ""
' введeнный в текстовое поле строку SQL присвоить ' свойству RecordSource элемента Data1 Data1.RecordSource = Text1.Text ' обновить содержимое Data1. Реализуется запрос, т.к ' свойству RecordSource присвоено значение строки SQL Data1.Refresh
' оставшаяся часть кода может быть заменена ' следующим оператором присваивания: ' MSFlexGrid1.DataSource = Data1 в Окне свойств. Эта ' часть кода нужна лишь для того чтобы пользователь мог ' освоить работу с ячейками MSFlexGrid. ' Свойство MSFlexGrid1.Cols - характеризует количество ' столбцов в сетке; Data1.Recordset.Fields.Count - количество ' столбцов таблицы базы данных, к которой сделан ' SQL-запрос MSFlexGrid1.Cols = Data1.Recordset.Fields.Count ' MSFlexGrid1.Rows - количество строк в сетке ' установить равным 1 MSFlexGrid1.Rows = 1
' в элементе управления MSFlexGrid1 доступ к строкам и ' столбцам проводится начиная с ячейки (0,0), ' свойство TextMatrix(X, Y) позволяет получить доступ ' к отдельным ячейкам таблицы
For i = 0 To Data1.Recordset.Fields.Count - 1 ' занести название имeн полей таблицы базы данных в ' первую строку MSFlexGrid1 MSFlexGrid1.TextMatrix(0, i) = Data1.Recordset.Fields(i).Name Next i
' проверить, является ли запись в таблице (строка) по- ' следней; организовать цикл прохода по строкам Do While Not Data1.Recordset.EOF ' увеличить количество строк в MSFlexGrid на единицу MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
' цикл переноса данных из Data1 в MSFlexGrid1 For i = 0 To Data1.Recordset.Fields.Count - 1 ' перенос данных данной строки (по полям). Если данные в ' ячейке Data1 имеются, то перенести их в ' таблицу MSFlexGrid1 If Not Data1.Recordset.Fields(i) = "" Then MSFlexGrid1.TextMatrix(MSFlexGrid1.Rows - 1, i) = Data1.Recordset.Fields(i) End If ' конец цикла переноса данных из элемента управления Data1 ' в таблицу MSFlexGrid1 для одной строки Next i
' использовать метод MoveNext - переход к ' следующей строке Data1.Recordset.MoveNext Loop End Sub 4. стартовать проект, ввести в текстовое поле SQL-строку (запрос) SELECT * FROM student, сделать щелчок на командной кнопке, в выведенном стандартном диалоговом окне Open выбрать базу данных stud.mdb. В таблицу MSFlexGrid выводятся результаты запроса. Одновременно в список элемента управления ComboBox выводятся имена всех имеющихся таблиц, 5.
6. выбрать таблицу в списке ComboBox, изменить запрос - ввести новый запрос для другой таблицы (ввести этот запрос в текстовое поле), сделать щелчок на командной кнопке, наблюдать результат.
|