dr.cornwallis
Goto Top

Platzhalter für VBA Code

Hi zusammen,

viele von euch VBA Cracks werden jetzt bestimmt lachen aber ich schaffe es einfach nicht einen Platzhalter für einen Dateinamen im Code anzugeben(Code läuft in Access 2010).

strCurrentSheet = PATH & "\" & "Abfrage *" & ".xlsx"  

Es soll auf eine Datei mit dem Namen (zb.)"Abfrage 21.07.2015.xlsx" zeigen und dann in eine Access Tabelle importiert werden, die Datei wird aber nicht gefunden.

Der Pfad an sich stimmt soweit da es ohne Platzhalter funktioniert(Dateinamen direkt im Code angegeben).

Ich habe schon folgende Varianten probiert:

strCurrentSheet = PATH & "\" & "Abfrage " & “*“ & ".xlsx"
strCurrentSheet = PATH & "\" & "Abfrage " & “* .xlsx"
strCurrentSheet = PATH & "\" & "Abfrage " & “[*] .xlsx"
strCurrentSheet = PATH & "\" & “* .xlsx"
strCurrentSheet = PATH & "\Abfrage*" & ".xlsx"


alle ohne Erfolg...

Danke für eure Hilfe!

Content-Key: 300923

Url: https://administrator.de/contentid/300923

Printed on: April 25, 2024 at 12:04 o'clock

Mitglied: 114757
Solution 114757 Apr 05, 2016 updated at 12:21:40 (UTC)
Goto Top
Moin,
es gibt keine Wildcard-Möglichkeit bei deinem Vorhaben. Wenn dann nur
d = "21.07.2015"  
strCurrentSheet = PATH & "\Abfrage " & d & ".xlsx"  
Anderenfalls musst du alle XLSX-Dateien in dem Verzeichnis durchlaufen und prüfen ob xlsx Files vorhanden sind.
Set fso = CreateObject("Scripting.FileSystemObject")  
for each file in fso.GetFolder(PATH).Files
    if LCase(fso.GetExtensionName(file.Name)) = "xlsx" then  
     ' .....mach hier was mit der Datei ...  
     msgbox file.Path
     Exit For
   End if
Next
Gruß jodel32
Member: Dr.Cornwallis
Dr.Cornwallis Apr 05, 2016 at 12:10:04 (UTC)
Goto Top
Moin,

ok danke, da hätte ich lange probieren können face-smile.
Jetzt habe ich ein anderes Problem...

Der Code soll die Excel in eine Access Tabelle importieren, leider passt mein Code jetzt dafür nicht mehr:
 For Each file In fso.GetFolder(PATH).Files
    If LCase(fso.GetExtensionName(file.Name)) = "xlsx" Then  
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, TABLENAME, strCurrentSheet, True
    End If
    Next

Was muss ich jetzt an Stelle von "strCurrentSheet" einfügen?


Vielen Dank für deine Hilfe


Gruß


Dr.
Mitglied: 114757
Solution 114757 Apr 05, 2016 updated at 12:20:50 (UTC)
Goto Top
Was muss ich jetzt an Stelle von "strCurrentSheet" einfügen?
Na
file.Path
face-smile
Siehe auch meine Zeile 5 im Beispiel ...
Member: Dr.Cornwallis
Dr.Cornwallis Apr 05, 2016 at 12:23:05 (UTC)
Goto Top
Jetzt läufts!


Besten Dank, hast mir eine Menge Nerven(und Kopfhaare) erspart! face-smile

Grüße

Dr.