Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Acc2010 - Laufzeitfehler 3441

Begonnen von hellebore, Mai 15, 2014, 09:25:44

⏪ vorheriges - nächstes ⏩

hellebore

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ß

DF6GL

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, ""

hellebore

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, ""

DF6GL

Hallo,

verwende statt Text-Format das RTF-Format... (Siehe Transfer-Text-Hilfe)

MaggieMay

#4
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?
Freundliche Grüße
MaggieMay

DF6GL

Hallo,


in der Tat geht das mit Transfertext nicht, eher mit Outputto.  8)


Zudem sind Parameterabfragen (mit aufpoppenden Parameterfenstern) niicht empfehlenswert...