collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 77
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 4
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14132
  • stats Beiträge insgesamt: 68385
  • stats Themen insgesamt: 9210
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: verwaister Verzeichnispfad  (Gelesen 2614 mal)

Offline Guenther

  • Newbie
  • Beiträge: 29
Re: verwaister Verzeichnispfad
« Antwort #15 am: Februar 22, 2018, 16:28:34 »
Könnten Leerstellen ein Problem sein? Grundsätzlich steht in der Tabelle exakt dasselbe wie in der Textdatei.
 

Offline Guenther

  • Newbie
  • Beiträge: 29
Re: verwaister Verzeichnispfad
« Antwort #16 am: Februar 22, 2018, 16:33:53 »
Könnten Leerstellen ein Problem sein? In meiner Tabelle steht exakt dasselbe wie in der Textdatei!
 

Offline daolix

  • Access-Profi
  • **
  • Beiträge: 356
  • Von nix nen Plan
Re: verwaister Verzeichnispfad
« Antwort #17 am: Februar 22, 2018, 16:46:17 »
Ein schneller Test mit Leerstellen zwischen den Wörtern lief bei mir zumindest ohne Probleme.
Wenn das jetzt bei dir nicht funktioniert dann ggf eine VBA-Dir Lösung mit z.b. DLookup (anpassen)
dim d$, p$, s$
p = "j:\daten\
d = dir(p, vbdirectory)
do while len(d)
if ((getattr(p & d) and vbdirectory) = vbdirectory) and ((d <> ".") and (d <> "..")) then
if nz(dlookup("EIN_FELD", "DEINE_TABELLE", "DEIN_ID_FELD='" & d & "'"), "null") = "null" then s = s & d & vbcrlf
end if
d = dir()
loop
msgbox s
« Letzte Änderung: Februar 22, 2018, 16:50:51 von daolix »
 

Offline Guenther

  • Newbie
  • Beiträge: 29
Re: verwaister Verzeichnispfad
« Antwort #18 am: Februar 22, 2018, 16:50:25 »
DANKE für die Rückmeldung ;) Keine Ahnung, warum es bei mir nicht geht.
 

Offline Guenther

  • Newbie
  • Beiträge: 29
Re: verwaister Verzeichnispfad
« Antwort #19 am: Februar 22, 2018, 23:11:40 »
Sorry! Muss nochmal nachhaken - verstehe leider nicht ganz, was in dem dlookup-befehl mit "Ein_Feld" gemeint ist.  :-\
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1431
Re: verwaister Verzeichnispfad
« Antwort #20 am: Februar 23, 2018, 11:21:26 »
EIN_FELD kann irgendein existierender Pflichtfeldname sein. Denn findet das Kriterium keinen Wert, wird das 2. Argument der Nz-Funktion wirksam und der Code folgend auf Then ausgeführt.
Grüße von der (⌒▽⌒)
 

Offline Guenther

  • Newbie
  • Beiträge: 29
Re: verwaister Verzeichnispfad
« Antwort #21 am: Februar 28, 2018, 22:26:19 »
SORRY! Ich komme leider nicht weiter. Es wird leider in der MsgBox immer alle Namen angezeigt. Der zweite Code führt bei mir zum Absturz der Anwendung  :(
Gibt es einen Tipp, was ich falsch machen könnte? Wäre dankbar dafür :)
Oder gibt es noch eine Alternative? Schon mal DANKE!
 

Offline Guenther

  • Newbie
  • Beiträge: 29
Re: verwaister Verzeichnispfad
« Antwort #22 am: März 02, 2018, 20:20:15 »
Ich schätze, dass mein Problem Kommas und Leerstellen in den Verzeichnisnamen sind. Ist es so, dass der Code die Daten der txt-Datei gleich behandelt, als ob ich daraus eine Tabelle erstellen möchte. Dann ist klar, dass da nichts vernünftiges daraus werden kann. Werde jetzt die txt-Datei mit Umlauten erstellen und von Hand eine Tabelle erstellen, welche ich dann in einer Abfrage mit dem Feld in meiner Ausgangstabelle abgleiche. Könnte man eine brauchbare Tabelle via Code erstellen, welche den ganzen Verzeichnisname in ein Feld fasst?
 

Offline Frithjiof

  • Access-User
  • *
  • Beiträge: 74
Re: verwaister Verzeichnispfad
« Antwort #23 am: März 03, 2018, 11:03:09 »
Hallo  Guenther

Hier eine VBA-Prozedur die dein Problem lösen sollte.

Mit <Dir(sPath, vbDirectory)> wird  das aktuelle Verzeichnis gesetzt und der erste Eintrag zurückgegeben.
Wenn sPath existiert ist der erste Eintrag ein "." der zweite "..".
Alle nachfolgenden Aufrufe von <Dir()> ohne Parameter liefern einen Eintrag nach dem anderen.

In der Variablen sDir befindet sich der Verzeichnisname.  Dieser muss in deiner Datenbank existieren.
In meinem Beispiel ist  Verzeichnisname =  Mitgliedsnummer ("Mitglnr")
Sollte er nicht existieren, dann löschen.
Meine Routine verschiebt das Verzeichnis mit  Name sOldName As sNewName sicherheitshalber in ein anderes Verzeichnis. (sNewPath = "C:\Ablage\kill\").

Sub meindeldir()
    Dim sDir As String
    Dim sPath As String
    Dim sNewPath As String
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim sNewName As String
    Dim sOldName As String
    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset("select DBO_Adresse.Mitglnr from DBO_Adresse;")
     sPath = "C:\Ablage\Schrift\"
     sNewPath = "C:\Ablage\kill\"
     sDir = Dir(sPath, vbDirectory)
     Do While sDir <> ""
        If sDir <> "." And sDir <> ".." Then
            rst.FindFirst ("MITGLNR ='" & sDir & "'")
            If rst.NoMatch = True Then
                sNewName = sNewPath & sDir
                sOldName = sPath & sDir
                Name sOldName As sNewName
            End If
        End If
        sDir = Dir()
     Loop
    rst.Close
    dbs.Close
End Sub
Du müsstest die Verzeichnisse anpassen, bzw anlegen und den Recordset dann sollte es laufen.
Frithjof
 

Offline Guenther

  • Newbie
  • Beiträge: 29
Re: verwaister Verzeichnispfad
« Antwort #24 am: März 15, 2018, 19:38:43 »
DANKE an alle, die für mich mitgehirnt haben.
Habe mein Problem etwas konventioneller gelöst. Das erste Problem waren die Umlaute, habe zuerst in der Eingabeaufforderung den Code-Satz geändert, so dass ich eine Textdatei erhalte, die die Umlaute in den Verzeichnisnamen berücksichtigt. Dann habe ich eine Abfrage erstellt und darüber die "verwaisten" Verzeichnisse anzeigen lassen. Leider nicht ganz so elegant, aber Lösungsorientiert. Problem gelöst  :)