Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 16:28   #1
Tan'ka
 
Регистрация: 10.12.2009
Сообщений: 6
По умолчанию процедура на VBA для анализа

здравствуйте!!!
помогите мне пожалучта...
необходимо написать процедуру на VBA для анализа верности запроса...
что бы эта процедура проверяла вводимые данные..пропускала нужные,т.е выводила на них результат а ненужные отсевала,не предпринимала никаких действий..
если понадобится сама база данных могу выслать...
Tan'ka вне форума Ответить с цитированием
Старый 10.12.2009, 19:15   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Tan'ka.
объясните, что значит "..для анализа верности запроса.." - синтаксис, введенные аргументы, отображаемые данные ?
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 11.12.2009, 09:12   #3
Tan'ka
 
Регистрация: 10.12.2009
Сообщений: 6
По умолчанию

что бы проверка шла на вводимые данные...проверка вводимых данных в запрос,и сверять с имеющимися в самой базе
Tan'ka вне форума Ответить с цитированием
Старый 11.12.2009, 23:13   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Tan'ka.
"на вводимые данные..." - вводимые куда? Подобная конструкция применима только при использовании формы для ввода данных.
"сверять с имеющимися..." - если подразумевается проверка на уникальность, можно задать ограничения на поле источника (таблицы) - сделав его индексным + уникальным (Совпадения не допускаются).
Но это всё мои версии, Вы как нибудь "поширее" осветите вопрос.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 14.12.2009, 09:43   #5
Tan'ka
 
Регистрация: 10.12.2009
Сообщений: 6
По умолчанию

существуе форма,главная форма,из которой можено по нажатию кнопки открыть либо форму для ввода данных(форма на табл)либо форму на запрос...
при запуске запроса появл окошко с сообщение о том что введите ....
после ввода данных в это окошко...нажать ок...и выводится форма запроса...
если вводятся,в окошко ввода,данные которые имеются в базе то выводится заполненная форма...если нет,то пустая...а нужно что бы выводилось сообщение об ошибке,или просто не предпринмалось никакиих
Tan'ka вне форума Ответить с цитированием
Старый 14.12.2009, 19:59   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Tan'ka.
простите но я с трудом ориентируюсь в Вашей терминологии, "...форму для ввода данных" - нет вопросов, "(форма на табл)" - форма с подключеной таблицей в качестве источника данных(?), "либо форму на запрос..." - Вы тут не определились нужна форма или запрос или запрос является источником записей формы(?), "..а нужно что бы...не предпринмалось никакиих" - в случае если "то пустая" или если "выводится заполненная форма"?
Из всего что я понял (или догадался, буду надеяться верно) следующие рекомендации:
Количество записей в источнике подключенном к форме можно узнать из свойства Me.Recordset.Recordcount, если это значение равно нулю (или не равно нулю?), в общем проверяйте свойство и выводите "сообщение об ошибке" или "просто" закрывайте форму.
на будущее: объяснение "на пальцах" не дает желаемого результата.
Выкладывайте архив с заранее подготовленным (избавленным от переизбыточных данных, OLE объектов,.... и сжатый средствами MS Access) файлом БД, что бы можно было на примере Вашей БД продемонстрировать способы решения задачи.
Евгений.

Последний раз редактировалось Teslenko_EA; 14.12.2009 в 20:02.
Teslenko_EA вне форума Ответить с цитированием
Старый 18.12.2009, 15:14   #7
Tan'ka
 
Регистрация: 10.12.2009
Сообщений: 6
По умолчанию

спасибо...сделала так:


Private Sub Form_Click()
If Me.Recordset.RecordCount > 0 Then
DoCmd.OpenForm "форма_запрос_PO_PR", , , , , acDialog
Else
MsgBox "Нет данных"
End If
End Sub


только вот не пойму...эту процедуру нужно прописывать на событие:нажатие кнопки ок,а как это сделать,веь это окно с просьбой о вводе автоматом сделалось,я это нигде не прописывала..просто сделал запрос....
я пропиывала этот код на собитие:выполнение формы запрос..но тож нечего не происходит...
и вообще подскажите пожалуйста,код то примерно правльный=)?
Tan'ka вне форума Ответить с цитированием
Старый 18.12.2009, 21:09   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Tan'ka.
Мне кажется я догадался что значит - "окно с просьбой о вводе автоматом сделалось". Вы создали Запрос с параметрами и пытаетесь применить его в качестве источника, программно не передавая в него "параметры". Но это моё предположение, а дать совет я смогу только проанализировав Вашу конструкцию (БД).
Для возможности оказания помощи, выложите архив с заранее подготовленным (избавленным от переизбыточных данных, OLE объектов,.... и сжатый средствами MS Access) файлом БД, без него ...
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 21.12.2009, 10:10   #9
Tan'ka
 
Регистрация: 10.12.2009
Сообщений: 6
По умолчанию

вот моя БД....
Вложения
Тип файла: rar Microsoft Office Access 2007 База данных.rar (107.5 Кб, 18 просмотров)
Tan'ka вне форума Ответить с цитированием
Старый 23.12.2009, 00:16   #10
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Tan'ka.
Проверку кол-ва записей можно выполнять подобным кодом:
Код:
Private Sub Form_Open(Cancel As Integer)
    If Me.Recordset.RecordCount = 0 Then Cancel = True
End Sub
проблема с которой я ранее не сталкивался заключается не только в том, что я не перешел на работу с MS Access 2007 (и в ближайшее время не планирую), а скорее в том что Вы не перешли на работу с VBA и вся конструкция требует "доработки напильником".
"Нехорошо заставлять" пользователя вводить (вручную(!)) имена и названия, это в принципе не верно, т.к. добавляются к возможным ошибкам, ошибки "Человеческого фактора".
думаю Вам стоит заняться изучением структуры и способов применяемых в подобных БД, прежде чем продолжить работу с Вашей конструкцией.
Удачи Вам.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для анализа дисков artemavd Софт 1 10.11.2009 13:22
Процедура на VBA (Excel) pafnutic Microsoft Office Excel 4 02.09.2009 16:29
программа для анализа обьявлений userx Общие вопросы C/C++ 2 19.06.2009 03:01
Группировка значений для анализа xamillion Microsoft Office Excel 33 25.05.2009 08:57