Здравствуйте, уважаемые форумчане!
Прошу у вас помощи вот в каком вопросе:
есть форма, в которой присутствует Поле со списком. Список значений в нём берётся из таблицы. При выборе определённого значения из списка в простое поле на этой же форме нужно подставить текст, который хранится в этой же таблице. Всё просто.
Но у меня возникла проблема с записью этого значения в простое поле после выполнения SQL-запроса в VBA.
FAQ по выполнению запросов в VBA читал, но мне помог с выполнением запроса.
А при попытке передать результат SQL-запроса в простое поле возникли трудности.
С VBA знаком 4 дня, раньше не сталкивался, но нужно одну программку доделать, а переписывать всё на знакомом мне ЯП нет времени, к сожалению..
Понял, что для решения вопроса нужно воспользоваться DAO, а именно через OpenRecordset. Получилось вот что:
Dim sqlstr As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim qdf As DAO.QueryDef
sqlstr = "SELECT * " _
& "FROM shablon " _
& "WHERE (((shablon.ShName)=""" & q & """));"
Set db = CurrentDb()
Set qdf = db.CreateQueryDef("", sqlstr)
Set rs = qdf.OpenRecordset(dbOpenDynaset, dbReadOnly)
[Forms]![form1].[pole4] = rs
Лишнее убрал для наглядности.
В этом случае компилятор ошибок не выдаёт, но и в поле из запроса ничего не передаёт. Простую информацию (значение переменных и проч) - передаёт без проблем. Пока вывод через
select case сделал.
Скромно полагаю, что проблема в последней строке.
Access 2007 SP3, база в формате accdb. Не знаю какая ещё нужна информация (смотрел
Рекомендации)
Немного не понял - что за тип клиента (#11 из Рекомендаций) и как его посмотреть, беглый гуглинг не помог. Могу лишь сказать, что работают локально на одном ПК.
ПослеСловие:
беглый поиск по форуму и в поисковиках не дал окончательного ответа на мой вопрос
Помогло чуть-чуть:
msdn
щёлк1щёлк2и F.A.Q. на этом ресурсе
Заранее благодарю за помощь! Отвечу на вопросы, если возникнут. Спасибо!
http://www.sql.ru/forum/1082611/zapis-rezultata-sql-zaprosa-v-formu-iz-vba