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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2015, 08:49   #1
Айвенго
Пользователь
 
Регистрация: 18.12.2007
Сообщений: 59
По умолчанию SQL в VBA

Привет, столкнулся для себя с такой проблемой, имеется 2 таблицы: work с полями "id", "name", "status" и таблица test, таблица test идентична таблице work, так же есть форма, которая создана на основе таблицы test, на форме соответственно 3 текстовых поля. Я хотел сделать вот что:

в поле id указать номер id из таблицы work, а в поля name и status присваивались значения согласно введенному id

Данную проблему решал 2 вариантами:
1 - с помощью команды dlookup
2 - преобразовывал поля name и status в поле со списком, где указывал источник строк sql запрос

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

Вот что у меня получилось:
Код:
Private Sub id_test_Change()
Dim rst1 As Recordset
Dim rst2 As Recordset
Set rst1 = CurrentDb.OpenRecordset("SELECT work.status FROM [work] WHERE (((work.id)=[f_test].[id_test]));")
Set rst2 = CurrentDb.OpenRecordset("SELECT work.name FROM [work] WHERE (((work.id)=[f_test].[id_test]));")
status_test = rst1
name_test = rst2
End Sub
Но выходит ошибка: "Слишком мало параметров. Требуется 1.

Последний раз редактировалось Айвенго; 24.02.2015 в 10:24. Причина: Поправка
Айвенго вне форума Ответить с цитированием
Старый 24.02.2015, 16:11   #2
Волшебник
Пользователь
 
Аватар для Волшебник
 
Регистрация: 17.08.2011
Сообщений: 39
По умолчанию

Айвенго,
Запрос не понимает, что это такое.
[f_test].[id_test]

Отсюда и месага
"Слишком мало параметров. Требуется 1.
-----------------------------------------
Это форма.
Чтобы всё работало, нужно обернуть её в функцию.
Создай модуль и запиши там.

Public Function A()
A = Forms![f_test]![id_test]
End Function

И в коде в запросе, где используется [f_test].[id_test]
dместо этого напиши вызов функции: A()
-----------------------------
307 МОНЕТ ВОЛШЕБНИКА
Волшебник вне форума Ответить с цитированием
Старый 24.02.2015, 16:11   #3
Волшебник
Пользователь
 
Аватар для Волшебник
 
Регистрация: 17.08.2011
Сообщений: 39
По умолчанию

----------------------
-----------------------------
307 МОНЕТ ВОЛШЕБНИКА
Волшебник вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование SQL функции в VBA Abdukhafiz Microsoft Office Excel 9 17.04.2012 13:18
Очередной вопрос про VBA и SQL Pingy Microsoft Office Excel 4 28.07.2011 14:50
VBA и SQL SERVER Lyubov1990 Microsoft Office Excel 3 06.04.2011 17:11
sql запрос в vba Access DenProx Microsoft Office Access 7 21.01.2011 07:46