🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
5 messages
5 total messages Started by Bolo G. Wed, 11 May 2016 11:27
Co robię źle - import danych z Excela do baza danych z relacjami "jeden do wielu" i polami kombi - źródło z tabeli.
#137195
Author: Bolo G.
Date: Wed, 11 May 2016 11:27
23 lines
3412 bytes
Witam wszystkich

Jestem amatorem w kwestii baz danych. Od kilku lat używam Accessa do obsługi bazy danych, którą sam stworzyłem. Baza ta służy mi do nadzorowania i zarządzania dokumentacją techniczną w dziale technicznym pewnej firmy. Baza danych ma nadane relacje jeden do wielu i funkcjonuje póki co sprawnie.

Problem pojawił się, kiedy postanowiłem rozbudować moja bazę. Robiąc próby rozbudowy natknąłem się na problem dla mnie nie do rozwiązania. 

Rozbudowa polega na zaimportowaniu danych z Excela. Tabele które będą przy tej operacji tworzone mają zawierać pola z danymi z tabel już istniejących w bazie. Import danych ma polegać na tym, że najpierw tworzę tabele w Accessie (bez rekordów), a następnie rekordy (dane) importuję z Excela.

Wszystko byłoby dobrze, gdyby nie relacje i pola kombi. Podczas importowania program usuwa mi wszystkie dane z pól, które są polami kombi.

Kiedy tą bazę tworzyłem robiłem tak samo i jakoś mi wyszło....no może nie jakoś....po prostu teraz coś źle robię, o czymś zapomniałem i nie mogę sobie z tym poradzić.

Najlepiej mój problem przedstawia przykładowa baza, jaką przygotowałem aby zobrazować mój problem. 

Link: https://drive.google.com/folderview?id=0B_3ojMWvS4t9NGQyVkE0LThiM0E&usp=drive_web

W katalogu dwie wersje baz danych: z relacjami i bez. Do bazy z relacjami nie można zaimportować danych (plik tblSurowce-wyroby.xlsx) do tabeli tblSurowce-wyroby bez usuwania danych z pól kombi. W przypadku bazy bez nadanych relacji problem ten nie istnieje. Pewnie problem tkwi w rozmiarze pola i typie danych pola. W bazie bez relacji pola kombi są ustawione na „TEXT” a w bazie z relacjami na „LICZBA” – warunek konieczny do uzyskania relacji jeden-do-wielu.

Byłbym wdzięczny za pomoc, radę lub wskazówkę. Samą strukturę bazy mogę stworzyć w Accessie, ale wszystkie dane przygotowane mam w Excelu (około 2000 tys. rekordów). Wklepywanie teraz tego do czystej bazy to karkołomne zadanie...

Bazę tworzyłem w Accessie 2007, teraz mam Access 2010.

Pozdrawiam
Re: Co robię źle - import danych z Excela do baza danych z relacjami "jeden do wielu" i polami kombi - źródło z tabeli.
#137196
Author: md
Date: Wed, 11 May 2016 18:39
30 lines
3500 bytes
W dniu 11-05-2016 o 13:27, Bolo G. pisze:
> Witam wszystkich
>
> Jestem amatorem w kwestii baz danych. Od kilku lat używam Accessa do obsługi bazy danych, którą sam stworzyłem. Baza ta służy mi do nadzorowania i zarządzania dokumentacją techniczną w dziale technicznym pewnej firmy. Baza danych ma nadane relacje jeden do wielu i funkcjonuje póki co sprawnie.
>
> Problem pojawił się, kiedy postanowiłem rozbudować moja bazę. Robiąc próby rozbudowy natknąłem się na problem dla mnie nie do rozwiązania.
>
> Rozbudowa polega na zaimportowaniu danych z Excela. Tabele które będą przy tej operacji tworzone mają zawierać pola z danymi z tabel już istniejących w bazie. Import danych ma polegać na tym, że najpierw tworzę tabele w Accessie (bez rekordów), a następnie rekordy (dane) importuję z Excela.
>
> Wszystko byłoby dobrze, gdyby nie relacje i pola kombi. Podczas importowania program usuwa mi wszystkie dane z pól, które są polami kombi.
>
> Kiedy tą bazę tworzyłem robiłem tak samo i jakoś mi wyszło....no może nie jakoś....po prostu teraz coś źle robię, o czymś zapomniałem i nie mogę sobie z tym poradzić.
>
> Najlepiej mój problem przedstawia przykładowa baza, jaką przygotowałem aby zobrazować mój problem.
>
> Link: https://drive.google.com/folderview?id=0B_3ojMWvS4t9NGQyVkE0LThiM0E&usp=drive_web
>
> W katalogu dwie wersje baz danych: z relacjami i bez. Do bazy z relacjami nie można zaimportować danych (plik tblSurowce-wyroby.xlsx) do tabeli tblSurowce-wyroby bez usuwania danych z pól kombi. W przypadku bazy bez nadanych relacji problem ten nie istnieje. Pewnie problem tkwi w rozmiarze pola i typie danych pola. W bazie bez relacji pola kombi są ustawione na „TEXT” a w bazie z relacjami na „LICZBA” – warunek konieczny do uzyskania relacji jeden-do-wielu.
>
> Byłbym wdzięczny za pomoc, radę lub wskazówkę. Samą strukturę bazy mogę stworzyć w Accessie, ale wszystkie dane przygotowane mam w Excelu (około 2000 tys. rekordów). Wklepywanie teraz tego do czystej bazy to karkołomne zadanie...
>
> Bazę tworzyłem w Accessie 2007, teraz mam Access 2010.
>
> Pozdrawiam
>
Na początek sprawdź kolejność importowania danych
być może najpierw importujesz dane do tabel powiązanych relacjami bez 
wcześniejszego wypełnienia tabel podstawowych

md
Re: Co robię źle - import danych z Excela do baza danych z relacjami "jeden do wielu" i polami kombi - źródło z tabeli.
#137197
Author: Bolo G.
Date: Sun, 15 May 2016 07:34
11 lines
2063 bytes

Jeśli dobrze rozumiem, to tabele podstawowe to te istniejące już bazie??

Dane importuję do pustej tabeli  z określonymi polami. Jedno z pół jest polem kombi które pobiera dane z innej tabeli/kwarendy (już wypełnionej danymi).

Wszystko się importuję ładnie jeśli nie ma nadanych relacji Jeden-do-wielu. Jeśli nadam relację, to wyskakuje komunikat, że zostanie usuniętych tyle i tyle rekordów w danym polu z powodu takiego i takiego (nie ma teraz dostępu do Accessa i dokładnie nie pamiętam treści komunikatu).

No nic, mimo wszystko dziękuje za odpowiedź.

Pozdrawiam
Re: Co robię źle - import danych z Excela do baza danych z relacjami "jeden do wielu" i polami kombi - źródło z tabeli.
#137198
Author: Zbigniew Bratko
Date: Sun, 15 May 2016 16:17
48 lines
3064 bytes
W dniu 2016-05-11 o 13:27, Bolo G. pisze:

[...]


> Najlepiej mój problem przedstawia przykładowa baza, jaką przygotowałem aby zobrazować mój problem.
>
> Link: https://drive.google.com/folderview?id=0B_3ojMWvS4t9NGQyVkE0LThiM0E&usp=drive_web
>
> W katalogu dwie wersje baz danych: z relacjami i bez. Do bazy z relacjami nie można zaimportować danych (plik tblSurowce-wyroby.xlsx) do tabeli tblSurowce-wyroby bez usuwania danych z pól kombi. W przypadku bazy bez nadanych relacji problem ten nie istnieje. Pewnie problem tkwi w rozmiarze pola i typie danych pola. W bazie bez relacji pola kombi są ustawione na „TEXT” a w bazie z relacjami na „LICZBA” – warunek konieczny do uzyskania relacji jeden-do-wielu.

Bo w obu bazach  w tabeli "tblSurowce - wyroby" pola "Wyrób" i "Surowce" 
jest typu Liczba.

Wartości typu 123.A, czy ABC.1 nie da się zaimportować do pola typu Liczba.


>
> Byłbym wdzięczny za pomoc, radę lub wskazówkę. Samą strukturę bazy mogę stworzyć w Accessie, ale wszystkie dane przygotowane mam w Excelu (około 2000 tys. rekordów). Wklepywanie teraz tego do czystej bazy to karkołomne zadanie...

Spróbuj może w taki sposób w bazie bez relacji .

1. W tabelach pomocniczych "tblSurowce" i tblWyroby" usuń pola 
"Identyfikator" będące kluczem głównym i załóż klucz podstawowy na 
polach tekstowych "Nazwa" w obu tabelach.

2. W tabeli "tblSurowce - wyroby" pola "Wyrób" i "Surowce" zmień na typ 
"Text"

3. Następnie załóż relacje 1--oo na polach Numer-Wyrób i Numer-Surowiec 
(podobnie jak w bazie z relacjami, ale na w/w polach).

I spróbuj zaimportować dane.

Przed importem musisz przygotować obie tabele, tak by zawierały 
wszystkie "Surowce" i "Wyroby" występujące w arkuszu Excela, bo inaczej 
Access nie zaimportuje tych wierszy, dla których nie znajdzie powiązania 
z tymi polami.


PS.
Znowu wcześniej wysłałem na priv.

-- 
Pozdrowienia
BraZby
www.faq.accdb.pl
www.accdb.pl
Re: Co robię źle - import danych z Excela do baza danych z relacjami "jeden do wielu" i polami kombi - źródło z tabeli.
#137199
Author: Bolo G.
Date: Fri, 20 May 2016 10:17
8 lines
2000 bytes
Dziękuje za wiadomość. Przepraszam, że wcześniej nie odpisałem, ale mam urwanie głowy w robocie jak i prywatnie, a temat bazy chwilowo odłożyłem na bok. 

Tak jak radzisz, to też chciałem zrobić, ale ktoś kiedyś mnie uczył, ze powinienem mieć zawsze oddzielne pole na ID pod klucz podstawowy.
 Moja dotychczasowa baza na tym się własnie opiera, więc  aby zastosować to co radzisz, musiałbym diametralnie zmienić strukturę swojej bazy. Na przykładzie jaki podałem, to okej, ale to tylko przykład.

Bardzo dziękuje za odpowiedź. Musze jeszcze to przemyśleć.

Pozdrawiam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads