2016-05-10 5 views
1

Schritte zum Reproduzieren:Fehler in DoCmd.TransferSpreadsheet acExport?

  1. Öffnen Sie eine leere Arbeitsmappe in Excel
  2. Registerkarte Seitenlayout -> [Drucktitel] -Taste -> Zeilen oben zu wiederholen: $1:$1
  3. speichern (in .xlsx Format) und in der Nähe Arbeitsmappe
  4. öffnen MS Access
  5. Export einer Tabelle oder Abfrage an der Arbeitsmappe wir gerade gespeichert:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "TempQry", "C:\Book1.xlsx"

  1. öffnen Book1.xlsx und klicken Sie auf Druckvorschau für Sheet1
  2. Druckvorschau zeigt die folgende Fehlermeldung: "Druckvorschau nicht verfügbar ist."
  3. Klicken Sie auf Seite einrichten wechseln Sie dann auf Registerkarte Blatt: Zeilen oben zu wiederholen: leer sind

Warum Druckvorschau nicht verfügbar, und warum sind die Feld leer „Zeilen oben zu wiederholen?“

Antwort

1

Dies scheint ein Fehler in Access zu sein. Ich bin nicht sicher, warum es passiert, aber ich habe Beweise gefunden, dass es ein Fehler ist.

Zum Beweis wiederholen Sie die Schritte von oben. Nach Schritt 3, klicken Sie mit der rechten Maustaste auf Book1.xlsx und wählen Sie 7-zip -> Archiv öffnen ... (benötigt natürlich 7-zip). Öffnen Sie den Ordner "xl" im Archiv und öffnen Sie die Datei workbook.xml.

Beachten Sie den folgenden Text in der XML-Datei:

<definedName name="_xlnm.Print_Titles" localSheetId="0">Sheet1!$1:$1</definedName> 

Nun schließen Sie das 7-Zip-Archiv und fahren Sie mit den Schritten von oben. Nach dem Schritt 5 erneut öffnen Sie die Book1.xlsx über 7-Zip -> Archiv öffnen ... Open xl \ workbook.xml und beachten Sie, dass der Text oben geändert wurde:

<definedName name="_xlnm.Print_Titles" localSheetId="0">'Sheet1'!$A$1:$IV$1</definedName> 

Mit anderen Worten: MS Access hat sich bemüht, ... die definierten Namen der Arbeitsmappe zu standardisieren? Zu diesem Zweck fügte es Spalten zu einem reinen Zeilenbereich hinzu ($1:$1 ->$A$1:$IV$1).

Das gleiche passiert, wenn Sie Spalten links wiederholen: ($A:$A ->$A$1:$A$1048576).

Interessanterweise, wenn Sie beide Reihen erklären oben und Spalten wiederholen links zu wiederholen, wird der Fehler vermieden:

<definedName name="_xlnm.Print_Titles" localSheetId="0">Sheet1!$A:$A,Sheet1!$1:$1</definedName> 

Umgehungen:

  • beide Set " Oben zu wiederholende Zeilen und links zu wiederholende Spalten oder
  • Verwenden Sie eine andere Methode zur Übertragung nach Excel, z. B. CopyFromRecordset()