powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
25 сообщений из 31, страница 1 из 2
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195431
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо создать Recordset в памяти, добавить в него поля для работы с ним в модуле в модуле (программно наполнить данными).
КАК?
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195515
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Был какой-то специальный провайдер в ADO... Это точно есть.
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195521
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лови пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
dim rs as new adodb.recordset
dim i as integer
With rs
    With .Fields
        .Append  "IdNum" , adInteger
        .Append  "SomeValue" , adChar,  5 
    End With
    Set .ActiveConnection = Nothing
    .CursorLocation = adUseClient
    .CursorType = adOpenStatic
    .Open
    for i= 1  to  1000 
        .addnew
        !IdNum=i
        !SomeValue= "value_"  & cstr(i)
    next i
End With
rs.close
set rs=nothing
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195542
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну еще можно создать аналогичный из файла

достоинство - не надо каждый раз создавать данные.
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195830
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Премного благодарен. Особенно VIG :)
Плиз, ещё уточнение. Почему, когда подставляю для источника данных Recordset, созданный на реальных данных - rsIn Set Form_MyForm.Recordset = rsIn - всё нормально. А когда из rsIn "перегоняю" всё в rsOut

Dim i As Integer
Dim rsOutFieleCount As Integer
rsOutFieleCount = rsOut.Fields.Count
Do While Not rsIn.EOF
rsOut.AddNew
i = 0
Do While i < rsOutFieleCount
rsOut(i) = rsIn(i)
i = i + 1
Loop
rsOut.Update
rsIn.MoveNext
Loop

и делаю Set Form_MyForm.Recordset = rsOut - данных в форме нет :(((
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195839
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
брось этот рекордсет
задача решаема
обычными хп и языком T-sql
отвыкайте от рекордсетов
в adp
вот уже несколько
проектов создано
и НИ РАЗУ для
обновления или добавления
данных не использовался
рекордсет
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195852
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Хам трамвайный
Суть в том, что в rsOut должны войти только те записи из rsIn, которые есть в ComboBox'e на форме. И в дальнейшем данные из rsOut используются только на клиенте и обратно на сервер не передаются.

Что получается:
1) заполнен ComboBox (данные затянуты с сервера)
2) заполнен rsIn (данные затянуты с сервера)

На основе 1) и 2) - нужен rsOut.

Зачем опять сервер и T-SQL?
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195881
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хаму
А деревья у тебя растут? Чем тогда их поливаешь?
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32195970
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а источник combobox тоже
не сервера?
тогда зачем вообще сервер
нужен?
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196183
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>а источник combobox тоже не сервера?
>тогда зачем вообще сервер нужен?

1) Данные с сервера, но всякий раз разным SELECT'ом;
2) это пока, в дальнейшем могут быть данные и со списком значений
Поэтому и надо всё делать на клиенте.
Если считаешь, что можено на сервере, поясни, плиз, как данные из списка для комбобокса использовать в хп? Может это будет красиво и работоспособно.
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196187
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://hiprog.com/access/article.asp?id=370
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196207
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Хам трамвайный
Да не в том задача, что б этот список сформровать, а в том, что бы из Recordset'а, который возвращён с сервера и не имел отношения к этому комбику изначально, убрать те записи, которых нет в списке этого комбика.

=====================================================
1) заполнен ComboBox (с сервера, или статичным списком - не суть)
2) заполнен rsIn (данные затянуты с сервера)

На основе 1) и 2) - нужен rsOut, точнее из rsIn надо убрать строки, отсутствующие в списке ComboBox'а.
=====================================================
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196315
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос к серверу
с where ......
тот что тебе надо
и с сервера придет
требуемое
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196330
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Хам трамвайный
Думал над WHERE. Не получается. Я не знаю, какие наборы будут в комбике (на SELECT или просто забитый список, если селект - то к какой таблице(ам)), не знаю, на какой таблице(ах) строится rsIn....
Вся эта хрень работет в форме поиска, которая может быть вызвана из любой другой вормы приложения, от любого комбика. Просто иногда в этих комбиках НУУУУ очень много заисей для выбора, вот и вызываем енту форму, что б побыстрее запись найти.
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196355
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я от такого как у тебя
поиска ушел - неудобно
открой какую-то форму (раз)
выбери таблицу (2)
выбери поле (3)
выбери еще поле (если надо) (это
уже 4 или 5 или 6)
и в конце нажми кнопку "поиск"
я не выдержу такого
обращения
стукну такого программера
по башке
и скажу ему "ищи сам так"
я просто на каждой форме
где точно потребуется поиск
ввожу доп. поля со списками
по тем полям, где ищется.
источником полей со списками
служит
источник формы+(Все)
юзерю достаточно
выбрать мышой или ввести
буковки или цифирьки
в эти поля и нажать
enter и срабатывает запрос
к серверу
и вот она, милая, на экране

у меня сначала тоже
была поисковая форма,
которую ты описал,
но когда поствил
вышеописанный метод
все были счастливы
спрашивали: почему так
раньше не сделал
молча тупил взгляд кивая
в сторону НЕКИХ стандартов

единственное, чем приходтмся
жертвовать, используя
поля со списками, так это
местом на форме
зато скорость и удобство
возрастают в десятки раз
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196364
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Шайтан
Если не трудно покажи запросы которыми ты заполняешь ComboBox & rsIn
Посмотрим что можно сделать
ЗЫ По большому счету Хам трамвайный прав(имхо).
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196391
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хам трамвайный НЕ прав по одной простой причине - я не общаюсь с ползователями, а только с ТЗ ....

>Если не трудно покажи запросы которыми ты заполняешь ComboBox & rsIn

оно не трудно, НО я НЕ знаю, как заплняется ComboBox, т.к. эти формы делают другие люди.
а rsIn заполняется так:
1) у моей формы прописаны дополнительные свойства (таблица, из которой взять записи, поля с которыми работать, ссылка на контрол, куда вернуть значение, поле, значение которого надо вернуть)
2) на основе всего этого я "собираю" SELECT и делаю
CurrentProject.Connection.Execute
Т.е. SELECT для rsIn тоже постоянно разный.
Вот такие "пироги" .....
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196395
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ууууууууууууу
вот из=за таких Шайтанов
у нас кривые руки
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196400
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Хам трамвайный
:) не уловил ... :) поясни, плиз ....
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196405
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я легким ароматом
ушел морду бить
некоторым
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196440
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИТОГО:
решения нет? .. :(
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196570
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Шайтан
Приведи хотя структуры RsIn,RsOut,Combo.По каким полям выполнять поиск
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196586
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Приведи хотя структуры RsIn,RsOut,Combo.По каким полям выполнять поиск
ну пусть:
rsIn на базе "rsIn.Open SELECT ID, Name FROM TblName, .....";
rsOut аналогичен rsIn (ВСЕГДА), только создаётся:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 
Dim rsOut As Recordset
Set rsOut = New ADODB.Recordset
Set rsOut.ActiveConnection = Nothing
rsOut.CursorLocation = adUseClient
rsOut.CursorType = adOpenStatic
rsOut.Fields.Append ID, adVarChar,  255 
rsOut.Fields.Append Name, adVarChar,  255 
rsOut.Open

Далее перегоняю записи (для теста все, в дальнейшем по каким-либо условиям)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim i As Integer
Dim rsOutFieleCount As Integer
rsOutFieleCount = rsOut.Fields.Count
Do While Not rsIn.EOF
rsOut.AddNew
i =  0 
    Do While i < rsOutFieleCount
    rsOut(i) = rsIn(i)
    i = i +  1 
    Loop
rsOut.Update
rsIn.MoveNext
Loop


Combo - 2 столбца (ID, Name), ширине 0см,3см, присоединён первый

Суть проблемы:
Set Form_Poisk_Result.Recordset = rsIn - всё ОК!
Set Form_Poisk_Result.Recordset = rsOut - записей в форме нет, хотя однозначно записи в rsOut есть!!!
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196641
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй сделать так

Код: plaintext
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 rsOut As ADODB.Recordset
Set rsOut = New ADODB.Recordset
Set rsOut.ActiveConnection = Nothing
rsOut.CursorLocation = adUseClient
rsOut.CursorType = adOpenStatic
'rsOut.Fields.Append ID, adVarChar, 255
'rsOut.Fields.Append Name, adVarChar,  255 

rsOut.Open  "SELECT ID, Name FROM TblName, .....WHERE 1 = 0 " 
'Чтобы получить только структуру ,а не данные

'Dim i As Integer
Dim rsOutFieleCount As Integer
rsOutFieleCount = rsOut.Fields.Count
rsIn.MoveFirst
Do While Not rsIn.EOF
    rsOut.AddNew
'i = 0     'Зачем? у тебя всего два поля.
'    Do While i < rsOutFieleCount
'    rsOut(i) = rsIn(i)
'    i = i + 1
'    Loop
'rsOut.Update 'Зачем?Набор отсоединенный
   rsOut!Id=rsIn!Id
   rsOut!Name=rsIn!Name
   rsIn.MoveNext
Loop



Возможно вот еще что. Если rsOut определена как локальная переменная- то воможно там где ты присваиваешь
Set Form_Poisk_Result.Recordset = rsOut
rsOut уже не существует
...
Рейтинг: 0 / 0
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
    #32196976
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Возможно вот еще что. Если rsOut определена как локальная переменная- то воможно там где ты присваиваешь
Set Form_Poisk_Result.Recordset = rsOut
rsOut уже не существует


rsIn и rsOur определяются АБСОЛЮТНО аналогично в одной и той же процедуре

> rsOut.Open "SELECT ID, Name FROM TblName, .....
И какая структура у этой TblName, если rsOut нужен всякий раз разный? Попробовать использовать AS ? не думаю, что это правильно.....
Геде то тут собака порылась, это факт! Но где?!?!?!?
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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