Wypowiedzi
-
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
-
Zainspirowałeś mnie: http://itblogs.pl/programistaaccess/2012/03/zapisanie-...
Daj znac czy Ci to pomogło. -
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;
-
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 -
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 -
Po kolei gdzie i jak zadeklarowaleś GetUserName?
Co to znaczy: "wpisuje do access"? -
Co rozumiesz pod określeniem "nie widać"?
-
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
-
A masz jakis błąd w dzienniku zdarzeń windowsa?
-
Czy accde jest też generowany na access 2010 + sp1?
-
Do wstawiania dat nie używaj ' tylko #:
strSql2 = "INSERT INTO historia (osoba_id, data_godzina_modyf, rodzaj_modyfikacji) VALUES('" & txtOsobaID & "',#" & dataModyfikacji & "#,'" & rodzajModyfikacji & "');" -
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.
-
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 -
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. -
Można tak:
Michał Dziubek edytował(a) ten post dnia 23.02.12 o godzinie 16:35
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)
-
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 -
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 -
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... -
Identyczny problem masz w wątku niżej:
http://www.goldenline.pl/forum/2797552/laczenie-danych -
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.