powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Присвоить рекордсет формы АДО рекордсету
25 сообщений из 25, страница 1 из 1
Присвоить рекордсет формы АДО рекордсету
    #32437555
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в следующем Если делаю так:
Код: plaintext
1.
2.
3.
Dim rst as ADODB.Recordset
Set rst = New ADODB.Recordset
Set rst = Forms!Кредиторка.RecordsetClone

То получаю "ран-тайм еррор 13. Type mismatch". :(
Как только вместо АДО использую ДАО, так все нормально. Как использовать именно АДО в этом случае???? Акс и 2000 и ХР, ДАО 3.6, АДО 2.1, мдб-файл.
-------
И еще один вопрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
]Dim cnn as ADODB.Connection
Dim rst as ADODB.Recordset
Dim strSQL as String
set cnn=CurrentProject.Connection
Set rst = New ADODB.Recordset
    strSQL =  "SELECT Контрагент.[Контрагент УН], Контрагент.[Краткое наименование], Вход_кредиторка.[Предоплата вход],
Вход_кредиторка.[Задолженность вход], Оборот_оплачено.[Оборот оплачено] AS [Оборот оплаты],
Оборот_задолженность.[Оборот задолженность] AS [Оборот задолженности],
Исх_кредиторка.[Предоплата исх], Исх_кредиторка.[Задолженность исх], Контрагент.Кредиторка "  & _
             "FROM (((Контрагент LEFT JOIN Исх_кредиторка ON Контрагент.[Контрагент УН] = Исх_кредиторка.[Контрагент УН])
LEFT JOIN Вход_кредиторка ON Контрагент.[Контрагент УН] = Вход_кредиторка.[Контрагент УН])
LEFT JOIN Оборот_задолженность ON Контрагент.[Контрагент УН] = Оборот_задолженность.[Контрагент УН])
LEFT JOIN Оборот_оплачено ON Контрагент.[Контрагент УН] = Оборот_оплачено.[Контрагент УН] "  & _
             "WHERE (((Контрагент.[Контрагент УН]) Not In (select [Контрагент] from Не_учитывать_контрагент)) AND ((Контрагент.Кредиторка)=Yes)) "  & _
             "ORDER BY Контрагент.[Краткое наименование];" 

rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic

Вываливает ошибку, что "..не задано значения для одного или нескольких параметров..."
Этот запрос базирется на других запросах, которые в свою очередь используют еще ряд мелких запросов, в которых в условие есть даты, которые берутся из формы. Чего я делаю не так и как это побороть??? Запрос "Кредиторка" отрабатывае нормально и возвращает нужные значения.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32437627
fgh11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim rst as ADODB.Recordset
Set rst = New ADODB.Recordset
Set rst = Forms!Кредиторка.Recordset
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32437665
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Безрезультано, я бы даже сказал - однохуйственно.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32437679
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F1 по Form.Recordset выдаст массу информации.
А если кратко
Код: plaintext
1.
2.
When a recordset is asked for in a Microsoft Access database (.mdb), a DAO 
recordset is returned, in a Microsoft Access project (.adp), an ADO recordset is 
returned.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32437779
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Виктор, спасибо все понял. Когда вчера копался по хелпу дома, как-то, наверное, пропустил эту фразу. ПонялЪ. Буду юзать ДАО.
Хотя, остается открытым второй вопрос. Может кто знает, что за параметры там требуются от меня??? Просто если второй вариант прокатывает, то мне не надо юзать ДАО, я через второй вариант все сделаю.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32437812
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну ты даешь... пытаешься присвоить ADO рекордсету DAOшный,

какие еще прараметры ??? это все равно что форме присвоить отчет
ТИПЫ ОБЪЕКТОВ РАЗНЫЕ
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32437910
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То АлексейК:
Стоп. В первом посте есть 2 вопроса. С первым я все усвоил, что я лопухнулся. Теперь по второму вопросу.
Есть стринг SQL-запроса, который базируется не на табличке, а на других запросах, которые в свою очередь имеют кое-какие условия в отборе, в частности, ограничения по периоду. В конечном запросе никаких ограничений и никаких параметров нет. Вопрос в том, что я опять делаю неправильно и как мне открыть этот рекордсет??? Либо я что-то не понимаю???
P.S.
strSQL="SELECT * FROM Счет_фактура" - все работает
Стринг, приведенный в первом посте не фурычит. :-((
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438597
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что, мне никто не хочет помочь? Мне что, снова киллеру звонить??? ;-))))
Гуру, ну ткните нюхом, где я не прав!
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438610
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а на других запросах, которые в свою очередь имеют кое-какие условия в отборе, в частности, ограничения по периоду.

Вот эти и параметры надо вводить через cmd.Parameters.Append cmd.CreateParameter .

==
И не надо киллера - лучше выпей воТки :)
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438619
Как сказал гетц, если нужен recordsetClone- Ставь ссылку на DAO и шпарь как в DAO
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438624
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Виктор!!! Спасибо!!!
Одна просьба, если не сложно, то дай маленький примерчик. Если нет примера, то буду сегодня дома пробовать и копаться в Гетсе.
P.S. mdb, access xp
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438628
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То Просто юзер:
Спасибо, первый вопрос понятен. С ним я уже разобрался. Теперь меня интересует "вторая часть Марлезонского балета". ;-))
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438638
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одна просьба, если не сложно, то дай маленький примерчик. Если нет примера, то буду сегодня дома пробовать и копаться в Гетсе.

Копаться лучше здесь.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438654
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а подключаешься к аксессу MDB или к SQLсерверу ?
ибо зачем именно адо??
что значит ((Контрагент.Кредиторка)=Yes)) ?
если MSSQL7 то Контрагент.Кредиторка=-1
если MSSQL2000 то Контрагент.Кредиторка=1
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438658
Если запросы, на которых базируется твой запрос имееют параметры , то , по моему необходимо все обеденить в один запрос.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438678
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То Викор:
Спасибо. Дома буду смотреть и разбираться.
То АлексейК:
Кредиторка=Да - это значит, что данный контрагент попадает в выборку. Это логическое поле в Табличке "Контрагент".
мдб подключаю к мдб. Никаких скулевых серваков нет.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438687
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То Просто Юзер:
Там этих запросов штук 10, наверное. Столько всяких условностей и проверок, что без поллит... т.е. без ведра водки не разберешься. И объединить их в один запрос если и можно, то очень сложно и я не знаю как. В общем, хлопотно это.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438691
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Параметров ни у одного запроса нет, просто есть условия WHERE....
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438704
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сохрани свой запрос как объект БД
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438715
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"а на других запросах, которые в свою очередь имеют кое-какие условия в отборе, в частности, ограничения по периоду"
ты же сам и сказал, што есть условия
вот ана их и требует
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438731
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Значит так. Опишу проблему немного подробленее (хотя, кажется я уже начал понимать, что тут необходимы параметрические запросы).
1) Есть итоговый запрос "Кредиторка" листинг которого приведен в первом посте. Никаких условий или параметров тут нет.
2) Этот запрос базируется на 1 табл и 4 подзапросах: Контрагент(табл), Вход_кредиторка, Исх_кредиторка, Оборот_оплачено и Оборот_задолженность. Здесь тоже нет ни условий, ни параметров.
3) Есть куча маленьких подзапросов, на которых базируются 4 подзапроса из п.2. Вот в этих запросах есть условия WHERE....., но нет параметров. Т.е. напримет ....WHERE [Дата оплаты]<=Forms![Период]![ДатаНачалоПериода]
4) Если запускать сам по себе запрос "Кредиторка", то он отрабатывается на ура и никаких параметров не требует. Если же я его SQL-стринг пытаюсь поместить в АДО.Рекордсет и открыть этот рекордсет в коде, то получаю сообщение, что "..нет параметров блаблабла..."
5) Все запросы остаются сохраненными и никуда не исчезают. Форма Период открыта и в контролах есть нужные значения.
Собственно вот такая байда получается. Простите, что так длинно, но по другому не объяснить что у меня тут творится.
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438762
Понимаю, дело хлопотное. Попробуй Всп таблицу составить
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438763
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот блин опять 25
опять ты же пишешь
"WHERE [Дата оплаты]<=Forms![Период]![ДатаНачалоПериода] "
вот это она и требует.
никак тебя не допрет
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32438813
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То ищ:
Чтобы до меня доперло наконец-то, скажи, где мне в коде передать этот параметр в строку WHERE моего подзапроса????????
...
Рейтинг: 0 / 0
Присвоить рекордсет формы АДО рекордсету
    #32439370
TRoUbLEs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, откликнувшимся на мой клич про киллера. ;-))) Вчера почитал про параметрические запросы, кое-что усвоил. Понял, что без них мне, похоже, тут не удастся обойтись и поэтому решил остановиться на первом варианте с использованием ДАО.Рекордсета. В общем, с параметрами буду разбираться позже, если вообще буду.
Еще раз спасибо. Будем считать, проблему исчерпанной....пока. ;-)
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Присвоить рекордсет формы АДО рекордсету
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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