Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/103: Рейтинг темы: голосов - 103, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 14.01.2014
Сообщений: 16

Вывод результата VBA запроса в поле формы

13.06.2014, 13:22. Показов 20960. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, что не так. Ввожу на форме названия услуги и изделия для обработки. Нужно по кнопке найти их стоимость и вывести в поле Цена на то же форме.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Рассчитать_Click()
 
    On Error Resume Next
' Dim sQ As String
Dim rst As DAO.Recordset
Dim strSql As String
a = Forms!Форма1.Код_услуги
b = Forms!Форма1.Код_изделия
strSql = " SELECT Прайс.Цена_за_ед" & _
" FROM Услуга INNER JOIN (Изделие INNER JOIN Прайс ON Изделие.Код_изделия=Прайс.Код_изделия) ON Услуга.Код_услуги = Прайс.Код_услуги" & _
" WHERE (((Услуга.Код_услуги) = " & a & ") And ((Изделие.Код_изделия) = " & b & ") And ((Прайс.Код_изделия)=Изделие.Код_изделия) And ((Прайс.Код_услуги)=Услуга.Код_услуги))"
Set rst = CurrentDb.OpenRecordset(strSql)
Forms!Форма1.Сумма = rst
Set rst = Nothing
End Sub
Пока не выводит ничего
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2014, 13:22
Ответы с готовыми решениями:

Отображение результата запроса в поле формы
Перерыла интернет, а понять что я делаю не так, не могу.:wall::wall::wall: Ни чего не выводит.... Private Sub sumnool1_AfterUpdate()...

Так можно возвартить в поле формы результата запроса
Функция для возврата в поле формы результата запроса на сумму столбца подчиненной формы. Может, именно это у нас уже есть - по поиску...

Вывод результата запроса в вычисляемое текстовое поле
Необходимо вывести один (и единственный) результат запроса в вычисляемое текстовое поле. ввел в текстовое поле следующие варианты...

35
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
26.01.2016, 11:59
Студворк — интернет-сервис помощи студентам
Не уверен, что в ВБА проходит объект [Формы] (в 4-й строке). Скорее надо Forms. И второе - в выражении Forms![Генератор Вопросов].Вопрос Вопрос это же поле формы, а не системное свойство формы и поэтому нужен восклицательный знак, а не точка
Visual Basic
1
2
3
4
5
6
Private Sub Кнопка0_Click()
  Dim strSql As String
  strSql = "SELECT Вопросы.Вопрос FROM Вопросы" & _
" WHERE (((Вопросы.Код)= " & Forms![Генератор Вопросов].КодВопроса & " ))"
Forms![Генератор Вопросов]!Вопрос = CurrentDb.OpenRecordset(strSql).Fields(0)
End Sub
1
21 / 21 / 4
Регистрация: 10.11.2015
Сообщений: 123
26.01.2016, 12:21
Цитата Сообщение от mobile Посмотреть сообщение
Не уверен, что в ВБА проходит объект [Формы] (в 4-й строке). Скорее надо Forms. И второе - в выражении Forms![Генератор Вопросов].Вопрос Вопрос это же поле формы, а не системное свойство формы и поэтому нужен восклицательный знак, а не точка
ШИииикарнооо. Спасибо поставил )
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
03.02.2018, 21:55
И снова всем здравствуйте! Решил поднять старую тему ибо проблема схожая. А именно: при попытке вывести в поле txt_description_eye_OD комбинацию текста ничего не выводит. Помогите разобраться, что не так? Честно скажу, что не совсем сам писал код, но в другой базе он работает и прекрасно работает. Привожу пример:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub Report_Activate()
Dim MyPatients As Database
Dim MSEK_ALL As New ADODB.Recordset
Dim oddescription As String
Dim osdescription As String
Dim msg As String
'On Error Resume Next
 
oddescription = ""
osdescription = ""
   MSEK_ALL.Open "qry_Patients_DescriptionALL", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   'Проверяем ошибки и выводим сообщение
   If Err <> 0 Then
   msg = "Ошибка при создании набора данных:" & vbCrLf
   msg = msg & "Ошибка: " & Err & vbCrLf
   msg = msg & "Описание: " & Err.Description
   MsgBox msg
   Exit Sub
   End If
   
   If MSEK_ALL!desc_eye_OD Or Not IsNull(MSEK_ALL!desc_eye_OD) Then
     oddescription = oddescription & "Око " & MSEK_ALL!desc_eye_OD
   End If
   
   If MSEK_ALL!Position_eye_OD <> "" Or Not IsNull(MSEK_ALL!Position_eye_OD) Then
     oddescription = oddescription & ", положення " & MSEK_ALL!Position_eye_OD
   End If
 
   If MSEK_ALL!Eyelids_OD <> "" Or Not IsNull(MSEK_ALL!Eyelids_OD) Then
     oddescription = oddescription & ", повіки " & MSEK_ALL!Eyelids_OD
   End If
 Me.txt_description_eye_OD.Value = oddescription
End Sub
Добавлено через 13 минут
Забыл уточнить, что это нужно выводить в отчете.
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
03.02.2018, 22:51
Оформите код процедуры как публичную функцию в общем модуле.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public function Func_description_eye_OD()
Dim MyPatients As Database
Dim MSEK_ALL As New ADODB.Recordset
Dim oddescription As String
Dim osdescription As String
Dim msg As String
'On Error Resume Next
 
oddescription = ""
osdescription = ""
   MSEK_ALL.Open "qry_Patients_DescriptionALL", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   'Проверяем ошибки и выводим сообщение
   If Err <> 0 Then
   msg = "Ошибка при создании набора данных:" & vbCrLf
   msg = msg & "Ошибка: " & Err & vbCrLf
   msg = msg & "Описание: " & Err.Description
   MsgBox msg
   Exit Sub
   End If
   
   If MSEK_ALL!desc_eye_OD Or Not IsNull(MSEK_ALL!desc_eye_OD) Then
     oddescription = oddescription & "Око " & MSEK_ALL!desc_eye_OD
   End If
   
   If MSEK_ALL!Position_eye_OD <> "" Or Not IsNull(MSEK_ALL!Position_eye_OD) Then
     oddescription = oddescription & ", положення " & MSEK_ALL!Position_eye_OD
   End If
 
   If MSEK_ALL!Eyelids_OD <> "" Or Not IsNull(MSEK_ALL!Eyelids_OD) Then
     oddescription = oddescription & ", повіки " & MSEK_ALL!Eyelids_OD
   End If
   Func_description_eye_OD  = oddescription
End Function
В свойстве Данные поля отчета txt_description_eye_OD пишете
Visual Basic
1
=Func_description_eye_OD()
1
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
03.02.2018, 23:09
Сделал как сказали, но выдает ошибку (
Вот такую:

И в отчете ничего не выводит (
Да и не нужно в общем модуле делать функцию, как по мне. Ведь я привел только маленький кусочек того, что надо будет вставлять. И это только в одно поле. А нужно будет вставлять в несколько полей... Почему оно не хочет отображать в отчете - вот в чем вопрос?

Могу выложить всю базу, если это так необходимо.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,963
Записей в блоге: 4
03.02.2018, 23:26
у вас похоже ошибка набивки
выделена ведь какая-то буква в первой колонке после строки ON ERROR
1
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
03.02.2018, 23:48
shanemac51, Спасибо. Да там был пробел... Но теперь выдает ошибку Syntax Error в 11 строке:
Visual Basic
1
MSEK_ALL.Open "qry_Patients_DescriptionALL", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Что ему не хватает? Да и нужно ли в модуле это все делать если, как по мне, лучше все оформлять в Private Sub Report_Activate() ?
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,963
Записей в блоге: 4
04.02.2018, 00:08
увы, ошибки по картинкам не ищутся
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
04.02.2018, 00:31
Так не по картинкам, а по коду что не так? Выше выкладывал код.
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
04.02.2018, 00:59
Выкладываю саму базу. Когда откроется, то нажать на Повернутись у меню --> ПОШУК --> В поле Прізвище набрать Первак. Там все данные необходимые уже есть. Выбрать вкладку Вивід Звітів, Виписок Там единственная кнопка. В самом отчете интересует пункт 14, а именно над самым 15-м пунктом поле OD (txt_description_eye_OD). Вот в нем и должна выводиться информация.

MyPatients20.rar
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.02.2018, 02:13
matva, все точно как я Вам рекомендовал. Только пришлось исправить кучу ошибок и заменить в запросе ссылки на форму на публичные функции. Все функции в Module1
Вложения
Тип файла: rar MyPatients20.rar (1.63 Мб, 15 просмотров)
1
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
04.02.2018, 11:05
mobile, Спасибо за проведённую работу!
Вот только у меня пишет, что: Compile error: Can't find project or library.
Не хватает какой-то библиотеки... У Вас какой access? У меня 2007.
Затем, когда уже жму ок, выдает вот такие перлы:



Именно два раза выдает такую ошибку.
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.02.2018, 16:10
matva, переменная As Database назначает переменной тип DAO.Database. Но Вы используете ADODB-рекордсет и эта переменная не нужна. Удалите эту строку совсем. Ошибка может быть в ней если у Вас в референсах не подключена библиотека DAO.
1
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
04.02.2018, 18:55
mobile, Отключил. Помогло. Спасибо!
Но в чем же проблема, если в самом отчете такое делать (не делая функцию), а оно не вставляется? В другой базе эта фича работает. Вот с этим разобраться бы. На каждое поле не наделаешь функций. И хотелось бы уточнить:
Только пришлось исправить кучу ошибок
Намекните где и в чем были ошибки. Хотелось бы знать на будущее где не делать ошибок.

С Уважением, matva.

Добавлено через 5 минут
P.S. И как сделать, чтобы не числовое значение подставлялось, а текстовое? Ведь значения берутся из таблицы, но изначально каждое значение находится в справочных таблицах.

Добавлено через 47 минут
P.S.2. И перестало показывать дату, день недели и время. Ругается На Timer, а именно на Time, что мол "compile error: expected array". В моей версии БД эта фича работает.

Добавлено через 2 минуты
Какой может быть массив в таймере?

Добавлено через 32 минуты
P.S.3. Попробовал скопировать вашу функцию в свой вариант БД, даже макрос на кнопке скопировал - ан нет - не работает.
0
Эксперт MS Access
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
04.02.2018, 18:59
Вы очень неконкретно объясняете.
Цитата Сообщение от matva Посмотреть сообщение
И как сделать, чтобы не числовое значение подставлялось, а текстовое?
Где это надо смотреть? В какой форме/отчете, в каком поле?

Цитата Сообщение от matva Посмотреть сообщение
И перестало показывать дату, день недели и время. Ругается На Timer, а именно на Time, что мол "compile error: expected array". В моей версии БД эта фича работает.
Где должно показывать дату? Что надо сделать и где, чтобы выйти на ошибку?

Предположу, что ошибка из-за разницы версий. Возможна подключились не те библиотеки. Зайдите в редактор ВБА=>меню Tools=>References. Откроется список библиотек. Подключенные с галочками. Посмотрите нет ли на какой-нибудь слова MISSING. Если есть, то надо или отключить библиотеку (снять галку) или вместо неправильной найти в списке Вашу версию и поставить на ней галку. И конечно снять галки с файлов с миссингами
1
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
05.02.2018, 19:19
В принципе я решил проблему КАК всё организовать БЕЗ функций. Но проблема с правильным выводом информации остаётся.
Цитата Сообщение от mobile Посмотреть сообщение
Вы очень неконкретно объясняете.
Сообщение от matva
И как сделать, чтобы не числовое значение подставлялось, а текстовое?
Где это надо смотреть? В какой форме/отчете, в каком поле?
Да все там же смотреть:
В самом отчете интересует пункт 14, а именно над самым 15-м пунктом поле OD (txt_description_eye_OD). Вот в нем и должна выводиться информация.
Прилагаю свою версию БД. Очень надеюсь на помощь.

MyPatients22.rar

P.S. Я предполагаю, что проблема в подстановке данных но вот как их правильно подставить - ума не приложу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.02.2018, 19:19

Поле со списком из результата запроса
В форме &quot;Журнал учителя&quot;, в полях &quot;Класс:&quot; и &quot;Параллель:&quot; необходимо чтобы появлялся список с данными из запросов &quot;Всего классов&quot;...

Пустые значения в поле результата запроса
Здравствуйте. Делаю собственную конфигурацию, в которой есть справочники: 1)Договоры(Код, Наименование...) 2)ЭтапыДоговоров(Код,...

Выбор формы в зависимости от результата запроса
Здравствуйте!!! Нужна помощь, не могу сообразить как сделать чтоб при нажатии кнопки на &quot;Главной форме&quot; выполнялся запрос и...

Вывод в поле запроса последней цифры из значения в другом поле
Здравствуйте все!!! Подскажите какую функцию или сочетание функций можно использовать в запросе, чтобы получить в поле последнюю цифру...

Вывод результата запроса
Прошу прощения, за вопрос по &quot;азам&quot;, делаю только первые шаги. Подключил локальную базу Interbase. В компоненте IBQuery создал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru