Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу? / 25 сообщений из 28, страница 1 из 2
16.06.2012, 22:02
    #37841293
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
Есть ли способ добавить в подчинённую форму новые записи, без внесения их в таблицу?
Нужно просто добавить какое-то количество строк с данными в подчинёнку, без проверки вводимых данных.
Может это можно сделать через динамический рекордсет? Или ещё каким-то способом?
...
Рейтинг: 0 / 0
16.06.2012, 23:38
    #37841340
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
Если подчинённая форма - свободная, то запросто.
...
Рейтинг: 0 / 0
17.06.2012, 00:54
    #37841391
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
viktor zeleninЕсть ли способ добавить в подчинённую форму новые записи, без внесения их в таблицу?
Нужно просто добавить какое-то количество строк с данными в подчинёнку, без проверки вводимых данных.
Может это можно сделать через динамический рекордсет? Или ещё каким-то способом?
1
подч.форма на времянке
2
подч.форма на свободном/отвязанном рекордсете
3
поле статуса для главной

выбирай ! :)
...
Рейтинг: 0 / 0
17.06.2012, 02:58
    #37841449
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
qwerty112, я бы выбрал 2 пункт. на свободном/отвязанном рекордсете

как это сделать можно? если можно примером, я уже перепробовал 1.000.000 комбинаций. не получается.

закидываю на форму подчинённую форму, что в источнике данных писать? Или какой запрос?
...
Рейтинг: 0 / 0
17.06.2012, 09:41
    #37841496
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
viktor zeleninqwerty112, я бы выбрал 2 пункт. на свободном/отвязанном рекордсете

как это сделать можно? если можно примером, я уже перепробовал 1.000.000 комбинаций. не получается.

закидываю на форму подчинённую форму, что в источнике данных писать? Или какой запрос?
"прекрасный" "взрослый" выбор !

вообщем в этом пункте - 2-а варианта

отвязанный рекордсет
- подчинённая форма - без источника
- контролы подч.формы - с заданными контролсоурсами (или задаются/снимаются программно)
- открываеш в коде АДО-рекордсет с : клиентским курсором, статик, батчоптимистик
- отключаеш рекордсет - рс.АктивКоннекшен = Нафинг
- присваеваеш рекордсету формы этот рекордсет

свободный рекордсет
- подчинённая форма - без источника
- контролы подч.формы - с заданными контролсоурсами (или задаются/снимаются программно)
- создаёш АДО-рекордсет, создаеш поля для него, открываеш (без источника), заполняеш нужными данными (из другого рекордсета, например)
- присваеваеш рекордсету формы этот рекордсет

зы
"о грустном" - ни в 1-ом, ни во 2-ом случае - нет возможности, потом, сохранить изменения "гамузом"
нужно будет "пробежатся" по рекордсету подч.формы, и внести изменения программно

ззы
у формы на свободном рекордсете (как минимум в А2003) - есть "чудная" особенность,
"гасить" Акцесс, если вдруг пользователь решит "по-фильтровать/по-сортировать" чё-нибудь "стандартными" фильтром/сортировкой

зззы
Опять отвязаный рекордсет
Форма на отсоединенном рекордсете - как запихнуть изменения в базу?
...
Рейтинг: 0 / 0
17.06.2012, 09:51
    #37841501
ILL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
эта тожэ /topic/728489
...
Рейтинг: 0 / 0
17.06.2012, 15:08
    #37841683
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
сделал всё, привязал...

тут я не могу понять, что за фигня, не могу добавить запись в форме, точнее даже так:

-генерится рекордсет
-привязывается к форме
-при загрузке формы в таблице одна запись
-делаю новую запись - возникает событие Form_BeforeInsert, там делаю
rst.AddNew
rst.UpdateBatch
-запись в таблицу добавляется

Потом хочу ещё одну запись добавить и гоголь - выкидывает ошибку, мол
Run-time error '2448':
Невозможно присвоить значение объекту
...
Рейтинг: 0 / 0
17.06.2012, 15:53
    #37841725
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
viktor zelenin,

дык, показуй (в мдб)
...
Рейтинг: 0 / 0
17.06.2012, 16:40
    #37841772
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
qwerty112, выкладываю
...
Рейтинг: 0 / 0
17.06.2012, 22:17
    #37841960
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
viktor zeleninqwerty112, выкладываю
нуу, такой "бубен"
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Form_AfterUpdate()
    Me.Recordset.UpdateBatch
    Set Me.Recordset = rst
End Sub

Private Sub Form_BeforeInsert(Cancel As Integer)
    Me.Recordset.AddNew
End Sub


вроде бы "лечит"

-------
а почему не "отвязанным рекордсетом" ?
имхо, было бы проще
...
Рейтинг: 0 / 0
18.06.2012, 00:28
    #37842017
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
qwerty112,
кажется работает, да. уже по концовке и сам к этому же пришёл.

qwerty112а почему не "отвязанным рекордсетом" ?
имхо, было бы проще

я честно говоря так и не понял как его сделать
по инструкции вроде бы полная ясность, а на деле не завелось, наверное поэтому и отмёл этот вариант.
но был бы рад взглянуть на работоспособный вариант.
...
Рейтинг: 0 / 0
18.06.2012, 00:48
    #37842030
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
viktor zeleninя честно говоря так и не понял как его сделать
по инструкции вроде бы полная ясность, а на деле не завелось, наверное поэтому и отмёл этот вариант.
но был бы рад взглянуть на работоспособный вариант.
дык, по ссылкам, в тех топиках - там как раз только об отвязанных рекордсетах речь ...

вообщем, вот,
см.форму F
...
Рейтинг: 0 / 0
18.06.2012, 03:15
    #37842077
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
qwerty112, ооо, кул!

вот это тема, реально намного проще... даже не верится.
только тогда последний вопрос, если мне нужно наполнить иногда данными из какого-то источника(например, из другого rs),
можно сабформу наполнить динамически?
...
Рейтинг: 0 / 0
18.06.2012, 08:51
    #37842149
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
Получение формы на отвязном рекордсете копированием данных из нормальной баунд формы.
НО!
У меня формы адошные, из адп. Под мдб - подпилите напильником.
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
    Dim rs1 As ADODB.Recordset
    Set rs1 = Me.grData.Form.Recordset
    
    Dim rs2 As ADODB.Recordset
    Set rs2 = New Recordset
    
    Dim fld As ADODB.field
    For Each fld In rs1.Fields
        '    adChar         129 Indicates a string value (DBTYPE_STR).
        '    adWChar        130 Indicates a null-terminated Unicode character string (DBTYPE_WSTR).
        '    adVarChar      200 Indicates a string value.
        '    adVarWChar     202 Indicates a null-terminated Unicode character string.
        '    adLongVarChar  201 Indicates a long string value.
        '    adLongVarWChar 203 Indicates a long null-terminated Unicode string value.
        Select Case fld.TYPE
        Case adChar, adWChar, adVarChar, adVarWChar, adLongVarChar, adLongVarWChar
            rs2.Fields.Append fld.Name, fld.TYPE, fld.DefinedSize, adFldIsNullable
        Case Else
            ' Использование жесткой дисциплины именования полей
            ' не надо лезть куда-то еще за типом поля
            If Left(fld.Name, 1) = "i" Then
                rs2.Fields.Append fld.Name, adInteger, , adFldIsNullable
            ElseIf Left(fld.Name, 1) = "n" Then
                rs2.Fields.Append fld.Name, adInteger, , adFldIsNullable
            ElseIf Left(fld.Name, 2) = "dt" Then
                rs2.Fields.Append fld.Name, adDate, , adFldIsNullable
            ElseIf Left(fld.Name, 2) = "db" Then
                rs2.Fields.Append fld.Name, adDouble, , adFldIsNullable
            ElseIf Left(fld.Name, 2) = "mn" Then
                rs2.Fields.Append fld.Name, adCurrency, , adFldIsNullable
            Else
                rs2.Fields.Append fld.Name, fld.TYPE, fld.DefinedSize, adFldIsNullable
            End If
        End Select
    Next fld
    
    rs2.Open
    If Not rs1.BOF Or Not rs1.EOF Then
        rs1.MoveFirst
        While Not rs1.EOF
            rs2.AddNew
            For Each fld In rs1.Fields
                rs2.Fields(fld.Name).VALUE = fld.VALUE
            Next fld
            rs2.UpdateBatch
        rs1.MoveNext
        Wend
    End If
    
    Set Me.grData.Form.Recordset = rs2
    Me.grData.Form.AllowEdits = True
...
Рейтинг: 0 / 0
18.06.2012, 12:48
    #37842529
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
Программист-Любитель, благодарю. я правда немного не то имел ввиду, хотя возможно эта схема подойдёт, когда надо будет сравнить два рекордсета.

но в общем, решается просто, открывается рекордсет с тем запросом, который нужен, а потом отвязывается от коннекшна и всё, можно вбивать данные сколько хочешь.
отдельное спасибо qwerty112 , за интересный материал.
...
Рейтинг: 0 / 0
19.06.2012, 00:42
    #37843450
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
ну да, немного поторопился, если делать селект с джойном, то мой вариант не прокатывает. отказываются вкидываться данные.

а какая обратная операция
rs.Fields.Append?

мне нужно удалить из рекордсета определённую запись
...
Рейтинг: 0 / 0
19.06.2012, 01:00
    #37843459
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
нашёл:
rs.delete 1
...
Рейтинг: 0 / 0
19.06.2012, 20:56
    #37845243
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
viktor zelenin,

Офигенный топик и примеры. К себе на полку в первые ряды , many many thanks!!!
...
Рейтинг: 0 / 0
19.06.2012, 22:23
    #37845304
Guest33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
авторну да, немного поторопился, если делать селект с джойном, то мой вариант не прокатывает
А так?
...
Рейтинг: 0 / 0
20.06.2012, 02:35
    #37845470
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
Guest33, Damn it!
Как вы это только вытворяете...
Виртуозы рекордсетов!
...
Рейтинг: 0 / 0
23.06.2012, 04:01
    #37851268
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
чёрт побери, а как теперь пройтись по всем записям таблицы?
как узнать сколько и чего добавлено?
...
Рейтинг: 0 / 0
23.06.2012, 11:45
    #37851349
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
Какие на хрен, талицы ? Мы ж за отвязные рекодсеты боролись!

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Цикл по "старому" рекордсету, или по исходной таблицы
Для каждой записи 
   если ее нет в "новом" рекодсете, куда наредактировали записи (т.е. она удалена)
   то удалить запись в "старом" рекордсете

Цикл по "новому" рекордсету
Для каждой записи 
   если запись есть в "старом" рекордсете
   то обновить ее данные по данным новой
   иначе добавить запись
...
Рейтинг: 0 / 0
23.06.2012, 14:49
    #37851451
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
Программист-Любитель,

да неважно как, я не не понимаю как пройтись по таблице или по отвязанному рекордсету.
к рекордсету не применяется перебор fld, потому что он закрыт.
и у таблицы не могу пересчитать записи. т.к. у её нет источника.
...
Рейтинг: 0 / 0
23.06.2012, 15:00
    #37851455
viktor zelenin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
вопрос в том, как подобраться к контейнеру, где содержатся записи и пересчитать его.
неважно, к чему присоединятся, к отвязанному рекордсету, или к динамической таблице.
я ни к чему не могу добраться просто...
мои динамически введённые данные же хранятся гдето. а вот где?
...
Рейтинг: 0 / 0
23.06.2012, 15:22
    #37851469
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу?
viktor zelenin,

Вы, батенька, какую-то муйню несете. Сами отвязные рекордсеты организовывете - стало быть "старые" данные у вас есть. Рекордсета, где данные правятся пользователем, не может не быть.

При всем при том не факт, что вашу задачу ваапще надо таким трюком делать. Баунд формы в аксесе - наше ффсе, говнокод не нужен.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли подчинённую форму наполнить динамически, не внося никаких данных в таблицу? / 25 сообщений из 28, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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