Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные? / 25 сообщений из 31, страница 1 из 2
30.06.2003, 18:07
    #32195431
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
Необходимо создать Recordset в памяти, добавить в него поля для работы с ним в модуле в модуле (программно наполнить данными).
КАК?
...
Рейтинг: 0 / 0
30.06.2003, 20:31
    #32195515
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
Был какой-то специальный провайдер в ADO... Это точно есть.
...
Рейтинг: 0 / 0
30.06.2003, 20:40
    #32195521
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
Лови пример:
Код: 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
30.06.2003, 21:50
    #32195542
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
ну еще можно создать аналогичный из файла

достоинство - не надо каждый раз создавать данные.
...
Рейтинг: 0 / 0
01.07.2003, 11:20
    #32195830
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
Премного благодарен. Особенно 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
01.07.2003, 11:24
    #32195839
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
брось этот рекордсет
задача решаема
обычными хп и языком T-sql
отвыкайте от рекордсетов
в adp
вот уже несколько
проектов создано
и НИ РАЗУ для
обновления или добавления
данных не использовался
рекордсет
...
Рейтинг: 0 / 0
01.07.2003, 11:34
    #32195852
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
2Хам трамвайный
Суть в том, что в rsOut должны войти только те записи из rsIn, которые есть в ComboBox'e на форме. И в дальнейшем данные из rsOut используются только на клиенте и обратно на сервер не передаются.

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

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

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

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

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

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

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

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

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

оно не трудно, НО я НЕ знаю, как заплняется ComboBox, т.к. эти формы делают другие люди.
а rsIn заполняется так:
1) у моей формы прописаны дополнительные свойства (таблица, из которой взять записи, поля с которыми работать, ссылка на контрол, куда вернуть значение, поле, значение которого надо вернуть)
2) на основе всего этого я "собираю" SELECT и делаю
CurrentProject.Connection.Execute
Т.е. SELECT для rsIn тоже постоянно разный.
Вот такие "пироги" .....
...
Рейтинг: 0 / 0
01.07.2003, 16:23
    #32196395
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
ууууууууууууу
вот из=за таких Шайтанов
у нас кривые руки
...
Рейтинг: 0 / 0
01.07.2003, 16:25
    #32196400
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
2Хам трамвайный
:) не уловил ... :) поясни, плиз ....
...
Рейтинг: 0 / 0
01.07.2003, 16:30
    #32196405
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
я легким ароматом
ушел морду бить
некоторым
...
Рейтинг: 0 / 0
01.07.2003, 16:55
    #32196440
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
ИТОГО:
решения нет? .. :(
...
Рейтинг: 0 / 0
01.07.2003, 18:26
    #32196570
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
2 Шайтан
Приведи хотя структуры RsIn,RsOut,Combo.По каким полям выполнять поиск
...
Рейтинг: 0 / 0
01.07.2003, 18:42
    #32196586
Шайтан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
>Приведи хотя структуры 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
01.07.2003, 19:50
    #32196641
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Acs 2002. *.adp Как создать Recordset, НЕ опирающийся на данные?
Попробуй сделать так

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


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

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


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