Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aktualizacja danych w polaczonych tabelach nie jest obslugiwana przez te wersje ISAM

517 views
Skip to first unread message

Leszek Zur

unread,
Jan 4, 2008, 11:12:53 AM1/4/08
to
Mam bazę danych MS Access 2000. W bazie znajdują się 2 tabele połączone.
Jedna z nich o nazwie "OSOBY" to tabela pochodząca z innej bazy mdb
zawierająca dane osób, między innymi tekstowe "PESEL" i binarne "Nasz".
W drugiej tabeli połączonej W1 dane są pobierane z pliku tekstowego CSV
(generowanego przez inną aplikację) zawierającego również "PESEL". Mam
kwerendę, w której wyświetlane jest pole "Nasz" osób, których pesel
znajduje się w tabeli "OSOBY". W SQL zapytanie wygląda tak:

SELECT OSOBY.PESEL, OSOBY.Nasz
FROM W1 INNER JOIN OSOBY ON W1.PESEL = OSOBY.PESEL;

Teraz chcę zmienić dla tych rekordów w polu "Nasz" zmienić wartość "Nie"
na "Tak". I dostaję komunikat :
"Aktualizacja danych w połączonych tabelach nie jest obsługiwana przez
tę wersję ISAM"

Jak tabelę W1 zaimportuję a nie połączę to wszystko działa. Tylko, że ja
zmieniam dane w tabeli OSOBY a nie W1. Jak sobie z tym poradzić bo nie
chcę importować danych za każdym razem po zmianie pliku będącego źródłem
danych dla W1 ?

Leszek

Przemysław Rachwał

unread,
Jan 4, 2008, 3:46:15 PM1/4/08
to
Leszek Zur pisze:


połączone do czego? jak Excel to zapomnij że to zrobisz w łatwy i
przyjemny sposób -> trzeba kombinować z automatyzacją excela

Przemysław Rachwał

unread,
Jan 4, 2008, 3:53:52 PM1/4/08
to

Leszek Zur

unread,
Jan 4, 2008, 6:26:05 PM1/4/08
to
Przemysław Rachwał pisze:

>>
>> połączone do czego? jak Excel to zapomnij że to zrobisz w łatwy i
>> przyjemny sposób -> trzeba kombinować z automatyzacją excela
>
> http://office.microsoft.com/pl-pl/access/HA011739511045.aspx

Excel nie ma z tym nic wspólnego.
W linku, który podałeś mowa jest o usuwaniu rekordów a ja nic nie
usuwam. Chcę tylko zmienić wartość pola "Tak/Nie" pojedynczego rekordu.
Kwerenda odwołuje się do 2 podłączonych tabel. Jedna z nich jest tabelą
podłączoną z innej bazy danych Accessa. W tej tabeli jest pole typu
"Tak/Nie", którego wartość chcę zmienić. Druga podłączona tabela to plik
tekstowy typu CSV, w którym podano listę peseli.

Jeśli to dalej niejasne to na stronie http://www.zur.one.pl/baza.rar
utworzyłem tą bazę pokazująca o co mi chodzi. Wystarczy
1 - rozpakowac do c:\baza
2 - otworzyć bazę baza.mdb
3 - otworzyć kwerendę "Kwerenda"
4 - przełączyć w jedynym rekordzie tej bazy wartość w polu "Nasz"

Leszek

Przemysław Rachwał

unread,
Jan 4, 2008, 7:19:47 PM1/4/08
to
Leszek Zur pisze:
importuj to co masz w pliku CSV do jakiejkolwiek bazy MDB i problem się
rozwiąże :)

ograniczenie o którym pisałem jest na: UPDATE, INSERT i DELETE oraz w
twojej kwerendzie występuje jednocześnie tabela którą możesz modyfikować
oraz taka której tego robić nie możesz - Access więc zareagował tak jak
powinien - wywalił błąd

AP

unread,
Jan 5, 2008, 2:48:48 AM1/5/08
to
> 4 - przełączyć w jedynym rekordzie tej bazy wartość w polu "Nasz"
>
> Leszek

---
Ustaw właściwość kwerendy "Typ zestawu rekordów" na "Dynamiczny
(niespójne aktualizacje)" dodatkowo nie wyprowadzaj pola z tabeli "W1"
po SELECT...

---
AP

Krzysztof Naworyta

unread,
Jan 8, 2008, 5:39:47 AM1/8/08
to
Leszek Zur wrote:


Jeśli chcesz zaktualizować rekordy hurtem, to po prostu uruchom kwerendę
aktualizującą:

UPDATE
OSOBY
INNER JOIN
W1
ON
W1.PESEL = OSOBY.PESEL
SET
OSOBY.Nasz = true

--
KN

0 new messages