VBA FileDialog Access 2007

Microsoft Office Suite: VBA FileDialog Access 2007

Hier kommen alle Anfragen zu Microsoft Office rein.

Erstellt von Mr_Tom  |  Antworten: 6

  1. VBA FileDialog Access 2007  |  Beitrag #1
    Mr_Tom


    VBA FileDialog Access 2007 - Standard VBA FileDialog Access 2007
    Hallo zusammen,

    seit heute habe ich Office 2007 im Einsatz und nun funktionieren meine Prozeduren nicht mehr. Probleme habe ich speziell im Bereich FileDialog. Ich möchte alle *.csv Dateien aus einem bestimmten Ordner in eine Access Datenbank einlesen. Folgenden Code habe ich bisher dazu:

    Code:
    Option Compare Database
    Option Explicit
    Function Start_Import()
      Application.Run MehrereDateienImportierenV2
    End Function
    Sub MehrereDateienImportierenV2()
    
    Const ZielTab = tab2010
      Dim oFileDialog As Office.FileDialog
      Set oFileDialog = Application.FileDialog(msoFileDialogFilePicker)
      With oFileDialog
        .Title = Dateien auswählen!
        .AllowMultiSelect = False
        .Filters.Add Nur CSV auswählen, *.csv
          
          Dim vItem As Variant
          For Each vItem In .SelectedItems
          
          EineTXTDateiEinlinkenUndAnfügen .SelectedItems(1), ZielTab
             
          Next
        End If
      End With
    
    
    
    End Sub
    
    Sub EineTXTDateiEinlinkenUndAnfügen(AktDatFullNam As String, _
                      ZielTab As String)
      Const TmpLink = TabtmpLink
      Const ImportSpez = Import_Spezifikation
     
      On Error Resume Next
      DoCmd.DeleteObject acTable, TmpLink
      On Error GoTo 0
      DoCmd.TransferText acLinkDelim, ImportSpez, TmpLink, AktDatFullNam
      
      CurrentDb.Execute INSERT INTO  & ZielTab & _
                  SELECT  & TmpLink & .*  & _
                   FROM  & TmpLink & ;
      CurrentDb.Execute DELETE *  & _
                  FROM tab2010  & _
                    WHERE Betrieb is null AND RgNummer is null
      DoCmd.DeleteObject acTable, TmpLink
    End Sub
    Wie kriege ich es hin, dass immer derselbe Pfad verwendet wird und für jede CSV Datei der Code von
    Code:
    Sub EineTXTDateiEinlinkenUndAnfügen(AktDatFullNam As String, _
                      ZielTab As String)
    ausgeführt wird ...?

    Brauche dringend Hilfe! Vielen Dank!



    Ähnliche Themen:

  2. VBA FileDialog Access 2007  |  Beitrag #2
    Matjes


    Hallo Mr_Tom,

    korrigier mal Sub MehrereDateienImportierenV2()
    Code:
    Sub MehrereDateienImportierenV2()
    
    Const ZielTab = tab2010
      Dim oFileDialog As Office.FileDialog
      
      Set oFileDialog = Application.FileDialog(msoFileDialogFilePicker)
      With oFileDialog
        .Title = Dateien auswählen!
        .AllowMultiSelect = True
        .Filters.Add Nur CSV auswählen, *.csv
        If .Show = -1 Then
          Dim vItem As Variant, sItem As String
          For Each vItem In .SelectedItems
           sItem = vItem
           EineTXTDateiEinlinkenUndAnfügen sItem, ZielTab
          Next
        End If
      End With
    
    AUFRAEUMEN:
     Set oFileDialog = Nothing
    End Sub
    Gruß Matjes :)

  3. VBA FileDialog Access 2007  |  Beitrag #3
    Mr_Tom


    Hallo Matjes :)

    Vielen Dank, jedoch möchte ich die .show Abfrage nicht haben. Ich hätte den Pfad gern
    statisch im Code, er ändert sich nie.

    Kann man da noch etwas machen oder komme ich mit Office 2007 nicht um das .show herum?

  4. VBA FileDialog Access 2007  |  Beitrag #4
    Matjes


    Hallo Mr_Tom,

    du willst also eigentlich die Dateien nicht im Dialog auswählen, sondern statisch immer im gleichen Verzeichnis alle csv-Dateien verarbeiten ?

    Gruß Matjes :)

  5. VBA FileDialog Access 2007  |  Beitrag #5
    Mr_Tom


    Zitat Zitat von Matjes
    Hallo Mr_Tom,

    du willst also eigentlich die Dateien nicht im Dialog auswählen, sondern statisch immer im gleichen Verzeichnis alle csv-Dateien verarbeiten ?

    Gruß Matjes :)
    Sorry wenn ich mich falsch ausgedrückt habe aber genau so meinte ich es :)

  6. VBA FileDialog Access 2007  |  Beitrag #6
    Matjes


    Hallo Mr_Tom,

    Dann probier mal diese Variante. Sie benutzt das FileSystemObject aus der Microsoft Scripting Runtime.
    Dazu mußt du im VB-Editor unter Extras->Verweise->Microsoft Scripting Runtime einen Haken setzen.

    Code:
    Const sVerzeichnis = d:\Test
    müßtest du noch deinen Gegebenheiten anpassen.

    Gruß Matjes :)
    Code:
    Sub MehrereDateienImportierenV2()
    
    'alle csv-Dateien des Verzeichnis
    
     Const ZielTab = tab2010
     Const sVerzeichnis = d:\Test
    
     Dim FSO As New Scripting.FileSystemObject->Erfordert Extras->Verweis->Microsoft Scripting Runtime
     Dim objD As Folder
     Dim objFile As File, objFiles As Files
     Set objD = FSO.GetFolder(sVerzeichnis)->Folder-Objekt erzeugen
     Set objFiles = objD.Files      ->Files-Objekt erzeugen
    
    ->Verzeichnis prüfen
     If Dir(sVerzeichnis, vbDirectory) =  Then
      MsgBox Verzeichnis  & sVerzeichnis & nicht vorhanden !
      GoTo AUFRAEUMEN
     End If
    
    ->Files im Verzeichnis feststellen
     Set objD = FSO.GetFolder(sVerzeichnis)->Folder-Objekt erzeugen
     Set objFiles = objD.Files      ->Files-Objekt erzeugen
     For Each objFile In objFiles
      If LCase(Right(objFile.Name, 4)) = .csv Then
       EineTXTDateiEinlinkenUndAnfügen objFile.Path, ZielTab
      End If
      Next
      
    AUFRAEUMEN:
     Set FSO = Nothing: Set objD = Nothing: Set objFile = Nothing: Set objFiles = Nothing
    End Sub

  7. VBA FileDialog Access 2007  |  Beitrag #7
    Mr_Tom


    Jetzt funktioniert es super!

    Vielen Dank Matjes!

Ähnliche Themen zu VBA FileDialog Access 2007
  1. Antworten: 0
    Letzter Beitrag: 14.07.2013, 17:29
  2. Antworten: 0
    Letzter Beitrag: 25.01.2010, 22:32
  3. Antworten: 0
    Letzter Beitrag: 27.03.2009, 09:00
  4. Antworten: 3
    Letzter Beitrag: 16.05.2007, 12:18
  5. Antworten: 2
    Letzter Beitrag: 05.01.2007, 18:34
Sie betrachten gerade VBA FileDialog Access 2007