Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/47: Рейтинг темы: голосов - 47, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 24
1

Присвоение переменной значения из запроса

13.12.2015, 16:51. Показов 9283. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Пожалуйста помогите я не программист, но приходится...
Может ли кто подсказать как этот sql запрос можно прописать в vba?
Или хотя бы как из этого сохраненного запроса "Имя_файла" присвоить переменной "A" значение полученного результата?

SQL
1
2
3
4
5
SELECT FIRST([цвета заказа материал]![заказ №] & " " 
& [цвета в заказе]!материал & "-" & [цвета в заказе]!описание) AS 1
FROM [материалы для отчета]
 INNER JOIN [цвета заказа материал]
 ON [материалы для отчета].Материалы = [цвета заказа материал].материал;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2015, 16:51
Ответы с готовыми решениями:

Присвоение переменной vb результата SQL-запроса
Здрасте! Такая проблема: не могу присвоить переменной vb результат SQL-запроса (подсчет кол-ва...

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

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

Присвоение переменной из значения в форме
Доброго вечера, есть форма фильтра по таблице. Поставив фильтр отсеиваем искомые записи, нажав на...

11
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
13.12.2015, 17:19 2
Visual Basic
1
2
3
strSQL = "SELECT First([цвета заказа материал]![заказ №] & ' ' & [цвета в заказе]!материал & '-' & [цвета в заказе]!описание) AS 1"
strSQL = strSQL & "FROM [материалы для отчета] INNER JOIN [цвета заказа материал] ON [материалы для отчета].Материалы = [цвета заказа материал].материал"
A = CurrentDb.OpenRecordset(strSQL).Fields(0)
Или, учитывая, что запрос сохраненный - можно так:

Visual Basic
1
DLookup("1","Имя_файла")
0
1 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 24
13.12.2015, 17:43  [ТС] 3
Второй вариант работает, спасибо!
Но очень хочу первый, а он не работает, гляньте, что не так...пигет "invalid use of property" и курсор останавливается на А=
Visual Basic
1
2
3
4
5
Dim A As Recordset
        strSQL = "SELECT First([цвета заказа материал]![заказ №] & ' ' & [цвета в заказе]!материал & '-' & [цвета в заказе]!описание) AS 1"
        strSQL = strSQL & "FROM [материалы для отчета] INNER JOIN [цвета заказа материал] ON [материалы для отчета].Материалы = [цвета заказа материал].материал"
        A = CurrentDb.OpenRecordset(strSQL).Fields(0)
    MsgBox A 'Проверка значения
[/VB]
0
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
13.12.2015, 18:09 4
Цитата Сообщение от Ludkov Посмотреть сообщение
и курсор останавливается на А=
Dim A As Recordset
Ну и зачем вы А описали как рекордсет? Переменная должна быть того же типа, что и единственное поле запроса.

Добавлено через 1 минуту
Рекордсет тут вообще фигурирует виртуально, мы обращаемся сразу к его полю.
0
1 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 24
13.12.2015, 18:12  [ТС] 5
Так я и как String описывал, но не работает
0
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
13.12.2015, 18:17 6
Попробуйте так:

Visual Basic
1
2
3
4
5
6
Sub ttt()
Dim A As String, strSQL As String
    strSQL = CurrentDb.QueryDefs("Имя_файла").SQL
    A = CurrentDb.OpenRecordset(strSQL).Fields(0)
    Debug.Print A
End Sub
Если так работает, а с явным прописыванием текста запрося прямо в vba нет - значит ошибка в тексте запроса.
0
1 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 24
13.12.2015, 18:43  [ТС] 7
Сохраненный запрос выдает нужный результат, он рабочий...AS 1 заменил на AS N
SELECT First([цвета заказа материал]![заказ №] & " " & [цвета в заказе]!материал & "-" & [цвета в заказе]!описание) AS N
FROM [материалы для отчета] INNER JOIN [цвета заказа материал] ON [материалы для отчета].Материалы = [цвета заказа материал].материал;

Ваш последний код выдает ошибку: Слишком мало параметров. Требуется 1.
0
Модератор
Эксперт MS Access
11962 / 4830 / 779
Регистрация: 07.08.2010
Сообщений: 14,144
Записей в блоге: 4
13.12.2015, 19:14 8
Не вижу таблицы [цвета в заказе] в операторах FROM/JOIN
--------
и выложите наконец базу --лень угадывать имена
0
1 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 24
13.12.2015, 20:07  [ТС] 9
Извините, но выложить базу не получится, слишком она громадная 1,8 Гб. Вот сам запрос:
Миниатюры
Присвоение переменной значения из запроса  
0
Модератор
Эксперт MS Access
11962 / 4830 / 779
Регистрация: 07.08.2010
Сообщений: 14,144
Записей в блоге: 4
13.12.2015, 20:26 10
слишком она громадная 1,8 Гб.
вы ее что
--никогда не сжимали
--или заполнили массой картинок и OLE -объектов(или вложений)
--------
несуразный размер
===================
если надумаете сжимать ---сначала задублируйте
0
1 / 1 / 0
Регистрация: 12.05.2015
Сообщений: 24
13.12.2015, 21:47  [ТС] 11
Сжимаю конечно ))) и резервные копии создаю, есть очень много важных вещей, которые жалко потерять, поэтому уже в течении 7 лет она растет...Да картинки и OLE объекты там есть и немало, они и весят.
До поры до времени все делалось с помощью макросов, но залез в VBA и понял, что теперь не хочу макросов, тут все очень гибко и понятно.
Спасибо shanemac51, ваши предыдущие советы очень пригодились...
На данный момент сделал необходимое с помощью DLookup, но понимаю, что создание сохраняемых запросов меня будет сковывать.
Очень буду признателен, если подскажете понятную литературу для формирования всех типов запросов в коде VBA.
1
шапоклякистка 8-го дня
3679 / 2239 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
13.12.2015, 22:17 12
Ludkov, создайте чистую базу. В ее импортируйте ваш запрос и таблицы, имеющие отношение к вопросу, проследив, что в параметрах импорта указано "только структура", и отмечена галочка "схема даных".

Затем открываете таблицы и вносить буквально по 2-3 записей "с потолка" (чтобы мы могли понять, о чем речь).
1
13.12.2015, 22:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2015, 22:17
Помогаю со студенческими работами здесь

Объявление переменной и присвоение ей значения одной строкой кода
Здравствуйте! Подскажите пожалуйста как объявить переменную и сразу же присвоить ей значение в...

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

Присвоение переменной результата запроса
Подскажите, пожалуйста, а то что-то встал в ступор, есть следующий код: Private Sub...

Присвоение переменной результата запроса
Подскажите как переменной присвоить результат SQL запроса?


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru