Office - Word, Excel und Co. 9.759 Themen, 41.747 Beiträge

Access: aktueller Patient Abfrage

higgl / 1 Antworten / Baumansicht Nickles

Hallo zusammen,

ich bin gerade dabei, eine Patientendatenbank zu erstellen. Für diese DB habe ich ein Formular, wo man neue Patienten erstellen, Vorhandene anzeigen und bearbeiten, löschen... kann.
Jetzt möchte ich in dieses Formular einen Button integrieren, der bei Klick die für einen Brief wichtigen Daten des aktuellen Patieten (Anrede, Vor- Nachname, Adresse, PLZ, Ort) ausliest, um diese dann automatisch in Word in dem Geschäftsbrief im Empfängerfeld einzufügen.

Hat wer eine Idee, wie sich so etwas realisieren lässt, meine aktive Zeit mit Access ist schon zu lange Zeit her...

Vielen Dank!

Never argue with an idiot. They drag you down to their level and then beat you with experience.
bei Antwort benachrichtigen
Uli M higgl „Access: aktueller Patient Abfrage“
Optionen

Das ist weniger eine Sache von Access. Entweder löst du dies über die Serienbrief-Funktion von Word (bek. auch von Access aus ansteuerbar) oder über COM-Automation (ggf. auch kombiniert). Für einen Einzelfall solltest du eine mit Textmarken (alternativ auch Formularfeldern) vorpräparierte Dokumentvorlage verwenden, z.B.:

Dim objWord As Object ' Word.Application
Dim objDoc As Object ' Word.Document
Const ksTemplate = "voller Pfad zur *.dot"

Sub BriefAnAktuellenPatienten()
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add(ksTemplate)
fFillBookmark "Anrede", "Wert des entspr. Access-Formularfeldes" ' , True, wenn Textmarke erhalten bleiben soll
fFillBookmark "Name", "etwa aus mehreren Access-Formularfeldern zusammengebastelteter String"
' usw., wobei natürlich gerade für die Anschrift 1 Textmarke reicht und der String zuvor zusammengebastelt wird
objWord.Visible = True
Set objDoc = Nothing
Set objWord = Nothing
End Sub

Function fFillBookmark(sName As String, vValue As Variant, Optional bHold As Boolean)
Dim objRange As Object ' Word.Range
With objDoc
If .Bookmarks.Exists(sName) Then
Set objRange = .Bookmarks(sName).Range
.Bookmarks(sName).Range.Text = vValue
If bHold Then
objRange.End = objRange.Start + Len(vValue)
.Bookmarks.Add sName, objRange
End If
Else
' Fehlermeldung?
End If
End With
End Function

bei Antwort benachrichtigen