Hallo, ich bekomme in meiner DB auf einmal eine Fehler, den ich mir nicht erklären kann.
Vor zwei Wochen lief es noch. Dann war ich nicht da und nun rufe ich die DB wieder auf und erhalte in einem Module einen Fehler. Geändert wurde an dem Module oder der DB nichts!!
Fehler siehe Anhang.
Ich habe aber keine Datei die mit #csv endet, sondern mit .csv
Die Tabellen sind alle OK und auch die finale Tabelle für den Export ist Ok und vollständig.
Erzeugen mache ich wie folgt
strFileFrom = \\do1s9046\IIQ-BS2000-Prod$\VE.W.VBS202.05
Pfad = Left(strFileFrom, InStrRev(strFileFrom, "\"))
DName = Split(strFileFrom, "\")(UBound(Split(strFileFrom, "\")))
Dateieigenschaften = SHGetPropertyString(strFileFrom, "System.DateModified")
strFileTo = Pfad & "05vp.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile strFileFrom, strFileTo
For Each tbl In CurrentDb.TableDefs
If tbl.Name = "05vp-bak" Then
DoCmd.DeleteObject acTable, "05vp-bak"
End If
Next tbl
DoCmd.CopyObject , "05vp-bak", acTable, "05vp"
DoCmd.DeleteObject acTable, "05vp"
DoCmd.TransferText transferType:=acImportDelim, SpecificationName:="05tevp", TableName:="05vp", FileName:=strFileTo, hasfieldnames:=True
For Each tbl In CurrentDb.TableDefs
If tbl.Name = "05vp-bak" Then
DoCmd.DeleteObject acTable, "05vp-bak"
End If
Next tbl
Kill strFileTo
DoCmd.SetWarnings False
Dim sfilename As String
sfilename = \\do1s9046\IIQ-BS2000-Prod$\BTypen_IGA.csv
DoCmd.OpenQuery "abftevp2_ht"
DoCmd.OpenQuery "abftevp2"
DoCmd.TransferText transferType:=acExportDelim, SpecificationName:="tevp2", TableName:="tevp2", FileName:=sfilename, hasfieldnames:=False
Der Fehler kommt dann hier:
DoCmd.TransferText transferType:=acExportDelim, SpecificationName:="tevp2", TableName:="tevp2", FileName:=sfilename, hasfieldnames:=False
Hat da einer eine Idee?
Auch wenn ich es lokal abspeichern will kommt der gleiche Fehler
Danke
Holger
Nur mal zur Info noch. Ich habe es umgeschrieben auf rein lokal, aber der macht immer aus dem Punkt vor dem Suffix des Dateinamens ein "#".
Ich weiß echt gerade nicht weiter
Danke
Holger
Hallo Holger,
Wenn du String-Variable deklarierst, musst du auch Strings an sie
übergeben
strFileFrom = "\\do1s9046\IIQ-BS2000-Prod$\VE.W.VBS202.05"
.
sfilename = "\\do1s9046\IIQ-BS2000-Prod$\BTypen_IGA.csv"
gruss ekkehard
Hallo Ekkehard,
1. warum ging es bis jetzt immer habe ja nichts geändert und
2. wenn ich beim Debuggen mit der Mouse drüber fahre, wird mir das richtige angezeigt.
Was müsste ich denn da ändern?
Danke
Holger
Hallo Holger,
du solltest keinen $ Zeichen in einem Pfad verwenden.
Hallo knobbi,
die werden so vom Admin vergeben. Aber wie gesagt ging bisher immer und lokal geht es jetzt auch nicht mehr.
Ich weiß echt nicht weiter warum das auf einmal so ist.
Holger
Das kann ja sein, aber ein $ Zeichen hinter einem Ordnernamen kennzeichnet eine administrative Freigabe (https://www.computerwoche.de/article/2857392/administrative-freigaben-auf-netzwerk-pcs-unter-windows-wieder-nutzen.html). So ein Zugriff muß erstmal in der Registry freigeschaltet werden. Vielleicht auch ein Grund dafür, daß es schon mal ging und mit einem SicherheitsUpdate nun nicht mehr.
Also hau' deinem Admin mal auf die Finger und fordere von ihm, eine "richtige" Freigabe dafür bereitzustellen.
Wenn du auf lokalen Pfad umgestellt hast, bitte nicht "C:\", dann kannst du versuchen, die Spezifikation nochmal neu anzulegen. Vielleicht hilft das ja.
Gruß
Der Fehler kommt aber auch genauso, wenn ich folgendes schreibe:
sfilename = "C:\Users\Holger-Büro\BS\Test.txt"
Auch da wird das .txt zu #txt
Holger
Ja klar, denn ein Objektname darf keinen Punkt enthalten. Für interne dyn. angelegte Objekte wird darum sicherlich das Hash-Zeichen als Alternative verwendet.
Ja aber es ist doch kein Objekt sondern der Dateinamen. Wenn ich den Suffix und Punkt weglasse, meldet sich der Fehlerteufel mit es ist kein gültiger Dateiname also muss da wohl der Punkt hin.
Wenn ich das im Direktfenster mit anzeigen lassen
Debug.Print sfilename
kommt auch das richtige raus also kein #
Holger
Hallo,
ich habe mal die Export Spezifikation neu gemacht (genauso wie vorher) aber nun geht es wieder.
Danke trotzdem an alle.
Holger