Dodaj do ulubionych

Z Vba do bazy MySql

12.02.15, 02:23
Znów ugrzązłem ...
Mam tabelę MySql z kolumną [Godzina] w której mają być godzinny (np. 11:11).
Próbuję dopisać godzinę z kodu vba (bo to w Access'ie).
CurrentProject.Connection.Execute "UPDATE Tabela SET Godzina = #" & MyGodz & "# WHERE ... i.t.d
Sęk w tym, że nie mogę zapisać w taki sposób godziny. Daty, tekst, liczby wchodzą, czas ni cholery ... Bez ostrzeżenia po prostu nie zapisuje się w MySql-owej tabeli. Wszystko inne się zapisuje, czas ni czorta.
Może trzeba jakoś przekonwertować tą zmienną czasu, tylko JAK to zrobić w Accessowskim vba?
Obserwuj wątek
    • wariant_b Re: Z Vba do bazy MySql 12.02.15, 07:34
      Podaj czas jako string "GG:HH:SS" lub "GG:HH" albo jako liczbę: gghhss lub gghh
      np. jeśli chodzi o godzinę 11:30 to MySQL przyjmie jako czas tekst "11:30" albo
      liczbę 1130 (z sekundami "11:30:00" lub 113000)
      Microsoft traktuje czas jako liczbę określającą część dnia czyli: 0,479166666666667

      • kocinos Re: Z Vba do bazy MySql 12.02.15, 19:19
        Dzięki!
        Tak sobie właśnie myślałem, że String będzie najprostszym rozwiązaniem. Tylko, że coś mnię podkusiło, żeby "było elegancko" i dałem to pole (kolumnę) w MySql jako pole datatime ... Oczywiście zmienię, to nie problem, tylko szkoda całego dnia straconego na szukanie przyczyny ... Taka karma widać ...
        • wariant_b Re: Z Vba do bazy MySql 12.02.15, 21:45
          Jeśli nie wykonujesz jakichś bardziej złożonych operacji na datach i czasie,
          to oczywiście pole tekstowe jest najporęczniejsze, bo jego zawartość jest
          czytelna bez żadnego dodatkowego formatowania. Jeśli korzystamy z pól
          typu datetime zawartość przechowywana jest w innej postaci niż pobierana
          i wyprowadzana. Przykładowo w Excelu funkcja =teraz() zapisze w polu
          liczbę 42047,89733, ale pole sformatuje i wyświetli jako 2015-02-12 21:32
          I odwrotnie - jeśli wpiszemy tekst 2015-02-12 21:32 to zostanie on rozpoznany
          jako data i czas i zamieniony na liczbę, ale wyświetlony poprawnie.
          Jeśli popełnimy jakiś błąd we wprowadzanym polu Excel potraktuje
          to jako tekst, natomiast baza danych po prostu nie przyjmie danych.
          W twoim przypadku format wejściowy czasu był niezgodny z MySQL,
          więc dane były odrzucane.

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka