Курс лекций по V B 5.0Рефераты >> Программирование и компьютеры >> Курс лекций по V B 5.0
Set rstNew = dbs.OpenRecordSet(“Customers”, dbs.Open RecordSet),
где rstNew - переменная, dbs.OpenRecordSet(“Customers”, dbs.Open RecordSet) - ссылка на объект, возвращаемый методом OpenRecordSet.
Этот метод доступен не толко для объекта Database, но и Connection, TableDef, QueryDef и существующих наборов RecordSet.
Set rstNew = qdf.OpenRecordSet
Например, создается объект RecordSet из сохраненного в текущей БД запроса.
Dim dbs As Database, Rst As RecordSet
Set dbs=OpenDatabase (“Nwind.mdb”
[ Set rst = dbs.OpenRecordSet (“Сохраняет_Запрос”)]
или если сохранение запроса не существует
Dim strQuerySQL As String
Set dbs=OpenDatabase ( .
StrQuerySQL=“Select * From Products”_ & “Order by ProductName”
Set rst=dbs.OpenRecordSet (strQuerySQL)
Перемещение по набору записей
Методы MoveFirst, MoveLast, MoveNext, MovePrevious - перемещает указатель.
Move [n]
Переделы набора записей определяется свойствами BOF и EOF, количество записей свойством - RecordCount.
Найти определенную запись в наборе можно с помощью метода Seek (для Table) и Find (dynaset, snapshop): FindFirst, FindLast, FindNext, FindPrevious.
Например
rstOrderDetails.Find “Order ID= ” & rstOrders.[Order ID] - для первой записи в Orders найти запись в OrderDetails
rst Suppliers.Index=“CompanyName”
rst Suppliers.Seek “=” str CompanyNAme
If rst Suppliers. NoMatch Then .
(используется текущий индекс таблицы, определенной свойством Index). Свойство NoMatch используется для проверки найденной записи, критерий поиска.
После создания объекта RecordSet типа table или dynaset в переменной можно удавлять или добавлять, модифицировать новые записи (Update, Delete, AddNew).
модификации намного эффективнее с помощью запросов SQL.
Dim dbs As DataBAse, qdfChangeTitles As QueryDef
Set dbs = Open Database (‘ Nwind.mbb)
Set qdfChangeTitles=dbs.Create QueryDef (“ “)
qdf ChangeTitles.SQL=“Update Employers” & “Where Title = ‘Бухг’”
После извлечения записи можно обращаться к ее отдельным полям через коллекцию Fields объекта RecordSet по его свойству Name (имя столбца в таблицк)
rst Employers.Fields (“LastName”)
или rstEm.LastName
или rstEm.Fields(0) - индексом в коллеции
Типы данных объекта Field: dbChar, bdByte, dbDouble, dbInteger, dbSingle, dbLong, dbText.
При работе с данными Field используется его свойство Value.
Sub Change Title( )
rstEmployces.LastName.Value=strName
Dim dbsSales As Database
Dim rstEmp As RecordSet, fldTitle As Field
Dim wspCurrent As WorkSpace
Set wspCurrent As WorkSpace
Set wspCurrent=dbEngine WorkSpace(0)
Set dbsSales=OpenDatabnase (“Nwind.mdb”
Set rstEmp=dbsSales.Open RecordSet(“Employes”, dbOpenTable)
Set fldTitle=rstEmp.Fields(“Title”)
rst Emp.MoveFirst
Do Until rstEmp.EOF
If fldTitle=“Ком. предст.” Then
rstEmp.Edit
fldTitle=“Ком. агент”
rstEmp.Update
End If
rstEmp.MoveNext
Loop
rstEmp.Close
dbsSales.Close
End Sub
Создание запросов
Методв CreateQueryDef:
Set запрос = БД.CreateQueryDef ([имя] [, строка SQL])
- запрос - объектная переменная, в которых будет храниться ссылка на вновь создаваемый объект типа QueryDef
- БД - объектная переменная, хранящая ссылку на объект Database, в коором будет храниться создаваемый объект QueryDef
- имя - имя запроса
- строка SQL - выражение SQL, . объект QueryDef
Например,
Dim dbs As Database
Dim myqdf As QueryDef
SQL str = “Select * From Products”
SQL str = SQl str & “Where price >1000 and price <2000”
SQL str = SQL str “Order by ProductName”
Set myqdf = dbs Create QueryDef (“NewProducts”, SQL str)
Связь с другими приложениями Windows
VB позволяет использовать многозадачность Windows, позволяя активировать любое из заданных приложений, либо посылать напрямую команды активному приложению из проекта VB. Обмен информацией между приложениями Windows средствами VB осуществляется одним из трех способов:
1) использование буфера обмена Clipboard;
2) технологии DDE - динамический обмен данных;
3) технологии OLE - связывание и встраивание объектов.
Буфер обмена
Буфер обмена позволяет обмениваться текстовыми и графическими данными между несколькими приложениями с помощью операций вырезки - вставки.
Методы объекта Clipboard
Метод Clear - очищает буфер обмена перед его использованием, Clipboard.Clear
Метод SetText - посылает текстовую информацию, содержащуюся в строковой переменной или строковом выражении в буфер, уничтожая старую информацию.
Clipboard.SetText.StringData
Метод GetText - возвращает копию текста, хранящегося в буфере обмена (операция вставки). Этот метод используется как обычная функция:
txtUser.SelText= Clipboard.GetText( ) - вставляет содержимое буфера в текстовое поле.
При работе с буфером обмена и полями ввода используются операции выделения текста. Выделенному тексту присущи три свойства:
SelStart - номер позиции текста, с которой начинается выделение.
txt.User.SelStart = 0 - выделение текста с начала поля ввода.
SelLength - количество символов в выделенном фрагменте текста.
txtUser. SelLength = Len (txt.User.Text) - выделены все символы поля ввода.
SelText - выделенный фрагмент текста. Если текст не выделен, то = “ “
A$ = txtUser.SelText - переменная A$ примет значение выделенной строки.
Пример. Процедура копирования в буфер выделенного текста
Private Sub Copy_Click ()
Clipboard.SetText txtUser.SelText
Enb Sub
Операция вырезать:
Private Sub Cut_Click
Clipboard.SetText txtUser.SelText
txtUser.SelText = “ ”
Enb Sub
Операция вставки:
Private Sub Paste_Click
txtUser.Text = Clipboard.GetText( )
Enb Sub
Перенос графических изображений с помощью буфера обмена.
Чтобы правильно восстановить графическое изображение из буфера обмена, VB должен знать его тип.
Таблица типов данных буфера.
Символьные константы |
Значение |
Формат |
VbCFText |
1 |
текст .txt |
VbCFBitmap |
2 |
побитовое изображение .bmp |
VbCFMetafile |
3 |
побитовое изображение .wmf |
VbCFDib |
8 |
побитовое изображение .dib |
VbCFPalette |
9 |
цветовая палитра |