Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wysyłanie kilku e-maili z bazy access

697 views
Skip to first unread message

Filip_Z

unread,
Nov 16, 2007, 3:47:11 AM11/16/07
to
Witam.
W access jestem początkujący, a chciałbym sobie ułatwić ztoszkę życie.
Mam bazę, która ma rozsyłać dzienne raporty do oddziałów firmy. Makro dzieli
raport dzienny na tabele o nazwach oddziałów (np. ODDZIAŁ BIAŁYSTOK).
Chciałbym, aby każdy miał możliwość rozesłania tych raportów. Na razie
formularz wygląda tak:
Pole ODDZIAL | Pole ilosc (raportów)
i jest prezentowany w sposób ciągły. Po kliknięciu "Pole ilosc" wywoływany
jest kod:

Private Sub PoliczOfNazwa_DblClick(Cancel As Integer)
DoCmd.SendObject acSendTable, "ODDZIAŁ BIAŁYSTOK", acFormatXLS,
"bial...@firma.pl", , , "Zestawienie " & Date(), "Tekst wiadomości"
End Sub

Ten fragment działa (tzn otwiera właściwie wypełnioną wiadomość OE), ale po
kliknięciu kolejnego oddziału nic się nie dzieje. Wysyłanie następnego
raportu jest możliwe dopiero po zamknięciu i ponownym otworzeniu bazy. Nie
mam pojęcia czy w kodzie czegoś brakuje, czy może niedobrze się za to
zabieram. Access nie pokazuje żadnego błędu, po prosu nie reaguje na kolejne
kliknięcia.
Próbowałem umieścić wszystkie oddziały pod jednym klawiszem, zarówno pisząc
kilka razy to samo, zmieniając oddziały i tytuły tabel, jak i korzystając z:
DoCmd.SendObject acSendTable, [wysyłka]![oddzial], acFormatXLS,
"[wysylka]![email]", , , "Zestawienie " & Date(), "Tekst wiadomości"

Czy jest jakiś sposób aby działało to za każdym razem (jaki)?
Czy da się umieścić takiego e-maila od razu w skrzynce nadawczej OE, zamiast
jako wiadomości otwartej do edycji?

Będę wdzięczny za sugestie.
--
pozdrawiam, Filip


Piotr Lipski

unread,
Nov 16, 2007, 4:18:33 AM11/16/07
to
On Fri, 16 Nov 2007 09:47:11 +0100, Filip_Z wrote:

> Witam.
> W access jestem początkujący, a chciałbym sobie ułatwić ztoszkę życie.
> Mam bazę, która ma rozsyłać dzienne raporty do oddziałów firmy.

[...]

Mała dygresja. Chociaż do dziś w jednej z firm działa moja aplikacja, która
za pomocą fremail.dll (a może freemail.dll? nie pamiętam...) intensywnie
wysyła i odbiera emaile (głównie w celu synchronizacji danych między
plikami mdb), chociaż są wbudowane api do wysyłania poczty oraz darmowe
utilki działające z wiersza poleceń, nic nie przebije Database Mail
dostępnego w MSSQL 2k5. I o ile użycie tego kombajnu (nie wiem, czy w
wersji Express jest Database Mail, do sprawdzenia) wyłącznie do rozsyłania
maili może być lekkim nieporozumieniem, o tyle już przejście z całą
aplikacją na architekturę C-S (niechby nawet z Accessem jako interfejsem)
mogłoby być dużym krokiem do przodu. Jak już masz inwestować swój czas w
naukę Accessa, podłącz mu lepszy silnik.

Wczoraj musiałem grzebnąć w aplikacji Accessowej napisanej przez kogoś
innego, sto lat temu. Facet chyba nawet nie stał obok żadnej bazy danych
jak to pisał. Obłęd w ciapki...

Aha, do tej pory nie wiem jak odkryć ukryte okno bazy danych w A2007 :)

Pieprzone wstążki...

--
PL, zbulwersus bardzos. Kawy...

Filip_Z

unread,
Nov 16, 2007, 5:58:29 AM11/16/07
to

Użytkownik "Piotr Lipski" <p...@mibi.pl> napisał w wiadomości
news:pc97fydwsnfo.hjg6jcz26rvm$.dlg@40tude.net...

> I o ile użycie tego kombajnu (nie wiem, czy w
> wersji Express jest Database Mail, do sprawdzenia) wyłącznie do rozsyłania
> maili może być lekkim nieporozumieniem,
A chodzi tylko o to. Znalazłem też artykuł o wysyłaniu za pomocą CDO
(http://msdn2.microsoft.com/en-us/library/ms526297.aspx) ale nie bardzo mam
czas żeby to w całości ogarnąć.

> o tyle już przejście z całą
> aplikacją na architekturę C-S (niechby nawet z Accessem jako interfejsem)
> mogłoby być dużym krokiem do przodu. Jak już masz inwestować swój czas w
> naukę Accessa, podłącz mu lepszy silnik.
Właśnie chodzi o to że nie piszę wielkiej aplikacji obsługującej całą firmę,
tylko chcę zautomatyzować swoją działkę pracy i nie martwić się urlop - po
prostu powiem: "kliknij przycisk |raport do oddziałów|" i zakończę rozmowę
;-)
--
pozdr, Filip


BraZby

unread,
Nov 16, 2007, 6:22:50 AM11/16/07
to

Użytkownik "Piotr Lipski" <p...@mibi.pl> napisał w wiadomości
news:pc97fydwsnfo.hjg6jcz26rvm$.dlg@40tude.net...
> On Fri, 16 Nov 2007 09:47:11 +0100, Filip_Z wrote:
>
[...]

>
> Wczoraj musiałem grzebnąć w aplikacji Accessowej napisanej przez kogoś
> innego, sto lat temu. Facet chyba nawet nie stał obok żadnej bazy danych
> jak to pisał. Obłęd w ciapki...
>
> Aha, do tej pory nie wiem jak odkryć ukryte okno bazy danych w A2007 :)
>
> Pieprzone wstążki...

A F11 nie działa ?

Albo Ikona lewy górny narożnik (Przycisk pakietu Office)
potem na samym dole Opcje programu/ Bieżąca baza danych/ Okienko nawigacji.

Proste. K...a mać. Jak ja kocham wstążki ...

--
Pozdrowienia
BraZby


Cynio

unread,
Nov 16, 2007, 6:56:50 AM11/16/07
to
On 16 Lis, 09:47, "Filip_Z" <os...@miejsce.pl> wrote:

> Ten fragment działa (tzn otwiera właściwie wypełnioną wiadomość OE), ale po
> kliknięciu kolejnego oddziału nic się nie dzieje. Wysyłanie następnego
> raportu jest możliwe dopiero po zamknięciu i ponownym otworzeniu bazy. Nie
> mam pojęcia czy w kodzie czegoś brakuje, czy może niedobrze się za to
> zabieram. Access nie pokazuje żadnego błędu, po prosu nie reaguje na kolejne
> kliknięcia.

a to nie jest tak że powinieneś wysłac wiadomośc i wtedy ponownie baza
będzie odblokowana??Bo u mnie jest dokłądnie właśnie tak, czyli musze
wysłac maila i dopiero moge tworzyc kolejną wiadomość

> Czy da się umieścić takiego e-maila od razu w skrzynce nadawczej OE, zamiast
> jako wiadomości otwartej do edycji?

tak, w metodzie SendObject, przedostatnim parametrem jest
"EditMessage" (jest to parametr po textmessage), defaultowo jest
ustawiony na true, ustaw go na false i wiadomośc powinna byc od razu
wysyłana. Czasem moze pojawić sie dodatkowe okno z komunikatem, że
jakaś aplikacja próbuje od razu wysłać maila i czy chcesz zatwierdzić
(na zwykłym outlook tak mam, na expressie nie próbowałem)

--
Pozdr.
Cynio

Filip_Z

unread,
Nov 16, 2007, 8:40:21 AM11/16/07
to
Użytkownik "Cynio" <cyni...@piaseczno.com.pl> napisał w wiadomości
news:f5d3193e-16dc-4bd4...@w28g2000hsf.googlegroups.com...

> a to nie jest tak że powinieneś wysłac wiadomośc i wtedy ponownie baza
> będzie odblokowana??Bo u mnie jest dokłądnie właśnie tak, czyli musze
> wysłac maila i dopiero moge tworzyc kolejną wiadomość.
Włączone automatyczne wysyłanie - nie ma nadal zmiany.

> tak, w metodzie SendObject, przedostatnim parametrem jest
> "EditMessage" (jest to parametr po textmessage), defaultowo jest
> ustawiony na true, ustaw go na false i wiadomośc powinna byc od razu
> wysyłana.

Działa ;-)

> Czasem moze pojawić sie dodatkowe okno z komunikatem, że
> jakaś aplikacja próbuje od razu wysłać maila i czy chcesz zatwierdzić
> (na zwykłym outlook tak mam, na expressie nie próbowałem)

OE również niestety, czyli kliknąć parenaście razy trzeba.

Dzięki - jestem o krok bliżej.

--
pozdrawiam, Filip


Filip_Z

unread,
Nov 19, 2007, 8:41:12 AM11/19/07
to
Witam.
Kłopotów ciąg dalszy. Baza nadal nie reaguje na wciśnięcie kolejnego
klawisza odpowiedzialnego za wysłanie raportu. Próbowałem na dwa sposoby:

**1. Za pomocą osobnych przycisków:

Private Sub Polecenie8_Click()
DoCmd.SetWarnings True 'tak dla pewnosci
DoCmd.SendObject acSendTable, "BIAŁYSTOK", acFormatXLS,
"te...@invalid.com", , , "Zestawienie " & Date, "tekst.", False
End Sub


Private Sub Polecenie9_Click()
DoCmd.SetWarnings True 'tak dla pewnosci
DoCmd.SendObject acSendTable, "BIELSKO BIAŁA", acFormatXLS,
"te...@invalid.com", , , "Zestawienie " & Date, "tekst.", False
End Sub
** Efekt: nie ma reakcji na drugie wysyłanie, niezależnie od kolejności

**2. Poprzez wywołanie spod jednego przycisku:
DoCmd.SetWarnings True 'tak dla pewnosci
DoCmd.SendObject acSendTable, "BIAŁYSTOK", acFormatXLS,
"te...@invalid.com", , , "Zestawienie " & Date, "tekst.", False
DoCmd.SendObject acSendTable, "BIELSKO BIAŁA", acFormatXLS,
"te...@invalid.com", , , "Zestawienie " & Date, "tekst.", False

**Efekt: wysyła tylko pierwszą wiadomość

Access nie zgłasza żadnego błędu ani po kliknięciu kolejnego przycisku ani
przy próbie wysyłki z wszystkiego na raz. Gdybym zobaczył komunikat błędu,
to miałbym jakies nadzieje na naprawienie tego, ale "milczący" błąd nawet
nie wiem jak diagnozować.

Ma ktoś może jakieś sugestie? Może jakiś inny sposób? Muszę wysłać do 40
oddziałów (o różnych adresach e-mail), 40 różnych tabel/wyników kwerendy.

--
pozdrawiam,
Filip


0 new messages