Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Otwieranie pliku z korespondencją seryjną przez VBA w Wordzie

FrancJosef 04 Kwi 2017 08:45 735 6
  • #1 04 Kwi 2017 08:45
    FrancJosef
    Poziom 7  

    Witajcie
    Mam już napisane makro w pliku Worda, które otwiera po kolei kilkadziesiąt plików Worda, które wszystkie są korespondencją seryjną. Makro robi swoje we wszystkich tych plikach jednak przy otwarciu każdego z nich muszę kliknąć na przycisk "TAK" na pytanie "Otwarcie tego dokumentu spowoduje uruchomienie następującego polecenia SQL ..."

    Czy jest jakaś komenda w VBA, która wstawiona w odpowiednie miejsce w kodzie makra uwolniła by mnie (makro) od konieczności ciągłego klikania w "TAK" dla każdego otwieranego przez makro pliku ???

    0 6
  • #2 04 Kwi 2017 18:42
    JRV
    Specjalista - VBA, Excel

    Sprobuj przed otwarciem
    Application.DisplayAlerts = wdAlertsNone

    0
  • #3 05 Kwi 2017 09:34
    FrancJosef
    Poziom 7  

    Po dodaniu tej linijki okno o pytanie rzeczywiście się nie pojawia, jednak skutek jest taki, jak przy kliknięciu w "NIE" czyli do otwieranego pliku nie podpina się źródło danych do korespondencji i nie można wygenerować w dalszej części plików, które zawierają dane z bazy danych.

    Potrzebne jest coś co zadziała podobnie ale "naciśnie przycisk TAK" i podepnie źródło danych.

    Dodano po 36 [minuty]:

    Znalazłem rozwiązanie problemu, choć nie jest to rozwiązanie bezpośrednie.

    W plikach w których ma być zastosowana korespondencja seryjna pozostawiłem oznaczenia podstawianych pól, jednak usunąłem wszystkie informacje o scalaniach (odłączyłem je od źródła danych na stałe). Dokument otwiera się normalnie jak zwykły Word bez korespondencji.
    W treści makra dołączyłem informacje o podłączeniu bazy danych do każdego z tych plików.
    Na końcu pracy makra wykorzystałem proponowaną linijkę kodu wyłączającą ostrzeżenia by pozbyć się komunikatu/pytania o zapisanie zmian przy zamykaniu pliku i tym samym plik nadal pozostaje niepołączony do dalszego wykorzystania.

    Wydaje się że makro działa ciut dłużej (kilka sekund), choć licząc opóźnienia w ręcznym klikaniu i tak wychodzi na plus.

    Jak by ktoś znalazł inne prostsze rozwiązanie automatycznego otwierania plików już połączonych ze źródłem danych to zapoznam się z ciekawością. :)

    0
  • #4 05 Kwi 2017 09:37
    JRV
    Specjalista - VBA, Excel

    tzn. domyslnie jest "NIE"?

    Dodano po 1 [minuty]:

    Sprobuj
    Application.Sendkeys "T"

    0
  • #5 05 Kwi 2017 10:03
    FrancJosef
    Poziom 7  

    "Sendkeys" próbowałem już wcześniej. Niestety nie działa.
    Potwierdzenie połączenia wynika już z "Documents.Open FileName:= ..." To w tej linijce prawdopodobnie trzeba by było użyć jakiegoś argumentu lub czymś ją zastąpić.
    Jeśli użyć SendKeys jako następną linijkę debuger nie dochodzi do niej i czeka na potwierdzenie.

    Dodano po 1 [minuty]:

    tak. domyślnie jest odpowiedź "Nie"

    0
  • #6 05 Kwi 2017 10:21
    JRV
    Specjalista - VBA, Excel

    Treśc SQL dla kazdego pliku jest inna? Jak nie, to dane do Excel'a, nastepnie do zakladek Word'a. Czy mogę zobaczyć jeden plik Word'a?

    0
  • #7 05 Kwi 2017 11:17
    FrancJosef
    Poziom 7  

    SQL dla wszystkich plików jest taki sam.
    Wszystkie pliki pobierają dane z tego samego pliku Excela.
    Mogę podesłać na maila/ lub inaczej wersję testową plików w wersji pierwotnej :)

    Dodano po 29 [minuty]:

    wysłałem wiadomość z załącznikiem na prv.

    0