vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
TransferSpreadsheet mit vorheriger Excel-Bearbeitung aus Access 
Autor: mam2508
Datum: 16.02.12 10:33

Hallo liebes Forum,

ich rätsel gerade an einem Problem. Sicher wisst ihr, woran es liegt. Ich habe bereits versucht, zu googlen, aber es fällt mir schwer, etwas passendes zu finden.

Folgendes mach ich:
- Eine Excel-Datei mit Formatierung soll in eine Access-Tabelle importiert werden (TransferSpreadsheet)
- Damit TransferSpreadsheet die Tabelle lesen kann, lösche ich zunächst die gesamte Formatierung (hatte aus irgendeinem Grund Probleme) und lösche dann auch die ersten 116 Zeilen, da Dort ein Datei-Kopf steht, welchen ich nicht gebrauchen kann.
- Im Anschluss nutze ich dann den Befehl TransferSpreadsheet aus Access und will lesen.

Problem:
Ich habe mehrere Varianten versucht, aber entweder kommt ein Fehler beim Befehl TransferSpreadsheet, dass die Tabelle nicht das erwartete Format enthält, oder aber ich umgehe diesen Fehler, aber dann kommt ca. 5 Sekunden nach Programmausführung ein Windows-Hinweis, dass die Datei nur geöffnet werden kann (Schreibschutzhinweis): Dokument.xls ist jetzt verfügbar. Wählen Sie Lese-7Schreibzugriff, um es zum Bearbeiten zu öffnen.

Set ExlApp = CreateObject("Excel.Application")
    With ExlApp
        .Visible = False                                
        .Workbooks.Open FileName:=txt_File, updatelinks:=False, readonly:=False
 
        ' Formatierung der Zeilen und Spalten. Erst alles löschen, dann 
        ' importieren.
        .Range("A:I").Select
        .Selection.ClearFormats
        .Range("A:C").Select
        .Selection.NumberFormat = "@"
        .Range("D:I").Select
        .Selection.NumberFormat = "0"
        .Range("A1:I1").Select
        .Selection.NumberFormat = "@"
 
        ' Schreibe Spalten-Bezeichnung in erste Zeile, damit Zuordnung zw. 
        ' Access und Excel stattfinden kann
        .Cells(1, 1).Value = "Text1"
        ' [...]
        .Cells(1, 9).Value = "Gesamt"
        .ActiveWorkbook.Save
        ExlApp.Application.Quit
    End With
    Set ExlApp = Nothing
 
    'ExlApp.ActiveWindow.Close SaveChanges:=True
 
    Set ExlApp = CreateObject("Excel.Application")
    With ExlApp
        .Visible = False                                 
        .Workbooks.Open FileName:=txt_File, updatelinks:=True, readonly:=False
    End With
 
    ' Importieren der Daten aus Excel in Access
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Tabelle1", _
      txt_File, True
 
    ExlApp.ActiveWorkbook.Save
    ExlApp.ActiveWindow.Close SaveChanges:=True
    ExlApp.Application.Quit
    Set ExlApp = Nothing
in der Version, wie ich es hier poste, öffne ich excel, bearbeite es und schließe es wieder, öffne es erneut, importiere und schließe es.
Wenn ich excel nach dem bearbeiten schließe und dann importieren will, kommt der Fehler, dass die Tabelle nicht das erwartete Format enthält. Spare ich mir das öffnen-schließen-öffnen-schließen, und bearbeite und importiere zwischen öffnen-schließen, dann kommt auch die Schreibschutzmeldung.

Habt ihr Vorschläge woran das liegt?

Danke!

Gruß

mam2508
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
TransferSpreadsheet mit vorheriger Excel-Bearbeitung aus Acc...1.328mam250816.02.12 10:33

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel