Mirosław Biskupski

Mirosław Biskupski Senior Automation
Engineer

Temat: Zmiana formatu daty i .... problem

Była sobie baza danych w Accessie (A2003) zaczytująca dane z Excela. Słońce świeciło jasno i wszyscy byli szczęśliwi (happy po polsku). Format daty był dd-mm-yyyy.
Zła czarownica zmieniła format daty na dd.mm.yyyy. Zaczytane dane są widoczne poprawnie, kiedy podglądam tabele.
Ale na tym poprawność się kończy ....
Baza nie radzi sobie z porównywaniem zapisanej daty z bieżącą datą. Typ pola w bazie to oczywiście Data/czas. Kiedy porównuje datę z tabeli z bieżacą datą (funkcje Date lub int(now() + odpowiednie formatowanie) aplikcja się ... wywala wykwintnym błędem 3077: syntax error in date in expression (używam wersji angielskojęzycznej, ale na polskiej jest to samo).
Czy ktoś mógłby podsunąc mi pomóc, jak sobie z tym poradzić?
Wszystko działało pięknie do zmiany formatu daty, ale nawet zmiana formatu nie powinna mieć takiego efektu.
Pozdrawiam
Nikodem Dobrzański

Nikodem Dobrzański Architekt systemu,
BizTech Konsulting
S.A.

Temat: Zmiana formatu daty i .... problem

Silnik Jet bazy sprawdza pierwsze osiem wierszy i rozstrzyga, z jakim typem kolumny ma do czynienia. W przypadku formatu dd-mm-yyy do Date, dla tego drugiego formatu to Custom. Te ostatnie są zazwyczaj traktowane jako pola tekstowe. Porównanie daty do pola tekstowego prowadzi zazwyczaj do błędu.
Osobiście nie wiem, czemu ludzie wprowadzają taki zamęt z datami na własną prośbę, przecież najdogodniejszy to RRRR-MM-DD. A osoba, która ten format utworzyła, powinna wytłumaczyć się na forum, co ją do tego podkusiło.
Najprostsze rozwiązanie to zmiana jednej pustej kolumny w Excelu na typ Date, następnie wprowadzenie formuły, która utworzy Ci z drugiego formatu pierwszy.
Pozdrawiam
Mirosław Biskupski

Mirosław Biskupski Senior Automation
Engineer

Temat: Zmiana formatu daty i .... problem

Dzięki za podpowiedź.
Niestety, ten Excel tworzony jest (eksportowany) z poziomu innego programu. Daty występują w kilku miejscach i do tego np: w jednym wierszu (Termin zapłaty, Data zapłaty). Taki arkusz ma tysiące wiersz z danymi
Całość ma byc na tyle prosta, że pani generuje Excela w programie X, uruchamia bazę Accessową, wskazuje arkusz Excela i importuje do Accessa. Potem z Accessa wrzuca dane na serwer.
To wszystko mają robić panie z księgowości, więc... wiadomo, jak jest.

Dla wyjaśnienia: mój program dział bez problemu w przypadku starszego farmatu daty. Zaczytywał, porównywał, przerabiał. Ktoś zmienił ustawienia w ustawieniach regionalnych Windowsa. Czemu? Nie wiem. Panie także nie wiedzą, skąd się wziął ten format daty. Mają jakiś informatyków, ale nie mam pojęcia po co taka zmiana. Przecież w Polsce nie często widzi się format z kropkami.
Sebastian Kaim

Sebastian Kaim Business Analyst,
Bank Zachodni BZ WBK
S.A.

Temat: Zmiana formatu daty i .... problem

Może na komputerze generującym skoroszyt źródłowy komuś przyszło do głowy pobawić się formatem daty systemowej i teraz wystarczy przywrócić to co było wczesniej?
Nikodem Dobrzański

Nikodem Dobrzański Architekt systemu,
BizTech Konsulting
S.A.

Temat: Zmiana formatu daty i .... problem

Zmiana ustawień regionalnych mogła być spowodowana skrótem klawiszowym.
Panie z księgowości albo potrafią posługiwać się narzędziami, albo nie. To, że zmienił się typ kolumny w Excelu, powinny same zauważyć, to nie VBA.
Jeżeli mamy do czynienia z plikiem excela, a nie csv, minimalizując nakłady robocze, można próbować naprawiać taki plik przez VBScript i OLE. Wtedy pani z księgowości zrzuca dane do pliku, następnie uruchamia skrypt, który to naprawia, a na koniec zaciąga dane przez Accessa.
A jeśli to csv, to nie bawiłbym się w Excela, tylko ciągnął dane wprost do Accessa. Co więcej, wystarczyłoby, żeby plik miał tę samą nazwę, a wtedy pozostaje nie import, a linkowanie tabeli, a ponad tablicą postawić widok.



Wyślij zaproszenie do