Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: нередактируемый recordset сделать редактируемым
 
 автор: Аленка   (05.12.2008 в 15:11)   личное сообщение
 
 

Я объединяю в запросе две таблицы: платежи и курсы валют (объединение через дату и обозначение валюты).
При объединении таблиц через ДАТУ запрос становится нередактируемым.
Можно ли как-то сделать его редактируемым?

  Ответить  
 
 автор: KrukVN   (05.12.2008 в 15:45)   личное сообщение
 
 

может помочь: UniqueTable + ResyncCommand

  Ответить  
 
 автор: Кабан   (05.12.2008 в 15:47)   личное сообщение
 
 

определите индекс

  Ответить  
 
 автор: FORMAT   (05.12.2008 в 18:55)   личное сообщение
 
 


определите индекс

Интересно, а как в запросе или вьюхе определить индекс?

  Ответить  
 
 автор: Кабан   (08.12.2008 в 11:14)   личное сообщение
 
 

в двух таблицах должны быть определены индексы по объединяемым полям.
вот так :)
имхо

  Ответить  
 
 автор: FORMAT   (08.12.2008 в 11:50)   личное сообщение
 
 


Но ведь это не будет индексом вьюхи.Это будут индексы таблиц. В запросах или представлениях можно даже пронумеровать сторки сквозной нумерацией, но это не будет индексами в полном смысле этого слова.
Это я к тому, чтобы автор ( и не только ) не пытались индексировать представления, если автор, вдруг, захочет это сделать. Индексировать представления нельзя.

  Ответить  
 
 автор: Кабан   (08.12.2008 в 12:12)   личное сообщение
 
 

да я не против

  Ответить  
 
 автор: V.Kim   (05.12.2008 в 16:48)   личное сообщение
 
 

использовать DLookup
но будет медленно.
Лучше индексировать...

  Ответить  
 
 автор: Аленка   (05.12.2008 в 18:07)   личное сообщение
 
 

Какой индекс? Обе таблицы имеют ключевое поле. Разве нужно еще какой-то индекс добавлять?
Да и к тому же, ни одно поле в таблице больше не может быть индексов. Абсолютно все поля, кроме ключевым МОГУТ И СОДЕРЖАТ повторяющиеся значения.

  Ответить  
 
 автор: FORMAT   (05.12.2008 в 18:53)   личное сообщение
 
 

ADP или MDB?

  Ответить  
 
 автор: Аленка   (06.12.2008 в 14:57)   личное сообщение
 
 

MDB

  Ответить  
 
 автор: FORMAT   (08.12.2008 в 10:40)   личное сообщение
 
 

При использовании в запросах операций типа SUM, COUNT и т.д. а так же объединений типа LEFT JOIN, RIGHT JOIN запросы становятся нередактируемыми. И исправить это невозможно ( Если только выкручиваться через несколько запросов и избежание использования вышеназванного ).
В SQL servere можно выкрутиться с помощью функций и хранимок, но это тоже зависит от конкретного примера. В общем случае рецепт как переделать нередактируемый запрос на редактируемый дать оооооочень сложно, если вааще возможно.

  Ответить  
 
 автор: Кабан   (08.12.2008 в 13:02)   личное сообщение
 
 

>>В общем случае рецепт как переделать нередактируемый запрос на редактируемый дать оооооочень сложно, если вааще возможно.

делать временную таблицу на основе данных из нередактируемого запроса и дальше все дело техники

  Ответить  
 
 автор: Кабан   (08.12.2008 в 13:02)   личное сообщение
 
 

  Ответить  
 
 автор: FORMAT   (08.12.2008 в 13:44)   личное сообщение
 
 


делать временную таблицу на основе данных из нередактируемого запроса и дальше все дело техники 

Можно. Про временные таблицы я не подумал. Хотя потом придется принудительно распихивать записи из временной таблицы по текущим, а это все равно, что инсертить или апдейтить записи из формы. Но в этом случае временные таблицы теряют свой смысл.

  Ответить  
 
 автор: Анатолий (Киев)   (08.12.2008 в 10:55)   личное сообщение
 
 

У вас получилась связь многие-ко-многим, потому и запрос нередактируемый. Попробуйте в таблице "курсы валют" создать уникальный индекс на комбинации полей "дата" и "обозначение валюты".
Или, как уже советовали, в запросе, построенном на таблице "платежи", используйте DLookup для получения курса.

  Ответить  
 
 автор: KrukVN   (08.12.2008 в 12:21)   личное сообщение
 
 


 автор: FORMAT   (08.12.2008 в 10:40)
...а так же объединений типа LEFT JOIN, RIGHT JOIN запросы становятся нередактируемыми. И исправить это невозможно...

можно
для скуля делал.
просто нужно уникальную таблицу указывать и команду синхронизации

  Ответить  
 
 автор: FORMAT   (08.12.2008 в 13:45)   личное сообщение
 
 


просто нужно уникальную таблицу указывать и команду синхронизации

Или же с помощью хранимок и использовании конструкции WITH

  Ответить  
 
 автор: Аленка   (08.12.2008 в 14:45)   личное сообщение
 
 

СПАСИБО ВСЕМ ОГРОМНОЕ ЗА СОВЕТЫ. очень полезные и нужные. Как раз то, что нужно.
Все сделала - все получилось!!!!!!!! УРА!!!!!

  Ответить  
 
 автор: Pasat   (08.12.2008 в 20:14)   личное сообщение
 
 

А не могли бы показать что получилось, плиз

  Ответить  
 
 автор: Аленка   (09.12.2008 в 21:53)   личное сообщение
 
 

Конечно, могла бы. Только в итоге я это сделала в своем ADP, так как в итоге именно там мне и нужно было. Просто я не понимала разницу, поэтому начала делать эту часть проекта в MDB.
В ADP сделала с помощью UniqueTable и Resync.
Могу приложить проект и урезанный MDF. Хотя на скуле это делается легко, как оказалось.
С другой стороны, в MDB я помню у меня тоже вставали такие вопросы, поэтому я и в MDB тоже хочу такое сделать. По советам я общий смысл поняла, так что думаю, что все сделаю.
Как сделаю в MDB, обязательно выложу. Может пригодится Вам и кому-то еще.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList