|
|
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Выдается ошибка (Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру) на строку: cmd.Parameters("dateBefore") = [Forms]![ZHO]![s] Правильно ли так писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 00:20 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
писать так правильно. Если ругается, значит действительно нет параметра с таким именем. Посмотри в Watch что там реально содержится. Возможно не dateBefore а @dateBefore ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2004, 07:54 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
данный параметр объявлен в запросе Select...(Явка.Дата)>=[dateBefore] And (Явка.Дата)<=[dateAfter]... А в VB ему присваивается значение из поля формы Так почему ж не удается найти...в семействе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 00:52 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
А почему cmd? Там cmd описано как QueryDef? Можно увидеть всю программу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 00:56 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Прикольно, несмотря на то, что параметры мне известны попробывала так написать: cmd.Parameters.Item(0) = [Forms]![ZHO]![s] При выполнении, база безповоротно виснит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 00:58 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
QueryDef через DAO, а я через ADO мудрю Часть исходного текста (если нужна другая часть, могу и ее): Set cmd = New ADODB.Command Set cmd.ActiveConnection = CurrentProject.Connection cmd.CommandText = "qrySumma" ' это запрос, в кот исп эти пар-ры cmd.CommandType = adCmdTable cmd.Parameters.Refresh cmd.Parameters("dateBefore") = [Forms]![ZHO]![1] cmd.Parameters("dateAfter") = [Forms]![ZHO]![2] Set rst2 = New ADODB.Recordset rst2.ActiveConnection = CurrentProject.Connection rst2.CursorType = adOpenKeyset rst2.LockType = adLockOptimistic Set rst2.Source = cmd rst2.Open rst2.MoveFirst ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 01:03 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Вставь перед строкой с Set rst2 f Код: plaintext 1. 2. и посмотри что будет выдаваться на экран. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2004, 01:32 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Вставила перед Set rst2 For Each prm In cmd.Parameters MsgBox prm.Name Next prm Когда ставишь точку после prm в списке отсутсвует Name, поэтому выдается ошибка, что Method or data member not found. Почему Name нет в списке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2004, 21:09 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Ну,либо добавь dim prm as ADODB.Parameter, либо так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2004, 22:32 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
объявление prm есть Dim prm As ADODB.Parameters так что причина не в этом а если др способ попробывать - та же ошибка выдается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2004, 23:31 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
наконец-то получила сообщение, оказывается всего-то надо было написать так: MsgBox (cmd.Parameters(i).Name) т е заключить в скобки. Сообщения выдаются такие: перечисляются мои параметры, кот как раз стоят в кач условия в запросе, а потом сообщение о том, что один из параметор не имеет занчение по умолчанию, а именно dateBefore, ну наверное имеется в виду, что и dateAfter тоже. Я должна в VB присвоить им значение по умолчанию? Что-то я не понимаю какое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 00:16 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Ура, я обнаружила, что параметр имеет имя [dateBefore], а не dateBefore, все исправила, однако появилась др ошибка, пока не знаю какая, т к при выполнении база начинает висеть, пока не понятно почему, т к особых ухишрений там не делается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 00:41 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
У меня вопрос такой: Как можно определить, из-за чего зависает база при выполнении кода на VB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 00:47 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Вы бы хотя бы техт запроса привели. А то получается гадание на кофейной гуще. А телепаты все в отпуске :) Да,вот еще что.Попробуйте вместо cmd.CommandType = adCmdTable написать cmd.CommandType = adCmdStoredProc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 00:59 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Какой CommandType нужно выбрать, если qrySumma - сохраненный запрос с пар-ми, про кот так долго говорилось выше????????????????????????? Set cmd = New ADODB.Command Set cmd.ActiveConnection = CurrentProject.Connection cmd.CommandText = "qrySumma" cmd.CommandType = ? cmd.Parameters("dateBefore") = [Forms]![ZHO]![1] cmd.Parameters("dateAfter") = [Forms]![ZHO]![2] Set rst2 = New ADODB.Recordset rst2.ActiveConnection = CurrentProject.Connection rst2.CursorType = adOpenKeyset rst2.LockType = adLockOptimistic Set rst2.Source = cmd rst2.Open Я поставила брейк поинт на строку rst2.Open и вот, что я обнаружила в Watch про rst2: Операция не допускается, если объект закрыт Что это может значить??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 00:59 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
здорово, пока я писала вопрос про тип, гляжу, а мне уже написали...спасибо за проницательность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:00 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Текст запроса: Итогового, кот и вызывается в VB: Код: plaintext 1. 2. 3. 4. 5. Запрос CountYavok, откуда берется поле KolYavok: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:04 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
по поводу типа adCmdStoredProc, если поставить его, то сразу выдается, что таких параметров нет, если же оставить adCmdTable? то все в порядке по поводу нахождения параметров, однако в остальном - полный копец так и остался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:10 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Я слаб в ADO, но попробовал бы перед последней строчкой добавить cmd.ActiveConnection.Open ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:11 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
перед последней строкой - это перед rst2.Open? Если да, то ошибка такова: Операция не допускается, если объект открыт ... хм.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:15 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Тогда пардон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:20 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Ну что Вам сказать? Кто Вас учил так писать запросы? Во первых: в запросе Код: plaintext 1. 2. 3. 4. 5. WHERE (((Явка.[Код сотрудника])=[Сотрудники]![Табельный № сотрудника]) - не нужно , так как это условие уже есть в INNER JOIN Во вторых: HAVING (((Count(Явка.Явка))=True)) Это вообще полный нонсенс. Count(Явка.Явка) - это число , а Вы его приравниваете к True В третьих Где видно ,что dateBefore и dateAfter - это параметры В четвертых Метод Refresh обьекта Command не работает с CurrentProject.Connection To be continued ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:34 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
VIGCount(Явка.Явка) - это число , а Вы его приравниваете к True Это-то ладно. True тоже можно рассматривать как число. Беда в том, что этим числом является -1, тогда как Count всегда число положительное или в лучшем случае 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:42 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
2 Саныч Вот я о том же .К-во явок может быть равно -1 только в случае ,если какого то сотрудника вынесли с работы вперед ногами Я уже молчу про декартово произведение 3(!) таблиц в первом запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 01:50 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
VIGCount(Явка.Явка) - это число , а Вы его приравниваете к True А у меня (если я не ошибаюсь) на True и False в представлениях и хп просто ругается. =0 или =1 (или как-нибудь еще) ему надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 02:40 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Блин, а ведь я сам тоже накололся с этими параметрами в ADO для UPDATE-запросов. Таким образом запускаемый UPDATE-запрос работать не будет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Коллекция выполняемого запроса "qryUpdDate" cmd.Parameters.Count=0, даже если мы сделаем cmd.Parameters.Refresh после cmd.CommandText = .... все равно ноль. - Естественно вышеуказанную ошибку о не удается найти объект.... мы и получаем Если не задавать тип cmd.CommandType= , т.е. =adCmdUnknown, то становится совсем весело, в вотчере в свойстве cmd.Parameters.Count наблюдаем такой текст - Invalid SQL Statement; expected 'DELETE', 'INSERT','PROCEDURE', 'SELECT' or 'UPDATE' В MSDN на эту ошибку находим такой любопытный документ: ACC2000: You May Need to Refer to Jet Stored Procedures as Tables in ADO из которого узнаем, что оказывается при обращении к сохраненным запросам через ADO при необходимости манипулировать параметрами надо заменить cmd.CommandType = adCmdStoredProc на cmd.CommandType = adCmdTable, иначе получим ошибку. Но все это касается токо SELECT запросов, для UPDATE запросов adCmdTable конечно никак не прокатит. Вообщем для UPDATE запросов с параметрами чрез ADO необходимо действовать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Т.о. в ADO в этом случае надо самим создавать параметр и добавляеть его в коллекцию, потому что сам ADO для UPDATE запросов коллекцию Parameters заполнять не хочет (или не может или не видит или еще что). Причем ни в коем случае после строки Код: plaintext не делайте Код: plaintext иначе Ваш добавленный параметр в мгновение ока тут же исчезнет из коллекции Parameters, веселуха вообщем (Если это общеизвестный факт, то дико извиняюсь, но для меня, после DAO такое поведение ADO оказалось сюрпризом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 15:49 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Прошу обратить внимание, что согласна, что запрос не универсален, однако Count(Явка.Явка)=True писать можно (док-вом является действующий запрос). Вы случайно не путаете с Sum. Сначала идет выборка тех записей, кот true, группируя по № сотрудника, т е -1, а далее подсчитывается количество выбранных явок для этих сотрудников, так что все ОК. А с остальным буду разбираться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 21:56 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
автороднако Count(Явка.Явка)=True писать можно (док-вом является действующий запрос). Готов спорить на съедение собственной кепки, что в действующем запросе этого нет. Count(...)=True - это все равно что Count(...)= - 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 22:18 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Пы.Сы. Писать так действительно можно. Только результат будет не тот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 22:50 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
для проверки временно заменила пар-ры на конкретные ссылки на форму. 1 вариант не работает: Код: plaintext 1. 2. 3. 4. 5. 6. 2 вариант работает: Код: plaintext 1. 2. 3. 4. 5. 3 вариант тоже работает: Код: plaintext 1. 2. 3. 4. 5. 6. К моему большому удивлению, в первом варианте я использовала не between, >= ... <= И как только поменяла на between, то запрос начал выдавать количество не всех явок сотр-ка, а пределах дат с формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 22:53 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Похоже, что мне надо съесть половину кепки... Выбираю ту, где нет козырька. Во-первых, оказалось, что в HAVING действительно True ведет себя не как -1. В высшей степени странное явление. Вполне тянет на грабли и заслуживает всеобщего внимания. Во-вторых, все равно 2-й и 3-й варианты не эквивалентны. Оказалось, что HAVING Count(...)=True - это все равно что HAVING Count(...)>0, но не HAVING Count(...)=-1 (как думал я) и не WHERE ...=True (как думала автор вопроса). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:11 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Проверено следующим образом. Таблица A: f1 - counter f2 - text b - yes/no Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. SELECT f2 FROM A GROUP BY f2 HAVING Count(b)>0 - возвращает все 4 значения a, b, c, d. SELECT f2 FROM A GROUP BY f2 HAVING Count(b)=True - аналогично. SELECT f2 FROM A GROUP BY f2 HAVING Count(b)=-1 - не возвращает ничего. SELECT f2 FROM A WHERE b=True GROUP BY f2 - возвращает a, b, c, т.е. только те значения, где есть b=True. Итого: единственный работающий вариант - WHERE b=True. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:24 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
> Итого: единственный работающий вариант - WHERE b=True ну это как бы и подразумевалось. А вот select count b from t having count(b)=true - явление действительно забавное. Насколько я помню, у меня были проблемы с запросами вида select max(boolField) from .... , которые вместо ожидаемого 0 возвращали не 0 (сейчас не помню, 1, -1, или мифический true). Лечилось преобразованием логического поля к числу: select max(boolField*1) from .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:31 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Сори, оказалась ошибка... Проверку делала не на те месяцы, где было у сотрудника неявка, поэтому, когда пробовала разные запросы, он выдавал один и тот же правильный рез-т...Полностью согласна с ед-ым верным реш-ем...и каюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:33 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
2 irinka: У меня козырек остался. Могу поделиться. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:36 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
:) Только, если он шоколадный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:39 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1675696]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
141ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 509ms |

| 0 / 0 |
