Word / Access Problem
22.09.2014 16:33:48
Stefan
ich habe eine Wordvorlage, die Daten für einen Serienbrief aus Access holt.
Sub Document_Open()
Dim PATH, SOURCE As String
PATH = ThisDocument.PATH 'determine current directory
SOURCE = PATH & "\trallala.mdb"
ActiveDocument.MailMerge.OpenDataSource Name:=SOURCE, _
LinkToSource:=True, _
AddToRecentFiles:=False, _
Connection:="TABLE Daten"
End Sub
In der trallala.mdb gibt es unter Tabellen einen Link "Daten" auf ein .TXT File mit dem Inhalt. Dieses TXT File generiere ich.
Access repariert sich den Link beim Starten selbst (siehe script), sodass die mdb irgendwo liegen kann,
Hauptsache, die Wordvorlage, das TXT File und die mdb liegen im gleichen Verzeichnis
(Das muss so sein, Vorgabe).
Function ConnectTable()
Dim db As DAO.Database
Dim td As DAO.TableDef
Dim AktConnectSTR As String
Dim AktPfadSTR As String
Dim PfadSTR As String
Dim verz As String
Dim pos As Long
Set db = CurrentDb 'bisherigen Pfad der verknüpften DB auslesen
For Each td In db.TableDefs
If td.Connect "" Then
AktConnectSTR = td.Connect
AktPfadSTR = Left$(AktConnectSTR, InStr(1, AktConnectSTR, "DATABASE=") + 8)
verz = db.Name ' Pfad und Name der aktuellen DB
pos = InStrRev(verz, "\")
PfadSTR = Left$(verz, pos)
If FileExists(PfadSTR & td.SourceTableName) = True Then
td.Connect = AktPfadSTR & PfadSTR
td.RefreshLink
End If
End If
Next
End Function
' Check if file exists
Public Function FileExists(strPath As String) As Boolean
Const cNotFile = vbDirectory Or vbVolume
On Error Resume Next
FileExists = (GetAttr(strPath) And cNotFile) = 0
On Error GoTo 0
End Function
Bei Öffnen gibt es 2 Probleme:
1. Es wird "SELECT * FROM '' angezeigt. Hier fehlt der Tabellenname.
Es sollte heißen SELECT * FROM 'Daten' oder so.
Egal ob ich dann ja oder nein klicke, kommt
2. die Fehlermeldung "Datenquelle enthält keine sichtbaren Tabellen".
Ich kann das lösen, indem ich unter "Optionen für Tabelle" "Synonyme" anhake.
Das soll aber automatisch laufen - ohne Usereinwirkung.
Hat jemand eine Idee?
Muss beim OpenDataSource was anderes in Connection rein?
Ich habe dazu nirgends Doku gefunden.
Ansonsten muss 3. noch die Serienbrieferstellung dann automatisch loslaufen, aber
das krieg ich vielleich noch hin ...
vg Stefan