Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / недостаточно параметров openrecordset / 4 сообщений из 4, страница 1 из 1
02.06.2017, 03:37
    #39464204
dvstfu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
недостаточно параметров openrecordset
Доброго времени суток.
Пытаюсь открыть 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
02.06.2017, 04:07
    #39464205
dvstfu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
недостаточно параметров openrecordset
Удалил из запроса ZStrDataSum условия отбора. перестало это требовать, однако расчет стал отображаться иначе
...
Рейтинг: 0 / 0
02.06.2017, 06:57
    #39464215
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
недостаточно параметров openrecordset
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
02.06.2017, 08:46
    #39464249
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
недостаточно параметров openrecordset
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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / недостаточно параметров openrecordset / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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