Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Вопросы к экзамену  [new]
NordFox
Guest
Доброго всем времени суток. Намечается быть экзамен, к нему выдали список практических которые приведены ниже. Если кому интересно и есть желание помочь можете по разбираться . С удовольствием посмотрю ответы. Ответы можете кидать на ящик NordFox@rambler.ru С уважением ко всем.
Практические
1.. Оптимизировать программный код по скорости выполнения. Использовать методы объекта Recordset.
Dim НаборЗаписей As DAO.Recordset
Dim ЗначениеПоля As String
Dim Флаг As Boolean
• • •
Флаг = False
Set НаборЗаписей = CurrentDb.OpenRecordset ("Запрос!" )
Do Until НаборЗаписей.EOF
If НаборЗаписей! Фамилия = ЗначениеПоля Then Флаг — True
Exit Do
End If
НаборЗаписей.MoveNext
Loop
НаборЗаписей.Close
If Hot Флаг Then MsgBox "Такой фамилии в Базе данных нет!"

2. Добавить в функцию код обработки ошибок. В случае успешного перехода на
следующую или предыдущую запись функция возвращает значение True.
Function Функция (НаборЗаписей As DAO.Recordset, _
Направление As Integer) As Boolean
If Направление > О Then
НаборЗаписей.MoveNext Функция = True
Elself Направление < О Then
НаборЗаписей.MovePrevious Функция = True End If
End Function
3. Определить тело процедуры для записи во все строки набора записей, в выбранное поле, значения ноль. В качестве параметров процедура принимает объект набора записей и имя поля.
Сигнатура процедуры имеет вид
Sub Процедура (НаборЗаписей As DAO,Recordset, ИмяПоля As String)

4. Определить назначение функции. Сделать словесное описание алгоритма.
Function Функция {НаборЗаписей As DAO.Recordset) As Boolean
Dim Поле As DAO.Field
Dim i As Byte
For Each Поле In НаборЗаписей.Fields
For i = 1 To len (Поле)
If Not Mid (Поле, i, 1) Like "[а-я]" Then
Exit Function
Next
Next
Функция = True
End Function
5. Записать в модуле формы Microsoft Access процедуру обновления данных формы,
включив в нее код обработки ошибок.
6. Microsoft Word. Записать макрос, форматирующий шрифт первых букв предложений в тексте текущего документа. Формат шрифта - полужирный курсив, цвет - красный.
7. Microsoft Word. Записать функцию, возвращающую строку со значением самого длинного слова в тексте текущего документа.
8. В первой строке на активном листе текущей книги Microsoft Excel установить для ячеек, содержащих числовые данные, формат: цвет заливки - желтый, шрифт - синий, полужирный курсив.
9. Определить действие, выполняемое процедурой. Сделать словесное описание алгоритма.
Sub Процедура (Цвет As Byte)
Dim Ячейка As Range
Dim n As Long, m As Long
For Each Ячейка In Selection.Cells
n = WorksheetFunction.Countlf(Selection, Ячейка)
If n > m Then m = n next
For Each Ячейка In Selection.Cells
If Hot IsEmpty(Ячейка) And _
WorksheetFunction.Countlf (Selection, Ячейка) = m Then
Ячейка.Interior.Colorlndex = Цвет
Next
End Sub
10. Сократить количество циклических операторов в программном коде.
Dim i As Long, j As Byte
•••
With Range ("A1:D4")
For i = 1 To .Rows.Count
For j = 1 To .Columns.Count
If IsNumeric(.Cells(i, j)) Then
.Cells(i, j).Interior.ColorIndex = 6
Next
Next
For i - 1 To .Rows.Count
For j = 1 To .Columns.Count
If Not IsNumeric(.Cells(i, j)) Then .Cells(i, j).Interior.Colorlndex = 4
Next
Next
End With
11. Оптимизировать программный код по скорости выполнения и рациональности объема записи строк, используя методы объекта Range.
Dim i As Long, j As Byte
Dim v
• • •
With ActiveSheet.UsedRange.Columns("A")
For i = 1 To .Cells.Count - 1
For j = i + 1 To .Cells.Count
If .Cells(i) > .Cells(j) Then
v = .Cells(i) .Cells(i) = .Cells(j) .Cells(j} = v
End If
Next
Next
Do While IsEmpty(.Cells(1) )
.Cells(l).Delete Shift:=xlUp
Loop
End With


12. Определить функцию для подсчета пустых ячеек диапазона. В качестве параметра функция принимает ссылку на диапазон.
13. Переписать программный код с целью резервирования наименьшего объема оперативной памяти под массив. Назначение массива в коде - сохранение значений ячеек, с дробными числами на занятом диапазоне активного листа.
Dim Массив(99999)
Dim Ячейка As Range
Dim n As Long
...
n - 0
For Each Ячейка In ActiveSheet.UsedRange.Cells
If Not IsEmpty(Ячейка) And IsNumeric(Ячейка) Then
n = n + 1
Массив (n) = Ячейка ♦
End If Next
14. Определять строки программного кода, которые могут вызвать ошибки времени исполнения. Добавить в программу код обработки ошибок. Ячейки диапазона содержат значения любого типа.
Dim Ячейка As Range Dim S As Double
Dim k As Long
...
k = 0 s = 0 For Each Ячейка In ActiveSheet.UsedRange,Cells
S = S+ Ячейка
k = к + 1 Next
S = S / K
15. Записать на языке Visual Basic программный код для объявления переменных
Имя переменной Место Область Вид и тип хранимых данных определения видимости
КлючевоеПоле Модуль Модуль Строковый
Результат Модуль Проект Логический
ДлинаПути Процедура Процедура Длинное целое
Время Функция Фушщия Дата и время
Hour Процедура Процедура Динамический массив с элементами целого типа
16. Записать программный код функции, определяющей максимальный положительный элемент массива.
17. Составить на языке Visual Basic условие, позволяющее определить, является ли значение в переменной х буквой русского или латинского алфавитов.
19. Привести примеры программного кода, предназначенного для:
• объявления динамического массива;
• резервирования памяти под динамический массив;
• изменения размерности динамического массива с сохранением ранее присвоенных значений элементам.
20. Сократить программный код процедуры, используя специальные инструкции языка Visual Basic.
Private Sub Процедура (a () As Byte, k As Byte)
Dim b ( ) As Byte
Dim i AS Long, m As Long, n As Long
m= LBound (a )
n = UBound(a)
ReDim b(m To n)
For i = m To n b(i) = a(i) Next;
n = n - к
ReDim a (m To n)
For i = m To n a(i) = b(i) Next:
End Sub
21. Запрограммировать на языке Visual Basic процедуру для удаления нулевых элементов из числового динамического массива вещественного типа. Массив передается в процедуру в качестве параметра.
22. Записать программный код функции возвращающей среднее арифметическое положительных элементов одномерного динамического массива. Массив передается в функцию в качестве параметра.
23. Определить назначение подпрограммы-процедуры. Составить словесное описание алгоритма.
Option Explicit
Option Base 1
Dim fns(1OOOO) As String Dim k As Long
Private Sub Процедура(sf As Folders)
Dim cf As Folder
Dim fn As File
For Each cf In sf
If cf.SubFolders.Count Then Процедура cf.SubFolders
For Each fn In cf.Files k = k + 1 fns(k) = fn.Name Hext Next End SUB
23 дек 03, 16:02    [471063]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898

Сейчас я на этот NordFox@rambler.ru дистрибутив MSDN пошлю
23 дек 03, 16:07    [471072]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Только я не понял, почему надо заставлять десятки людей делать одно и то же. Может, все-таки достаточно, чтобы кто-то один написал в форум?
23 дек 03, 16:14    [471091]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
SergeySV
Member

Откуда: Москва
Сообщений: 1073
Зашибись просто, никто не хочет просто так погорбатиться...?! а то пожалуйста,

сразу в голову приходит идея взять этот тест и сделать его обязательным для доступа гостей на форум...
23 дек 03, 16:17    [471099]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
Ээээ дарагой, зачем просто так?
Кто хочет погорбатиться - пусть оставляет номер счета, куда деньги переводить
23 дек 03, 16:23    [471125]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
Senin Viktor
Member

Откуда: Подмосковье
Сообщений: 5006
Скока лет прошло до сих пор помню вопрос с экзамена:
"Как рисовать с помощью Windows?"
я плякал...
23 дек 03, 16:47    [471191]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
NordFox
Guest
Для Алексея Козина. Извини не знал, сам не люблю оставлять свой ящик, просто вопросов очень много и засорять форум такой грудой инфы не хотелось.
Остальным. Зря вы так, задания я почти все сделал, которые не сделал сейчас доделаю. Вопросы просто закинул на форум для проверки правелно ли я решил вопросы. У меня почемуто была дурная мысль что комунибудь будет просто интересно вспомнить экзаменационое время и порешать простые задачки.
Извините все!
С почтением NordFox.
24 дек 03, 15:18    [472513]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Почтенный автор вопроса! Я ведь имел в виду простую вещь. Если писать на мыло, то ведь никто не знает, написал ли уже кто-то до него, поэтому все будут писать, не зная друг о друге, тогда как проблема уже решена и писать не нужно.
24 дек 03, 15:29    [472537]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
Почтенный автор ответа!
Как сказал почтенный автор вопроса - проблемы у него уже все (почти все) решены. Так что один хрен людей зря напрягает :)
24 дек 03, 15:59    [472608]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Насчет хрена полностью согласен. Предлагаю свой предыдущий пост в новой редакции:

Мужик, мля, тебе делать нехрен? Или это нам делать нехрен?

P.S. А почему для Алексея Козина? Разве Алексей Козин участвовал в этом топике?
24 дек 03, 16:12    [472640]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
SergeySV
Member

Откуда: Москва
Сообщений: 1073
Наверное он ему уже успел скинул на емайл что-то типа MSDN
24 дек 03, 17:36    [472841]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
Письмо
Guest Доброго всем времени суток. Намечается быть экзамен, к нему выдали список практических которые приведены ниже. Если кому интересно и есть желание помочь можете по разбираться . С удовольствием посмотрю ответы. Ответы можете кидать на ящик NordFox@rambler.ru С уважением ко всем.


Если есть желание получить ответы на свои вопросы то считается уважительным когда задающий вопрос присутствует в форуме а не запрашивает ответ на почту.
24 дек 03, 18:23    [472915]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
NordFox
Guest
Достопочтеные сэры! Насчет зря напрягаю. В вопросе буквально в первой строке написано КОМУ ИНТЕРЕСНО, кому не интересно не напрягайтесь. К тому же напрягаю не зря не могу решить первый и одинадцатый вопросы. Скоро посинею над ними. Еще раз напоминаю КОМУ ИНТЕРЕСНО, кому не интересно ХРЕН с вами :)
С уважением!
25 дек 03, 18:00    [474512]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
Лох Позорный
Member

Откуда:
Сообщений: 9898
Очень интересно :)
Так все-таки хрен с нами? Или с уважением?
25 дек 03, 18:02    [474519]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
по первому вопросу нужно использовать фильтрованный источник данных для запроса. при открытии рекордсета
25 дек 03, 18:02    [474520]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
а в 11
нечто убогое - похожее на сортировку
и удаление строк с пустыми значениями в колонке a
25 дек 03, 18:20    [474549]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
типа п 11 так быстрее


With ActiveSheet.UsedRange.Columns("A")

.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

Do While IsEmpty(.Cells(1))
.Cells(l).Delete Shift:=xlUp
Loop
End With



тока j - byte не покатит
25 дек 03, 18:28    [474558]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
AlexJuice
Member

Откуда: Не от мира сего
Сообщений: 1413
IsEmpty(.Cells(1)) после сортировки вряд ли будет...
25 дек 03, 18:34    [474566]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
AlexJuice
Member

Откуда: Не от мира сего
Сообщений: 1413
Пардон, торможу. Однако что такое DataOption1:=xlSortNormal
Excel2002?
25 дек 03, 18:38    [474572]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
xlSortTextAsNumbers как альтернатива
25 дек 03, 18:49    [474582]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
пропусков после сортировки не будет
а флаг сортировки действительно соответствует алгоритму
xlSortTextAsNumbers

excel 2003
25 дек 03, 18:52    [474585]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683


ActiveSheet.UsedRange.Columns("A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers


25 дек 03, 18:55    [474587]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
CtrlAlt
Member

Откуда:
Сообщений: 437
Сверху пустые ячейки останутся после сортировки если юзать UsedRange, поэтому если просто написать

ActiveSheet.Columns("A").Sort Key1:=Range("A1"), Order1:=xlAscending, _

Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom


То Empty удалять не нужно и можно обойтись одной этой строчкой
25 дек 03, 18:57    [474589]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
2 CtrlAlt

именно это и нужно - нужен аналог п 11 то есть пустые строки должны удалиться только из used а предшествующие - остаться
25 дек 03, 19:04    [474598]     Ответить | Цитировать Сообщить модератору
 Re: Вопросы к экзамену  [new]
CtrlAlt
Member

Откуда:
Сообщений: 437
Да, это я with проглядел...
25 дек 03, 19:06    [474602]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить