|
|
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
Задача: Таблицы Заказы + СведОЗаказе. Есть запись некоторого заказа. Нужно создать "дочерний" заказ и открыть его в форме(сам не понял, что написал). По другому: 1. В меню выбрать: "Дочерний" (отличается от родительского только значением одного из ключевых полей). 2. Если такой уже есть, то он и открывается. 3. Если такого нет, то создаётся новая запись в Заказы, причём все "значимые" поля(кроме одного) наследуют значения Родителя. 4. Созданная запись открывается для редактирования. Вопрос по п.2: как убедиться, что нет/есть? Вопрос по п.4: как открыть именно созданную запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 11:16 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
Ответ по п.2: телепяты сегодня выходные :-( Трудно искать черную кошку в темной комнате... Примерно так: SELECT ID FROM MyTable WHERE [ID1] = Forms!MyForm!ID1 AND [ID2] <> Forms!MyForm!ID2 где ID - однозначный ключ ID1 - общий ключ для родителя и дочки ID2 - ключ, по которому определяешь, родитель или нет Если этот запрос вернет данные, значит есть дочка, которую и открываем Ответ по п.4: после добавления записи получить ее ключ и открыть по нему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 11:51 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
после добавления записи получить ее ключ и открыть по нему Т.е. не обойтись без: set rst = CurrentDb.OpenRecordset("Заказы") rst.MoveLast(это сработает? в смысле: Last это точно новая запись. ) qq = rst!ID Форма.RecordSource = "Select Заказы. From Заказы Where ((ID =)" & qq" Docmd.OpenForm "Заказы" или я усложняю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 18:35 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
Хинт: для получения последней записи вовсе не обязательно открывать в рекордсете всю таблицу Подробнее не могу - пора домой давно, а то уже и так торчу тут почти 12 часов :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 18:44 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
Если ключом является счетчик, то:\r \r FAQ. Что мы знаем про каунтеры (aka счетчики) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 18:46 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
я очень часто использую следующее решение: необходимые идентификаторы сохраняю в глобальные переменные и делаю запуск формы сделанной специально для работы с одной записью форма при запуске смотрит значения идентификаторов если передаются идетнификаторы со значениями 1 и более то открывается форма по существующей записи, если со значением 0 то сначала запускается процедура добавления записи , которая в результате установит глобальную переменную на значение добавленной записи по значению этой переменной в форму выбираются записи, запросом , наподобе как AlexJuice написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2003, 18:47 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
К В.С.: Ключ - не счётчик, 4-е ключевых поля разного типа. К AlexJuice: "Он улетел, но обещал вернуться...." :) (Карлсон, который живёт на крыше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2003, 02:32 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
Если это не счетчик, а 4 разных поля, то вообще никакой проблемы не должно быть. Все их значения должны быть известны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2003, 11:47 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
Другими словами, новую запись добавлять программно(через Insert into), запоминать значения ключей в переменных, а потом открывать recordset, используя эти значения в условии Where? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2003, 12:19 |
|
||
|
Создание новой записи и открытие её
|
|||
|---|---|---|---|
|
#18+
Точно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2003, 12:22 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32365312&tid=1677411]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
196ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 492ms |

| 0 / 0 |
