Temat: Acces do word Bookmarks

Witajcie, potrzebuję pomocy w zmianie kodu. Potrzebuję wypełnić Word danymi z programu Access. Przez FormFields nie mogę tego zrobić bo mam dużo znaków w polu i po prostu nie działa. Zrobiłem wypełnienie przez zakładki (Bookmarks) i wszystko działa ale (z poniższym kodem wyrzuca tylko pierwszy rekord z kwerendy) Potrzebuję zmodyfikować kod tak aby uzupełniać Word bieżącym wyfiltrowanym rekordem z formularza.
Ma ktoś jakiś pomysł na zmianę kodu?

Function wypelnijword()

Dim appword As Word.Application
Dim doc As Word.Document
Dim Path As String

On Error Resume Next
Error.Clear

Set appword = GetObject(, "word.application")
If Err.Number <> 0 Then
Set appword = New Word.Application
appword.Visible = True
Set rs = CurrentDb.OpenRecordset("kwerenda_raport")

End If

Path = "C:\Users\zz\Desktop\Baza\wypelniony.docx"
Set doc = appword.Documents.Open(Path, , True)
With wDoc

doc.Bookmarks("NUMER ").Range.Text = Nz(rs!Numer, "")
doc.Bookmarks("NR_PRO").Range.Text = Nz(rs!Nr_pro, "")
doc.Bookmarks("DATA_WNIOSKU").Range.Text = Nz(rs!Data_wniosku, "")

appword.Visible = True
appword.Activate
End With

Set doc = Nothing
Set appword = Nothing

End Function
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Acces do word Bookmarks

Nigdy nie wstawiałam danych do Worda z Accessa, za to często - do Excela. Nie mam większej praktyki w programowaniu VBA w Wordzie, ale jeżeli chodzi o Accessa - to wydaje mi się, że potrzebujesz pętli odczytującej kolejne rekordy z rs. Czyli coś w tym stylu:
 
rs.movefirst
while not rs.eof
doc.Bookmarks("NUMER ").Range.Text = Nz(rs!Numer, "")
doc.Bookmarks("NR_PRO").Range.Text = Nz(rs!Nr_pro, "")
doc.Bookmarks("DATA_WNIOSKU").Range.Text = Nz(rs!Data_wniosku, "")
if not rs.eof then rs.movenext
wend
Ten post został edytowany przez Autora dnia 27.03.22 o godzinie 20:27

Temat: Acces do word Bookmarks

Bardzo dziękuje za odpowiedź, ale nie o to mi chodziło.
Z pętlą access wstawia w pola wszystkie rekordy obok siebie jeden po drugim.
Zależy mi, żeby z danego formularza wyfiltrowany został jeden - konkretny rekord, który spełnia wymagania i był przesłany do worda.
Wydaje mi się, że brakuję odwołania do wyfiltrowanego formularza
Tutaj wstawiłem że dane ma brać z kwerendy raport
Set rs = CurrentDb.OpenRecordset("kwerenda_raport") ... tu chyba mam błąd...
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Acces do word Bookmarks

W takim przypadku to faktycznie wygląda zupełnie inaczej. Chyba najprościej byłoby w takim układzie w kodzie zdefiniować nową kwerendę, opartą na kwerenda_raport, ale ze zdefiniowanym warunkiem. Jeżeli formularz jest oparty na kwerenda_raport to wyglądałoby to mniej więcej tak:

MyFiltr=me.Filter
Kwerenda_eksport="Select Kwerenda_raport.Numer, Kwerenda_raport.Nr_pro, Kwerenda_raport.Data_wniosku " & _
"From Kwerenda_raport " & _
"Where " & MyFiltr & ";"
Set rs = CurrentDb.OpenRecordset(kwerenda_eksport)

Jeżeli w warunku filtra są użyte jakieś inne pola z kwerendy_raport, wstaw je do pierwszej linii tej nowej kwerendy.

Temat: Acces do word Bookmarks

Niestety jeszcze jest nie tak. Nie wstawia nic
Marzanna S.:
W takim przypadku to faktycznie wygląda zupełnie inaczej. Chyba najprościej byłoby w takim układzie w kodzie zdefiniować nową kwerendę, opartą na kwerenda_raport, ale ze zdefiniowanym warunkiem. Jeżeli formularz jest oparty na kwerenda_raport to wyglądałoby to mniej więcej tak:

MyFiltr=me.Filter
Kwerenda_eksport="Select Kwerenda_raport.Numer, Kwerenda_raport.Nr_pro, Kwerenda_raport.Data_wniosku " & _
"From Kwerenda_raport " & _
"Where " & MyFiltr & ";"
Set rs = CurrentDb.OpenRecordset(kwerenda_eksport)

Jeżeli w warunku filtra są użyte jakieś inne pola z kwerendy_raport, wstaw je do pierwszej linii tej nowej kwerendy.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Acces do word Bookmarks

No cóż, z fusów więcej nie wywróżę :)

Temat: Acces do word Bookmarks

DziękujęTen post został edytowany przez Autora dnia 29.03.22 o godzinie 20:40

Następna dyskusja:

Pilnie szukam pomocy Acces ...




Wyślij zaproszenie do