Knifflig!

Guten Morgen !

Habe da mal wieder eine Idee, bei welcher ich euren Rat gebrauchen könnte. Folgendes soll geschehen:
Aus einem Formular sollen Daten in eine Excel-Vorlage exportiert werden. Habe ich erledigt läuft.
Diese liegt in einem Ordner „Test“ auf Laufwerk C: der Name der Datei: Vorlage.xls.
Nun mein Vorhaben wo ich nicht weis wie ich es anpacken soll:
Ich würde gerne ohne das ich die Vorlage öffnen muß, aus Access heraus,von der Datei „Vorlage“ eine Kopie machen, diese dan mit dem Namen Vorlage_YYYY_MM_DD benennen,und dann auf Laufwerk „F“ in den Ordner „Info“ ablegen. Sollte die Tabelle schon bestehen so soll eine
MsgBox erscheinen „Tabelle mit dem Namen schon vorhanden“.

Würde mich freuen wenn jemand einen Tip für mich hat.
Gruß Oberlix2

Hallo,

also dann versuchen wirs mal. ganz rudimentaer reingetipps ohne Funktionstest, aber so sollte es funktionieren.

Dim sourceFileName as String
Dim destFileName as String
Dim attr as Integer

sourceFilename = „C:\Vorlage\test.xls“
destFileName = „f:\info\Vorlage_“ & Format(Now(),„mm-dd-yyyy“) & „.xls“

attr = FileSystem.GetAttr(destFileName) ’ wenn nicht vorhanden Fehler

if isNull(attr) or isNumeric(attr) then
MsgBox destFileName & " gibts schon"
exit function
end if

Fehlerbehandlung
'…
select case err.number
case 53
resume next
'…

FileCopy sourceFileName, destFileName

====================================================================

das wars eigentlich schon

Hope this helps
Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin,

du weisst schon, das für die Nutzung von resume next schon manche erschossen worden sind ;o))

Prinzipiell ist das FSO-Objekt natürlich passend, doch sollte man angeben wie man dies einbindet - wenn ich mich Recht erinner war das nicht so easy zu finden…

Gruß

Bernd

Hallo Zusammen

erst mal Danke für eure Hilfe.
Nun ja, leider stellt sich mir wirklich die Frage: Wo binde ich den Code ein? Modul? Formular?.

Gruß Oberlix 2

Hallo Peter
Danke für deine Antwort.
Ich bin mir nicht sicher wo das ganze hinpacken soll, aber ich hab das ganze mal hinter ein Button gelegt, mit de´m Ergebnis das der Code bei mir an dieser Stelle hängenbleibt.
attr = FileSystem.GetAttr(destFileName). Fehlermeldung 53; Datei nicht gefunden.

Gruß Oberlix

Hallo,

also dann versuchen wirs mal. ganz rudimentaer reingetipps
ohne Funktionstest, aber so sollte es funktionieren.

Dim sourceFileName as String
Dim destFileName as String
Dim attr as Integer

sourceFilename = „C:\Vorlage\test.xls“
destFileName = „f:\info\Vorlage_“ &
Format(Now(),„mm-dd-yyyy“) & „.xls“

attr = FileSystem.GetAttr(destFileName) ’ wenn nicht vorhanden
Fehler

if isNull(attr) or isNumeric(attr) then
MsgBox destFileName & " gibts schon"
exit function
end if

Fehlerbehandlung
'…
select case err.number
case 53
resume next
'…

FileCopy sourceFileName, destFileName

====================================================================

das wars eigentlich schon

Hope this helps
Tschau
Peter

Gruß Oberlix,

tja hinter einen Button tut schon, dein Fehler ist, das du in deinen Code die Fehlerbehandlung nicht eingebaut hast.

Also folgender Massen:

===============================================
Private Sub MeinButtonName_Click()
On Error GotTo ErrHere

Dim sourceFileName as String
Dim destFileName as String
Dim attr as Integer

sourceFilename = „C:\Vorlage\test.xls“
destFileName = „f:\info\Vorlage_“ &
Format(Now(),„mm-dd-yyyy“) & „.xls“

attr = FileSystem.GetAttr(destFileName) ’ wenn nicht vorhanden
Fehler

if isNull(attr) or isNumeric(attr) then
MsgBox destFileName & " gibts schon"
exit function
end if

ExitHere:
Exit Sub
ErrHere:
select case err.number
case 53
resume next
case else
MsgBox err.Number & " " & err.Decription
resume ExitHere
end select
End Sub

Das mit dem „resume next“ ist zwar nicht elegant aber in diesem Fall tuts.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter

ich habe Gestern noch deinen Code zum laufen gebracht. Aber leider mit dem Ergebnis das ich die Meldung erhalte „Datei xxxxxx gibt es schon“,egal ob die Datei schon besteht oder nicht. Auch nach einem Test mit dem von dir gesendeten neuen Code, bekomme ich kein anderes Ergebnis.
Vieleicht nochmal mein Ziel. Ich würde gerne eine ganze Exceldatei, mit allen Tabellenblättern (incl.Inhalt sprich Textbox usw.) von C:
kopieren und auf F: wieder einfügen. Also als würde ich den folgenden
Code von Excel ausführen. Außer daß das Einfügen eben auf Laufwerk F:
mit unbennen erfolgen soll.
Cells.Select
Selection.Copy
Cells.Select
ActiveSheet.Paste
Gruß Oberlix 2

Gruß Oberlix,

tja hinter einen Button tut schon, dein Fehler ist, das du in
deinen Code die Fehlerbehandlung nicht eingebaut hast.

Also folgender Massen:

===============================================
Private Sub MeinButtonName_Click()
On Error GotTo ErrHere

Dim sourceFileName as String
Dim destFileName as String
Dim attr as Integer

sourceFilename = „C:\Vorlage\test.xls“
destFileName = „f:\info\Vorlage_“ &
Format(Now(),„mm-dd-yyyy“) & „.xls“

attr = FileSystem.GetAttr(destFileName) ’ wenn nicht vorhanden
Fehler

if isNull(attr) or isNumeric(attr) then
MsgBox destFileName & " gibts schon"
exit function
end if

ExitHere:
Exit Sub
ErrHere:
select case err.number
case 53
resume next
case else
MsgBox err.Number & " " & err.Decription
resume ExitHere
end select
End Sub

Das mit dem „resume next“ ist zwar nicht elegant aber in
diesem Fall tuts.

Tschau
Peter