Michał Dziubek

Programista, INFORM\'1

Wypowiedzi

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie Access vba - wysyłanie maila.
    8.03.2012, 10:28

    Jakty tego szukałeś w sieci pełno jest przykładów...



    Sub WyslijEmail()
    Dim oApp As Object
    Dim oEmail As Object


    'Przejmij Outlook lub otwórz jeśli zamkniety
    On Error Resume Next
    Set oApp = GetObject(, "Outlook.Application")
    'sprawdź czy był otwarty
    If oApp Is Nothing Then
    Set oApp = CreateObject("Outlook.Application")
    End If
    On Error GoTo 0

    'stworz nową wiadomość e-mail
    Set oEmail = oApp.CreateItem(0)

    'wypełnij właściwości mail-a
    With oEmail
    .To = "adres@na.ktory.wyslac"
    .Subject = "Temat wiadomosci"

    'Format wiadomosci:
    ' 3-rtf
    ' 2-html
    ' 1-tekst
    .BodyFormat = 1
    .body = "tresc"
    .ReadReceiptRequested = True
    .Recipients.ResolveAll

    'Pokaż formularz użytkownikowi
    .Display
    End With

    'Posprzątaj
    Set oEmail = Nothing
    Set oApp = Nothing

    End Sub

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie Environ$(USERNAME")
    7.03.2012, 21:55

    Zainspirowałeś mnie: http://itblogs.pl/programistaaccess/2012/03/zapisanie-...

    Daj znac czy Ci to pomogło.

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Zliczanie ilości różnych rekordów
    7.03.2012, 08:41

    W ten sposób tego nie osiągniesz, pyta o pacjenci.id_pacjenta, ponieważ odwołujesz się do tego pola w podzapytaniu do podzapytania umieszczonego w głównym select.
    Najprościej to wyciągnąć wszystkich pacjentów i połączyć się z policzonymi lekarzami:


    SELECT Pacjenci.imie
    , Pacjenci.nazwisko
    ,NZ(ile.n ,0) as IleLekarzy
    FROM Pacjenci
    LEFT JOIN (SELECT Id_pacjenta,
    COUNT(*) AS n
    FROM (SELECT DISTINCT Id_pacjenta,
    ,Id_lekarza
    FROM wizyty) n
    GROUP BY Id_pacjenta) ile
    ON ile.Id_pacjenta = Pacjenci.Id_pacjenta;

  • Michał Dziubek
    Wpis na grupie Bazy Danych w temacie MySQL - inner join
    6.03.2012, 14:01

    Robert B.:

    Dla inner join nie ma prawa być różnicy między wynikami zapytań podanych w OP.

    Mogą być różne jeżeli te pozostałe "inne warunki", na to pozwalają:

    select 
    *
    from
    tablica1 t1
    , tablica2 t2
    where
    t1.tablica2_id = t2.tablica2_id
    and t2.pole = 'A'
    or 1=2


    versus


    select *
    from
    tablica1 t1
    inner join tablica2 t2 on t1.tablica2_id = t2.tablica2_id and t2.pole = 'A'
    where 1=2

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie Environ$(USERNAME")
    6.03.2012, 10:48

    Pokaż fragment tego SQL-a w którym się odwołujesz do tej funkcji i zmień jej treść na:

    Public Function GetUserName() as String
    GetUserName = Environ("UserName")
    End Function

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie Environ$(USERNAME")
    5.03.2012, 23:03

    Po kolei gdzie i jak zadeklarowaleś GetUserName?
    Co to znaczy: "wpisuje do access"?

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie Environ$(USERNAME")
    5.03.2012, 17:00

    Co rozumiesz pod określeniem "nie widać"?

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Dwa pola wartości kwerendzie krzyżowej ?
    28.02.2012, 23:10

    najprościej to rzeczywiście join dwóch kwerend krzyżowych, ale nic nie stoi na przeszkodzie, aby zrobić to bez pivota, niestety wymaga to znajomości wszystkich wartości dla których chcemy stworzyć kolumny

    Załóżmy że mamy takie dane w tabeli "tab"


    |produkt |miesiac |ilosc |wartosc
    mleko 1 5 20
    mleko 2 5 20
    mleko 3 5 20
    masło 1 5 20
    masło 4 5 20
    masło 5 5 20


    I chcemy to obrócić po kolumnie miesiąc, więc wiemy że wartości w niej są od 1 do 5, więc obracamy:


    SELECT
    produkt
    ,sum(IIF(miesiac = 1,ilosc,0)) as [Styczeń (il)]
    ,sum(IIF(miesiac = 1,wartosc,0)) as [Styczeń (war)]
    ,sum(IIF(miesiac = 2,ilosc,0)) as [Luty (il)]
    ,sum(IIF(miesiac = 2,wartosc,0)) as [Luty (war)]
    ,sum(IIF(miesiac = 3,ilosc,0)) as [Marzec (il)]
    ,sum(IIF(miesiac = 3,wartosc,0)) as [Marzec (war)]
    ,sum(IIF(miesiac = 4,ilosc,0)) as [Kwiecien (il)]
    ,sum(IIF(miesiac = 4,wartosc,0)) as [Kwiecień (war)]
    ,sum(IIF(miesiac = 5,ilosc,0)) as [Maj (il)]
    ,sum(IIF(miesiac = 5,wartosc,0)) as [Maj (war)]
    FROM
    tab
    GROUP BY
    produkt

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie RunTime 2010 - problemy
    27.02.2012, 17:19

    A masz jakis błąd w dzienniku zdarzeń windowsa?

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie RunTime 2010 - problemy
    27.02.2012, 14:46

    Czy accde jest też generowany na access 2010 + sp1?

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie VBA - przekazanie wyniku query do pola tekstowego
    27.02.2012, 12:06

    Do wstawiania dat nie używaj ' tylko #:

    strSql2 = "INSERT INTO historia (osoba_id, data_godzina_modyf, rodzaj_modyfikacji) VALUES('" & txtOsobaID & "',#" & dataModyfikacji & "#,'" & rodzajModyfikacji & "');"

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Łączenie danych
    24.02.2012, 10:36

    Jeżeli np w kolumnie grupa_ryzyka nie będziesz miała wartości 2 to w wyniku pivota nie będziesz miała kolumny gr_ryz_2 i Twoja katenacja wywali błąd bo nie będzie takiej kolumny.

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie VBA - przekazanie wyniku query do pola tekstowego
    24.02.2012, 08:45

    Max z id może nie dać Ci tego co oczekujesz, zwłaszcza jeżeli działasz w środowisku kilku userów...
    Teoretycznie do pobrania ostatniego numeru używa się zapytania:

    SELECT @@IDENTITY


    Pobieranie nowego za pomocą max(id)+1 zadziala tylko w wypadku gdy ktoś nie usunie ostatnio dodanego, czyli masz id od 1-9, usuwasz 9, spodziewasz się przy nowym 9 bo masz ósemke, a JET wstawia 10...Michał Dziubek edytował(a) ten post dnia 24.02.12 o godzinie 08:46

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Łączenie danych
    23.02.2012, 21:33

    Joanna Jemioł:
    Nie wiem za bardzo co było złego w tym, że podziękowałam za pomoc?

    Nic, to nawet miłe, co mnie ogólnie denerwuje to fakt, że ktoś dostaje odpowiedzi, które nie są pełnym rozwiązaniem problemu, po czym chwali się, ze rozwiązał problem, ale nie pisze jak. Pomyśl co byś poczuła jakbyś trafiła na ten wątek przeczytała pytanie, okazało się ze to jest to czego szukasz i dochodzisz do ostatniej odpowiedzi...


    Co do Twojego rozwiązania to mam 1 uwagę:
    Pamiętaj, że jak np z zakresu który wybierasz wypadnie Ci grupa 2 to pivot nie utworzy takiej kolumny, przez co wszystko się posypie.

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie VBA - przekazanie wyniku query do pola tekstowego
    23.02.2012, 16:33

    Można tak:


    Dim rst As DAO.Recordset
    Dim strSQl As String
    Dim typ_modyfikacji As String
    Dim data_modyfikacji As String
    Dim id As Long

    typ_modyfikacji = "dopisanie do bazy"

    data_modyfikacji = Date & " " & Time
    'dodaj dane do tabeli

    Set rst = CurrentDb.OpenRecordset("Tab1", dbOpenTable, dbAppendOnly + dbSeeChanges)
    With rst
    .AddNew
    'w tym momencie pobieram id
    id = .Fields("id")
    .Fields("imie") = txtImie
    .Fields("nazwisko") = txtNazwisko
    .Update
    .Close
    End With
    Set rst = Nothing

    strSQl = "INSERT INTO historia (id, data_modyfikacji, typ_modyfikacji) VALUES('" & _
    id & "','" & data_modyfikacji & "','" & typ_modyfikacji & "');"
    CurrentDb.Execute strSQl
    Call MsgBox("Dopisałeś do bazy :" + vbCr & txtNazwisko & " " & txtImie)
    Michał Dziubek edytował(a) ten post dnia 23.02.12 o godzinie 16:35

  • Michał Dziubek
    Wpis na grupie ACCESS w praktyce w temacie VBA - przekazanie wyniku query do pola tekstowego
    23.02.2012, 12:59

    Jaka wersja access-a?
    Po co pisać kwerende do wartości którą się ma? Jeżeli np pole id jest w źródle pola tekstowego o nazwie ID to po dadaniu rekordu tam własnie będzie oczekiwana wartość:

    MsgBox Me.Id
    Michał Dziubek edytował(a) ten post dnia 23.02.12 o godzinie 13:00

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Łączenie danych
    22.02.2012, 19:06

    Joanna Jemioł:
    Witam,

    Dziękuję za wszelkie sugestie, poradziłam sobie z tym problemem w taki sposób jak chciałam.


    Cudownie, to może opiszesz jak tak dla potomnych borykających się z tym problemem

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie kwerenda krzyżowa - ?
    17.02.2012, 08:35

    Asi chodzi dokładnie o co Tobie,tylko ona chce grupować po jednej kolumnie a ty po dwóch, nie ma na to prostego sposobu, możesz użyc opisanego tutaj:
    http://allenbrowne.com/func-concat.html

    do distincta nie uzyjesz żadnej funkcji, co najwyżej do group by, ale nie ma w niej agregatu do katenacji stringów...

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie kwerenda krzyżowa - ?
    16.02.2012, 20:14

    Identyczny problem masz w wątku niżej:
    http://www.goldenline.pl/forum/2797552/laczenie-danych

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Łączenie danych
    15.02.2012, 08:43

    Damianie jak zrobić obejście to wiem, ale wg. Michała to prosta kwerenda wybierająca, nawet oferuje pomoc prywatnie w jej utworzeniu, więc chciałbym się dowiedzieć jak to zrobić, bo może jest myk którego poprostu nie znam.
    Opieram się na tym, ze widzę dane i oczekiwany efekt i o te sklejające dane mi się rozchodzi.

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do