Hallo,
ich habe eine Datenbank, die unter Access 2003 erstellt wurde und diese würde ich nun unter Access 2010 lauffähig machen.
Der Export einer Abfrage mit Übergabe in ein Word-Dokument funktioniert leider nur noch mit oben angegebenen Laufzeitfehler. Die Recherche im Internet ergab, dass man eine Export-Spezifikation erstellen soll. Der Textexport-Assistent funktioniert allerdings nicht mit Parameterabfragen, sondern nur bei Tabellen und normalen Abfragen.
Weiss jemand noch eine andere Möglichkeit dies zu lösen?
hier der zugehörige Code:
Public Function fctWdSerienBrief(strGrundlage As String, strDateiName As String, _
strDokVorlage As String, strSteuerDatei As String) As String
Dim oApp As Word.Application
Dim clsSi As New clsSysInfo
Dim strDokSavePfad$ 'Standard-Speicherpfad für das Dokument
'Dim strSteuerDatei$ 'Name der Dummy-Steuerdatei
Dim strAktiv$ 'um das aktive Dokument (Serienbrief) anzusteuern
Dim strVorlage$ 'um die Serienbrief-Vorlage anzusteuern
'Export in eine Textdatei
DoCmd.TransferText acExportDelim, "", strGrundlage, strSteuerDatei, True, ""
On Error Resume Next
'Schauen, ob Word bereits läuft
Set oApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then 'Word läuft nicht
Err.Clear ' Err-Objekt löschen
'Neue Instanz von Word aufrufen
Set oApp = CreateObject("Word.Application")
End If
On Error GoTo Err_fctWdSerienBrief
With oApp
'Sichtbar schalten und aktivieren
.Visible = True
.Activate
' Vorlage als Dokument öffnen
.Documents.Add Template:=strDokVorlage
'Name der aktiven Vorlage zwischenspeichern
strVorlage = .ActiveDocument.NAME
End With
With oApp.ActiveDocument.MailMerge
'Serienbrieffelder verbinden und in neues, ungebundenes Dokument ausgeben
.OpenDataSource NAME:=strSteuerDatei, LinktoSource:=True
.Execute
End With
'Namen des aktiven Dokuments der Variablen zuweisen
strAktiv = oApp.ActiveDocument.NAME
'Die Serienbrief-Vorlage schließen
oApp.Documents(strVorlage).Close (wdDoNotSaveChanges)
'Speicherpfad des Dokuments ermitteln
strDokSavePfad = "W:\KTC\Datenbank4\Dokumente"
'Serienbrief-Dokument verarbeiten
With oApp.Documents(strAktiv)
.SaveAs FileName:=strDokSavePfad & "\" & strDateiName
If .Saved Then
oApp.RecentFiles.Add .FullName
End If
.Activate
' .Close
End With
Set oApp = Nothing
fctWdSerienBrief = strDokSavePfad & "\" & strDateiName
Exit Function
Err_fctWdSerienBrief:
Set oApp = Nothing
MsgBox Err.Number & " " & Err.Description, vbCritical, "Fehler in Word-Kommunikation"
fctWdSerienBrief = vbNullString
Exit Function
End Function
Gruß
Hallo,
Wie lautet denn die Fehlermeldung zu dieser Fehlernummer?
Weise der Transfer-Abfrage zunächst den per VBA mit den Kriterien (Parametern) zusammengesetzten SQL-String zu. Mit dieser Abfrage kannst Du anschließend eine passende Export-Spezifikation erstellen (die m. E. aber gar nicht nötig ist).
Z.B:
Dim strSQl as String, lngID as Long
lngID = 2
strSQL = "Select * from tblTabelle1 Where IDFeld= & lngID
Currentdb.Querydefs!MeineAbfrage.SQL = strSQL
DoCmd.TransferText acExportDelim, "", "MeineAbfrage", strSteuerDatei, True, ""
Hallo,
die genaue Fehlermeldung lautet:
"Laufzeitfehler '3441': Das Feldtrennzeichen fir die angegebene Textdatei entsprich dem Dezimaltennzeichen oder Texttrennzeichen."
beim debuggen wird mir folgender Code markiert:
'Export in eine Textdatei
DoCmd.TransferText acExportDelim, "", strGrundlage, strSteuerDatei, True, ""
Hallo,
verwende statt Text-Format das RTF-Format... (Siehe Transfer-Text-Hilfe)
Hi,
mein Vorschlag wäre, erstelle eine Exportspezifikation und setze diese bei der Transfertext-Methode ein.
ZitatDer Textexport-Assistent funktioniert allerdings nicht mit Parameterabfragen
Dann lass den Parameter vorübergehend weg bzw. erstelle eine entsprechende Kopie für den einmaligen manuellen Export.
@DF6GL:
Seit wann kann man mit TransferText ein RTF-File erstellen?
Hallo,
in der Tat geht das mit Transfertext nicht, eher mit Outputto. 8)
Zudem sind Parameterabfragen (mit aufpoppenden Parameterfenstern) niicht empfehlenswert...