powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access+VB - как сделать запрос?
13 сообщений из 13, страница 1 из 1
Access+VB - как сделать запрос?
    #32856038
nimand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вправьте руки, плиз.
Есть некоторые данные, которые передает форма. Нужно выполнить поиск по одому из полей в таблице Data. Если есть запись, удовлетворяющая условию, то открыть новую форму, куда вывести данные из таблицы. Если данных нет, то показать сообщение.
Интересует вот что. Как можно определить, что запрос вернул какие-то данные? Я привык к php-mysql, там это делается очень просто с помощью функции mysql_num_rows. А как это делается в Access? Заранее благодарю за помощь.
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32856051
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DCount - например
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32856055
nimand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А немного подробнее можно? Я с Access столкнулся три дня назад =(
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32856124
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например
DCount("имя_поля", "имя_таблицы", "условие_отбора")
вернет количество записей в поле из таблицы по условию.
Хотя, вобщето возможностей гораздо бльше.
Еще подробнее - поставь курсор на DCount и жмакни F1
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857243
nimand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОК, с DCount я разобрался. А как быть с запросами? QueryDef, QueryDefs... Я совсем в этом запутался =((( В примерах вроде как все через рекордсеты делается, а у меня постоянно вылетает ошибка =( Пример можно привести или ссылку дать, где пример есть разобраный.
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857352
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поиск по конфе на слово recordset даст избыток примеров
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857466
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одинаковые задачи в коде можно решить разными способами.

Можно открывать Recordset'ы и через них манипулировать данными. RecordCount, Find'ы, Edit, AddNew...

Можно дергать функции DCount, Dlookup, Dmin, Dmax ... и использовать вызовы CurrentProject.Connection.Execute ("INSERT .... или UPDATE или еще что-нибудь).

Каждый способ имеет свои преимущества и недостатки. Иногда применим только первый или второй. Мне больше нравится второй метод - он ближе к SQL кодированию на сервере.
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857493
nimand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
strSQL = "SELECT [Properties].* FROM [Properties] WHERE [Properties]![icc_part]=Forms!Search!sfield"
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) ***
DoCmd.OpenForm ("Search_Results")
Forms.Search_Results.iccfull.Value = rs![icc_full].Value
rs.Close

Это кусок кода из функции, описанной для формы поиска. Когда я запускаю поиск, у меня вылетает ошибка "Слишком мало параметров. Требуется 1". После нажатия на кнопку Debug подсвечивается строчка с ***. Я вот чего не могу понять: если мне нужно выбрать все поля для записи, удовлетворяющей условию, мне нужно отдельно каждое поле указывать?
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857509
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nimandstrSQL = "SELECT [Properties].* FROM [Properties] WHERE [Properties]![icc_part]=Forms!Search!sfield"

синтаксис не верен
Код: plaintext
1.
 "SELECT [Properties].* FROM [Properties] WHERE [Properties]![icc_part]=" & Me![sfield]
+ debug.print strSQL расскажет много интересного
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857524
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
strSQL = "SELECT [Properties].* FROM [Properties] WHERE [Properties]![icc_part]=Forms!Search!sfield"
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) ***
DoCmd.OpenForm ("Search_Results")
Forms.Search_Results.iccfull.Value = rs![icc_full].Value
rs.Close

Зачем же кавычки не там ставить ?

Можно короче, я бы сделал именно так:

Dim icc_full
icc_full = DLookup("icc_full", "Properties", "icc_part=" & Cstr(Me!sfield)
if IsNull(icc_full) Then
    MsgBox "Нету"
Else
    DoCmd.OpenForm ("Search_Results")
    Forms.Search_Results.iccfull = icc_full 
End if
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857527
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скобку в лукапе не закрыл. :(
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857615
nimand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну на самом деле, у меня там в выборке должно быть около двадцати полей, поэтому "короткий" метод автоматически станет длинным =)
Тут теперь в другом дело. Я сделал так
strSQL = "SELECT [Properties].* FROM [Properties] WHERE [Properties]![icc_part]=" & Me!sfield
Теперь проблема в несоответствии типов =( Дело в том, что icc_part это текстовое поле, в котором хранятся цифры. Текстовое оно по одной простой причине: очень часто первой цифрой идет ноль, который отрезается аксессом =( В форме поиска поле имеет тип "Общий", т.е. числовой. Может можно как-то заставить не отрзать первый ноль в числе? Тогда, я думаю, проблема будет решена.
...
Рейтинг: 0 / 0
Access+VB - как сделать запрос?
    #32857764
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если во всех записях число цифр одинаково, то просто наложите формат.

Например "000" дает 001, 010, 111
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Access+VB - как сделать запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]