|
|
|
| Я объединяю в запросе две таблицы: платежи и курсы валют (объединение через дату и обозначение валюты).
При объединении таблиц через ДАТУ запрос становится нередактируемым.
Можно ли как-то сделать его редактируемым? | |
|
| |
|
|
|
| может помочь: UniqueTable + ResyncCommand | |
|
| |
|
|
|
|
|
| в двух таблицах должны быть определены индексы по объединяемым полям.
вот так :)
имхо | |
|
| |
|
|
|
|
Но ведь это не будет индексом вьюхи.Это будут индексы таблиц. В запросах или представлениях можно даже пронумеровать сторки сквозной нумерацией, но это не будет индексами в полном смысле этого слова.
Это я к тому, чтобы автор ( и не только ) не пытались индексировать представления, если автор, вдруг, захочет это сделать. Индексировать представления нельзя. | |
|
| |
|
|
|
| да я не против | |
|
| |
|
|
|
| использовать DLookup
но будет медленно.
Лучше индексировать... | |
|
| |
|
|
|
| Какой индекс? Обе таблицы имеют ключевое поле. Разве нужно еще какой-то индекс добавлять?
Да и к тому же, ни одно поле в таблице больше не может быть индексов. Абсолютно все поля, кроме ключевым МОГУТ И СОДЕРЖАТ повторяющиеся значения. | |
|
| |
|
|
|
|
|
| При использовании в запросах операций типа SUM, COUNT и т.д. а так же объединений типа LEFT JOIN, RIGHT JOIN запросы становятся нередактируемыми. И исправить это невозможно ( Если только выкручиваться через несколько запросов и избежание использования вышеназванного ).
В SQL servere можно выкрутиться с помощью функций и хранимок, но это тоже зависит от конкретного примера. В общем случае рецепт как переделать нередактируемый запрос на редактируемый дать оооооочень сложно, если вааще возможно. | |
|
| |
|
|
|
| >>В общем случае рецепт как переделать нередактируемый запрос на редактируемый дать оооооочень сложно, если вааще возможно.
делать временную таблицу на основе данных из нередактируемого запроса и дальше все дело техники | |
|
| |
|
|
|
|
|
делать временную таблицу на основе данных из нередактируемого запроса и дальше все дело техники
|
Можно. Про временные таблицы я не подумал. Хотя потом придется принудительно распихивать записи из временной таблицы по текущим, а это все равно, что инсертить или апдейтить записи из формы. Но в этом случае временные таблицы теряют свой смысл. | |
|
| |
|
|
|
| У вас получилась связь многие-ко-многим, потому и запрос нередактируемый. Попробуйте в таблице "курсы валют" создать уникальный индекс на комбинации полей "дата" и "обозначение валюты".
Или, как уже советовали, в запросе, построенном на таблице "платежи", используйте DLookup для получения курса. | |
|
| |
|
|
|
|
автор: FORMAT (08.12.2008 в 10:40)
...а так же объединений типа LEFT JOIN, RIGHT JOIN запросы становятся нередактируемыми. И исправить это невозможно...
|
можно
для скуля делал.
просто нужно уникальную таблицу указывать и команду синхронизации | |
|
| |
|
|
|
|
просто нужно уникальную таблицу указывать и команду синхронизации
|
Или же с помощью хранимок и использовании конструкции WITH | |
|
| |
|
|
|
|
| А не могли бы показать что получилось, плиз | |
|
| |
|
|
|
| Конечно, могла бы. Только в итоге я это сделала в своем ADP, так как в итоге именно там мне и нужно было. Просто я не понимала разницу, поэтому начала делать эту часть проекта в MDB.
В ADP сделала с помощью UniqueTable и Resync.
Могу приложить проект и урезанный MDF. Хотя на скуле это делается легко, как оказалось.
С другой стороны, в MDB я помню у меня тоже вставали такие вопросы, поэтому я и в MDB тоже хочу такое сделать. По советам я общий смысл поняла, так что думаю, что все сделаю.
Как сделаю в MDB, обязательно выложу. Может пригодится Вам и кому-то еще. | |
|
| |