PDA

Vollständige Version anzeigen : Access97 Filenamen ermitteln


jamiga
25.10.2000, 00:10
Hi,
möchte aus, durch FileSearch ermittelten Pfad, den Filenamen "ausschneiden".
(s.h. Beitrag Dateiliste importieren)
Manuela schrieb mir, das die nötige Funktion InStrRev nur in A2000 besteht.
Wie kann ich dieses nun in A97 anstellen ?

jamiga

MarkusR
25.10.2000, 07:53
function invStr(str as string) as string
dim i as long
dim retVal as string
for i=1 to len(str)
retval=mid(str,i,1)+retval
next i
invStr=retval
end function

Kann kleine fehler enthalten (aus dem Kopf so früh am morgen)

Manuela Kulpa
25.10.2000, 07:55
Hallo jamiga!

Auch da kann ich dir helfen :)

Erstelle ein neues Modul und füge folgendes in des Modul rein (denke daran, das Modul anschließend zu speichern)

Function InStrRevA97(sPath As String, sSearchString) As String

Dim strNew As String
Dim intCounter As Integer
Dim chrTmp As String * 1

For intCounter = Len(sPath) To 1 Step -1
chrTmp = Mid$(sPath, intCounter, 1)
If chrTmp <> sSearchString Then
strNew = chrTmp & strNew
Else
Exit For
End If
Next intCounter

InStrRevA97 = strNew

End Function

Ersetze den Teil mit der alten InStrRev Variante durch diese:

' Steht denn was im Pfad
If Len(strPfad) > 0 Then
' Hole mir den Dateinamen
strDateiname = InStrRevA97(strPfad, "\")
' Lege einen neuen Datensatz an
daoRs.AddNew
' schreibe den kompletten Pfad mit Dateiname in das Feld Verzeichnis
daoRs.Fields("Verzeichnis").Value = strPfad
' schreibe den Dateinamen mit Endung in das Feld Beschreibung
daoRs.Fields("Beschreibung").Value = strDateiname
' speicher den Datensatz

'...
' Ergänzung
' Größe der Datei, FileLen zeigt standardmässig die Größe in Byte an
' durch die Teilung 1024, wird erreicht, die Angaben in KB zu erhalten
daoRs.Fields("Groesse") = FileLen(strPfad) / 1024
' Erstelldatum
daoRs.Fields("ErstellDatum") = FileDateTime(strPfad)
daoRs.Update
End If

Und schwups, hast du den Dateinamen extrahiert!

slg