Thema Datum  Von Nutzer Rating
Antwort
Rot Speichern in DBF IV in Excel 2007
14.10.2014 13:32:05 Ben
NotSolved

Ansicht des Beitrags:
Von:
Ben
Datum:
14.10.2014 13:32:05
Views:
1056
Rating: Antwort:
  Ja
Thema:
Speichern in DBF IV in Excel 2007
Hey an alle VBA Profis,

Habe ein kleines Problem an dem ich am Verzweifeln bin. Ich hoffe ihr könnt mir weiterhelfen.

Problemstellung:

Ich habe über 1000 *.mdb Dateien, die ich verändern muss und als DBF IV abspeichern. In jeder *.mdb Datei müssen die Spalten B und C als Text mit 20 Zeichen dargestellt werden.

Da Excel 2007 nicht das Abspeichern als DBF erlaubt, habe ich mir ein Add-in „ExceltoDBF“ heruntergeladen und installiert. Dieses Add-in funktiert einwandfrei. Ich öffne die *.mdb Datei mit Excel 2007. Dann speicher ich es als DBF ab. Vor dem Speichern kann ich die Felder/Spalten modifizieren (Char/Numberic) sowie die Zeichenanzahl angeben.

Da ich es ja von Hand für eine Datei machen kann, habe ich mir gedacht, dass das auch per VBA funktioniert.

Also kann ich zwar nun die Datei öffnen aber beim speichern gibt es probleme und ich weis auch nicht wie ich die Spalte B und C als Text mit 20 Zeichen angeben kann. Da muss es doch irgendwas geben, oder? (.field „xyz“ as Char) oder so...

 

Hier mein Code:

„Microsoft DAO 3.6 Object Library“ und „Microsoft Access 12.0 Object Library“ sind aktiv.


Dim ws As Workspace, row As Integer, col As Integer
Dim db As Object, rs As Recordset
Dim access_db As String

Workbooks.Add

ActiveSheet.Cells(1, 1).Value = "Überschrift 01"
ActiveSheet.Cells(1, 2).Value = "Überschrift 02"
ActiveSheet.Cells(1, 3).Value = "Überschrift 03"
ActiveSheet.Cells(1, 4).Value = "Überschrift 04"
ActiveSheet.Cells(1, 5).Value = "Überschrift 05"
ActiveSheet.Cells(1, 6).Value = "Überschrift 06"
ActiveSheet.Cells(1, 7).Value = "Überschrift 07"
ActiveSheet.Cells(1, 8).Value = "Überschrift 08"
ActiveSheet.Cells(1, 9).Value = "Überschrift 09"
ActiveSheet.Cells(1, 10).Value = "Überschrift 10"
ActiveSheet.Cells(1, 11).Value = "Überschrift 11"
ActiveSheet.Cells(1, 12).Value = "Überschrift 12"
ActiveSheet.Cells(1, 13).Value = "Überschrift 13"
ActiveSheet.Cells(1, 14).Value = "Überschrift 14"
ActiveSheet.Cells(1, 15).Value = "Überschrift 15"
ActiveSheet.Cells(1, 16).Value = "Überschrift 16"
ActiveSheet.Cells(1, 17).Value = "Überschrift 17"

access_db = "Beispiel.mdb"

Set db = OpenDatabase(access_db)
Set rs = db.OpenRecordset("select * from TABLE")
row = 0
ActiveSheet.Range("A2").CopyFromRecordset rs
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing



      Application.DisplayAlerts = False
      ActiveWorkbook.SaveAs "C:/Test/Beispiel.dbf", FileFormat:=xlDBF4 'LAUFZEITFEHLER!!!!
      ActiveWorkbook.Close
      Application.DisplayAlerts = True

 

 

Ich hoffe jemand kennt sich hiermit aus oder hatte schon mal ein ähnliches Problem.

Ben


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Speichern in DBF IV in Excel 2007
14.10.2014 13:32:05 Ben
NotSolved