powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / недостаточно параметров openrecordset
4 сообщений из 4, страница 1 из 1
недостаточно параметров openrecordset
    #39464204
dvstfu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Пытаюсь открыть recordset и выдается ошибка Слишком мало параметров требуется 2.
Уже делал таким способом, но там запрос поместился в одну строку и все нормально работает.
Подскажите в чем проблема может быть?


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Dim db As Database
Dim strArray() As Variant
Dim prArray() As Variant
Dim strSQL1 As String
Dim tdf1 As DAO.Recordset
Dim rstData1 As DAO.Recordset
Dim eData1 As Integer
Dim fData1 As Integer
Dim efields1 As Integer

Set db = CurrentDb()
efields = 9
strSQL1 = "SELECT ZStrData.id_incoming_indicator, ZStrData.id_region, ZStrData.id_item_str, ZStrData.id_unit, [ZStrData].[ind_value]/[Sum-ind_value] AS Выражение1, StrItem.name_item_str, StrItem.id_str_type, ZStrData.twelvemonth, ZStrData.id_data FROM (ZStrDataSum INNER JOIN ZStrData ON (ZStrData.twelvemonth = ZStrDataSum.twelvemonth) AND (ZStrData.id_unit = ZStrDataSum.id_unit) AND (ZStrData.id_region = ZStrDataSum.id_region) AND (ZStrDataSum.id_incoming_indicator = ZStrData.id_incoming_indicator)) INNER JOIN StrItem ON ZStrData.id_item_str = StrItem.id_item_str GROUP BY ZStrData.id_incoming_indicator, ZStrData.id_region, ZStrData.id_item_str, ZStrData.id_unit, [ZStrData].[ind_value]/[Sum-ind_value], StrItem.name_item_str, StrItem.id_str_type, ZStrData.twelvemonth, ZStrData.id_data, ZStrData.twelvemonth "
strSQL1 = strSQL1 + "HAVING (((ZStrData.id_incoming_indicator) = " & [Forms]![main]![Data_str].[Form]![index1] & ") And ((ZStrData.id_region) = " & [Forms]![main]![Data_str].[Form]![region1] & ") And ((StrItem.id_str_type) = " & [Forms]![main]![Data_str].[Form]![str1] & ") And ((ZStrData.twelvemonth) = " & CDbl([Forms]![main]![Data_str].[Form]![period1]) & ")) Or (((ZStrData.twelvemonth) = " & CDbl([Forms]![main]![Data_str].[Form]![period2]) & ")) ORDER BY ZStrData.id_item_str, [ZStrData].[ind_value]/[Sum-ind_value] DESC;"


Set rstData1 = db.OpenRecordset(strSQL1, dbOpenDynaset)



база https://drive.google.com/open?id=0B_bBwCfw-ZAQS1MzakpWUlk4R0E
...
Рейтинг: 0 / 0
недостаточно параметров openrecordset
    #39464205
dvstfu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удалил из запроса ZStrDataSum условия отбора. перестало это требовать, однако расчет стал отображаться иначе
...
Рейтинг: 0 / 0
недостаточно параметров openrecordset
    #39464215
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvstfu,

не знаю, как на форме объявлен период, но если полная дата, то(весьма полезная вещь debug.print )
?cdbl(now)
42888,2853587963

если у вас системный разделитель =запятая, то получится некорректная строка для выполнения запроса
Код: vbnet
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.
Dim S
S = "SELECT ZStrData.id_incoming_indicator, ZStrData.id_region,"
S = S & " ZStrData.id_item_str, ZStrData.id_unit,"
S = S & " [ZStrData].[ind_value]/[Sum-ind_value] AS Âûðàæåíèå1,"
S = S & " StrItem.name_item_str, StrItem.id_str_type,"
S = S & " ZStrData.twelvemonth, ZStrData.id_data"
S = S & " FROM (ZStrDataSum"
S = S & " INNER JOIN ZStrData"
S = S & "   ON (ZStrData.twelvemonth = ZStrDataSum.twelvemonth)"
S = S & "    AND (ZStrData.id_unit = ZStrDataSum.id_unit)"
S = S & "    AND (ZStrData.id_region = ZStrDataSum.id_region)"
S = S & "    AND (ZStrDataSum.id_incoming_indicator = ZStrData.id_incoming_indicator))"
S = S & " INNER JOIN StrItem"
S = S & "   ON ZStrData.id_item_str = StrItem.id_item_str"
S = S & " GROUP BY ZStrData.id_incoming_indicator, ZStrData.id_region, ZStrData.id_item_str,"
S = S & " ZStrData.id_unit, [ZStrData].[ind_value]/[Sum-ind_value],"
S = S & " StrItem.name_item_str, StrItem.id_str_type, ZStrData.twelvemonth,"
S = S & " ZStrData.id_data, ZStrData.twelvemonth "
S = S & " HAVING (((ZStrData.id_incoming_indicator) = " & [Forms]![main]![Data_str].[Form]![index1] & ")"
S = S & "    And ((ZStrData.id_region) = " & [Forms]![main]![Data_str].[Form]![region1] & ")"
S = S & "    And ((StrItem.id_str_type) = " & [Forms]![main]![Data_str].[Form]![str1] & ")"
S = S & "    And ((ZStrData.twelvemonth) = " & CDbl([Forms]![main]![Data_str].[Form]![period1]) & "))"
S = S & "    Or (((ZStrData.twelvemonth) = " & CDbl([Forms]![main]![Data_str].[Form]![period2]) & "))"
S = S & " ORDER BY ZStrData.id_item_str, [ZStrData].[ind_value]/[Sum-ind_value] DESC;"
debug.print s
CurrentDb.Execute S
...
Рейтинг: 0 / 0
недостаточно параметров openrecordset
    #39464249
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvstfuСлишком мало параметров...

У меня всегда такая ерунда получалась, когда нужно читать запрос DAO хотя бы с одним параметром из формы...
Обхожу ситуацию так:
1. Создаю запрос с параметрами (сохраненный или на лету).
2. Читаю набор уже из этого запроса, предварительно задав параметры.
Пример процедуры с одним параметром (параметров может быть несколько):
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Function f_id_avto(s As String) As Long
f_id_avto = 0
On Error GoTo a1
Dim bd As Database
Dim rs As Recordset
Dim qs As QueryDef
Set bd = CurrentDb()
Set qs = bd.QueryDefs("f_avto")   'тут пример сохраненного запроса
qs![s1] = s                                'тут может быть ваше типа [Forms]![main]![Data_str].[Form]![region1]...
Set rs = qs.OpenRecordset
rs.MoveFirst
f_id_avto = rs(0)
rs.Close
Exit Function
a1:
End Function


Пример запроса с одним параметром (можно несколько через запятую):
Код: sql
1.
2.
3.
4.
PARAMETERS s1 Text ( 255 );
SELECT avto.id_av, avto.gn
FROM avto
WHERE (((avto.gn)=[s1]));
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / недостаточно параметров openrecordset
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]