|
|
|
| Значения условий запроса беруться из полей на форме - всё работает,
а вот открыть DAO.recordset/
Abu вам - спрашивает не вижу параметров ......
Dim db As DAO.Database 'создаём dao. базу
Dim rs_zapros As DAO.Recordset 'создаём dao. набор записей
Set db = CurrentDb ' база текущая
Set rs_zapros = db.OpenRecordset("Perestchenie_Dat", dbOpenDynaset) 'открываем фиг вам
|
| |
|
| |
|
|
|
| читаем FAQ
http://hiprog.com/index.php?option=com_content&task=blogcategory&id=119&Itemid=159 | |
|
| |
|
|
|
| Теперь понятно как узнать значения параметров.
Set qdf = db.QueryDefs("Perestchenie_Dat")
For Each param In qdf.Parameters
param = Eval(param.Name)
MsgBox param
'qdf.Execute ошибка
Next
| А как их эти значения передать в запрос в нужное место запроса? | |
|
| |
|
|
|
| For Each param In qdf.Parameters
param = Eval(param.Name)
это и есть
передача значений в "нужное место запроса" | |
|
| |
|
|
|
| Да действительно......
Тогда извините почему ошибка
на действие -------- >> qdf.Execute
и запрос не присваивается Recordset (у) | |
|
| |
|
|
|
| Читаем help по DAO
The Execute method is valid only for action queries. If you use Execute with another type of query, an error occurs. Because an action query doesn't return any records, Execute doesn't return a Recordset. (Executing an SQL pass-through query in an ODBCDirect workspace will not return an error if a Recordset isn't returned.) | |
|
| |
|
|
|
| Даааааа плохо быть тупым Русским.... к тому же не знать английского.........
Действие верно только при выполнении запроса.
Если вы выполняете с помощью другого типа запроса - ошибка обеспечена.
Поскольку действие запроса невозвращает любую запись.
А вот в рабочей области не будет ошибки......
Чесно говоря этот хелп не прояснил ситуяйцию, но со временем разберусь. | |
|
| |
|
|
|
| Эта ошибка появляется когда вы пытаетесь открыть recordset присоединенной таблицы, в этом случае...
Dim Dbs As DAO.Database
Dim RstОстатки As DAO.Recordset
Dim StrSQL As String
Set Dbs = CurrentDb()
StrSQL = "SELECT [Остатки].* FROM [Остатки];"
Set RstОстатки = Dbs.OpenRecordset(StrSQL)
Если нужны дальнейшие пояснения, спрашивайте, постараюсь помочь | |
|
| |
|
|
|
| Извините, таблицы родные.
Но в запросе условия отбора - значения из полей формы.
Сам по себе запрос открывается.
А вот при присвоении DAO.Recordset (у) этого запроса спрашивает нужны параметры 4 штуки.
То есть полей формы не видит, хотя форма открыта. | |
|
| |
|
|
|
| конечно обойти проблемму удалось создав 4 доп публик функции, которым присваивается значения полей формы а обращение к этим функциям располагаются в условиях отбора запроса.
Но вопрос как передать параметры ........... | |
|
| |
|
|
|
| Для Вас главное понять как правильно обращаться к значению поля в форме:
Forms![Список ведомостей списания]![Ведомости на списание подчиненная форма].Form![Цена_Ед] - обращение к полю подчиненной формы
Forms![Список ведомостей списания]![Цена_Ед] - к полю простой формы | |
|
| |
|
|
|
| Dim Dbs As DAO.Database
Dim RstОстатки As DAO.Recordset
Dim StrSQL As String
Dim Kol As Integer
Set Dbs = CurrentDb()
Set Kol = Forms![Список ведомостей списания]![Ведомости на списание подчиненная форма].Form![Кол]
StrSQL = "SELECT Остатки.* FROM Остатки " & _
"WHERE ((Остатки.Имя_Мат) = " & Kol & ");" ' Запрос для числового значения
StrSQL = "SELECT Остатки.* FROM Остатки " & _
"WHERE ((Остатки.Имя_Мат) = '" & Kol & "');" ' Запрос для текстового значения
Set RstОстатки = Dbs.OpenRecordset(StrSQL)
Данный код универсален и для встроенных таблиц | |
|
| |
|
|
|
| Вот как всё выглядит:
Запрос создан для выборки данных из таблиц, по условиям выбираемым на полях формы.
Запрос создан конструктором и уже является объектом базы данных.
При запуске запроса на вкладке запросы при открытой форме и выбраных на ней параметрах отбора, запрос работает - работает!
А вот при присвоении объекта (Perestchenie_Dat) - DAO.Recordset
Set db = CurrentDb ' база текущая
Set rs_zapros = db.OpenRecordset("Perestchenie_Dat", dbOpenDynaset) 'открываем фиг вам | |
|
| |
|
|
|
| Было..то же по причине некорректного синтаксиса в тексте запроса рекордсета.. а, что там в Perestchenie_Dat ежли не секрет? | |
|
| |
|
|
|
| Не секрет.
Там из трёх таблиц, которые связаны меж собой делается выборка данных. | |
|
| |