гороскоп на сегодня у скорпиона любовный гороскоп совместимости любовный гороскоп на 2017 рак девушка подробнее на этой странице нажмите чтобы увидеть больше ссылка на подробности любовный гороскоп гороскоп совместимости совместимость знаков в любви любовный гороскоп любовный гороскоп гороскоп совместимости парень козерог девушка весы гороскоп совместимость гороскоп на месяц любовный рак гороскоп на след неделю девы любовный гороскоп женщина рыба мужчина весы совместимость гороскоп совместимости он телец она овен совместимость любовный увидеть больше гороскоп дева любовный на сегодня и завтра гороскоп основываясь на этих данных на этой странице гороскоп на совместимость телец и рыбы рак гороскоп весы стрелец совместимость на 2017 год гороскоп ссылка сегодня гороскоп совместимость по гороскопу женщина телец мужчина рак совместимость гороскоп секс гороскоп совместимости читать больше гороскоп любовный на сегодня козерогу гороскоп любовный на завтра для стрельца гороскоп любовный на месяц рыбы женщина совместимость гороскопа лев и овен нажмите для продолжения любовный гороскоп двух львов гороскоп неделю гороскоп стрелец женщина и весы мужчина совместимость в браке гороскоп совместимости весы жен овен муж подробнее на этой странице сексуальный гороскоп близнецы женщин гороскоп совместимости она водолей он телец основываясь на этих данных совместимость по гороскопу близнецы скорпион гороскоп совместимости рак и козерог на 2017 гороскоп козы на 2017 любовный гороскоп на завтра лев любовный женщина одинокая перейти увидеть больше совместимость по гороскопу рыба и дева гороскоп женщины любовный гороскоп скорпиона на 2017 год мужчина гороскоп пифагора совместимости знаков зодиака привожу ссылку любовный гороскоп на рыб сегодня по ссылке гороскоп таблица совместимости по годам сексуальный гороскоп водолея и овна любовный гороскоп на месяц для овнов гороскоп совместимости рыбы женщина и рак мужчина совместимость нажмите чтобы увидеть больше гороскоп совместимости по луне и солнцу вот ссылка гороскоп на совместимость женщина телец любовный гороскоп на месяц весы 2017 гороскоп дева телец совместимость совместимость гороскопов лев скорпион посетить страницу гороскоп совместимости знаков зодиаков таблица фото гороскоп совместимости рыба тигр любовный гороскоп женщина козерог 2017 любовный гороскоп козерог на сегодня женщина любовный гороскоп для девы на сегодня и завтра гороскоп стрелец на завтра женщина любовный составить любовный любовный гороскоп водолей на 2017 гороскоп совместимости по знакам зодиака овен и водолей

Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: час
Вопрос: Маленькие секреты от Кривцова Анатолия

Совет:
Удобные комбинации клавиш:

Ctrl + '(апостроф) - вносится значение элемента из предыдущей записи
Ctrl + Alt + Пробел - вносится значение по умолчанию
Ctrl + ; - вносится текущая дата


Чтобы прочитать значение из несвязанного столбца ListBox или ComboBox используйте ссылку:
Me![Имя].Column(1) - второй столбец выбранной строки
Me![Имя].Column(1,0) - второй столбец первой строки в списке.
Ссылка =Form![Имя].Column(2) может быть использована в DataSource вычисляемого элемента для отображения значения третьего столбца выбранной строки.
Следует напомнить, что все возвращаемые значения - текстовые.


Если в запросе источника строк ListBox или ComboBox есть ссылки на элементы той же формы, то их лучше указывать в виде:

Form![Имя элемента]

Можно смело менять название формы или копировать в подобную форму.


Программное сохранение текущей записи в форме.Самый простой способ - применить метод Refresh, но если базовый запрос имеет поля на базе функций по подмножеству, да еще содержит большое количество записей,
процесс обновления может длиться до неприятного долго.К тому-же обновление данных мультиформы приводит к
перезапросу связанных подформ, а это, даже если и проис ходит быстро, приводит к переходу в первую запись.
Более быстрый способ - применить инструкцию

RunCommand acCmdSaveRecord '(выполнение команды меню)

Примечание:

Прочилал в умной книжке, что если запись не редактировалась - будет ошибка выполнения, и надо предварительно проверять свойство Dirty формы.

Попробовал - молчит.



* Рекомендую всем, кто этого еще не сделал, установить "СервисРелиз 2" (файл Dataacc.exe). Устраняются по меньшей мере следующие дефекты:

Если источником строк связанной подформы является запрос на основе нескольких таблиц, связанных "многие к одному" по цепочке и из промежуточных таблиц не выбираются поля, то набор записей - необновляемый, хотя сам запрос - обновляемый. Только не попадите в засаду, когда ваша вылизанная форма перестанет работать на другом компьютере без SR2.

При работе в многопользовательской среде может возникнуть ситуация, когда при попытке открыть базу выдается сообщение типа "База открыта другим пользователем в монопольном режиме". Обычно причиной этого является наличие файла с тем-же именем и расширением LDB,
который должен удаляться автоматически, но в данном случае этого нет, а базу открыть невозможно.




* Для автоматического добавления значения года при вводе даты в TextBox на форме предлагаю функцию:

Function AutoYearForInputDate() As Boolean
Dim ctl As Control, strText As String, _
strCurYear As String
On Error GoTo AutoYearForInputDate_err

strCurYear = Year(Date)
Set ctl = Screen.ActiveControl
strText = ctl.Text & ""

If strText Like "##.##.__" Then
strText = Left(strText, 6) & Right(strCurYear, 2)
ctl.Text = strText
AutoYearForInputDate = True
End If

AutoYearForInputDate_exit:
Exit Function

AutoYearForInputDate_err:
Resume AutoYearForInputDate_exit
End Function



TextBox должен иметь маску ввода ShortDate.Чтобы функция работала, необходимо по событию OnError
формы вставить код наподобие:

If DataErr = 2279 then
Response = acDataErrContinue
If AutoYearForInputDate Then
Exit Sub
End If
MsgBox "Введено некорректное значение! "
End If

Более правильным решением является создание универсальной функции обработки ошибок, на которую установить ссылки по событию OnError во всех формах, а при желании и из обработчиков ошибок в процедурах.




* Для работы с денежными единицами, где число знаков после запятой не больше 2 предлагаю функцию округления:

Public Function Round_2(anyValue As Variant) As Currency
' Аргументы: Значение типа Variant
' Назначение: Округляет значение до 2 зн. после запятой
' по правилам бухгалтерии.
' Возвращает: Ненулевое значение или 0 формате Currency
Dim dblResult As Double

If Not IsNumeric(anyValue) Then
Round_2 = 0
Exit Function
End If

dblResult = anyValue * 100 + 0.5 * Sgn(anyValue)
Round_2 = Fix(dblResult)/100
End Function

Функция всегда возвращает число(Currency) и может с успехом использоваться для точных вычислений в процедурах или вычисляемых полях.




* При работе с RecordSetClone формы возникают ситуации, когда значения свойств BOF и EOF не соответствуют действительности(Access97).

Например:

Обращаемся к RecordSetClone, затем накладываем фильтр или меняем RecordSource формы так, что нет записей; снова обращаемся к RecordSetClone, и получаем BOF = False и, как следствие - ошибку выполнения. Чтобы застраховаться - можно добавить строку

If Not [Ссылка].BOF Then [Ссылка].MoveFirst

После этого BOF имеет правильное зачение.



* В качестве критерия типа Дата для строки SQL или функции по подмножеству в процедуре можно использовать конструкцию "...=" & CDbl(Дата), т.к. значение даты в базе хранится в виде числа(Double).
Строковый параметр в виде:

"...=" & Chr(34) & Строковый параметр & Chr(34)

смотрится нагляднее, чем нагромождение кавычек.
Нелишним будет напомнить, что кавычки, содержащиеся в тексте параметра должны быть продублированы.

В любом случае предпочтительнее использование временного запроса с параметрами:

Dim dbs As Database, qdf As QueryDef, rst As Recordset
Set dbs = CurrentDB
Set qdf = dbs.CreateQueryDef("")

qdf.SQL= "Parameters .... Select ..."
qdf.Parameters("Начало периода") = Дата1
qdf.Parameters("Минимальная сумма") = Сумма

Set rst = qdf.OpenRecordset

qdf.SQL= "Parameters .... Delete ..."
qdf.Parameters("Конец периода") = Дата2
qdf.Execute

Такая конструкция делает ваш код независимым от региональных установок (формат даты, десятичные разделители) и исключает лишние преобразования типа Число - Строка - Число



* Вместо метода DoCmd.Echo False|True правильнее применять метод Application.Echo. Если запрет на пере-рисовку относится к одной форме или подформе - можно использовать свойство формы Painting.



... О методе DoCmd.SetWarnings False|True лучше вообще забыть. В основном он применяется вместе с методом DoCmd.RunSQL, о котором тоже лучше забыть и применять метод CurrentDB.Execute. Этод метод лучше во всех отношениях, как уже отмечали предыдущие ораторы.



... Вместо комбинации Chr(13) & Chr(10) для перевода строки удобнее использовать встроенную константу vbCrLf.

Для функции MsgBox еще лучше использовать символы "@" в тексте сообщения. Таких символов должно быть два.


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.