Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: HabNeFrage am Januar 21, 2019, 15:00:49

Titel: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 21, 2019, 15:00:49
Hallo, ich habe eine Bitte,
könnte mir jemand die angehängte DB so ändern, das die auszulesenden Verzeichnisse aus der Abfrage "AbfFealligkeitErmitteln02" und dort aus dem Feld "Datenquelle" entnommen werden?
Die Tabelle "tbl_ist_nur_eine_Hilfe" ist was der Name schon sagt, nur eine Datenquelle auf die ich mit meiner Abfrage zugreife. Die Abfrage holt sich später alles mögliche zusammen, heißt aber dann so.

Die Ursprungsdatei ließt immer nur ein Verzeichnis ein, ich benötige aber mehrere.
Die Einträge im Feld Datenquelle sind einfach nur Testeinträge und können von Euch frei verändert werden.

Der Button "Meine Variante" im Formular ist nur Testhalber da und soll später wegfallen. Das mache ich dann selber.
Eigentlich ist es nicht meine Art das ich frage das mir das "fertig" geliefert wird.
Ich tüftle eigentlich gern selber. In dem Fall hängt mir die Zeit im Nacken.  :-\
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Lachtaube am Januar 21, 2019, 17:10:27
Nun, dann sorge dafür, dass nur in der ersten Runde die Dateien gelöscht werden.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 22, 2019, 07:15:59
 ??? ich kann Dir gerade gar nicht folgen....
würde es aber sehr gern, denn ich muss wirklich vorwärts kommen.
Ich dachte das ein wirklicher könner hier schmunzelt und in 2min das ganze fertig hat.
Das dachte ich wirklich, denn es gibt in meiner angehängten Datei alles zum einlesen bereits.
Nur das die Auswahl was ausgelesen werden soll über einen Dialog geschieht
und nicht wie ich es vor habe bereits "mundgerecht" in einem Feld vor liegt.
Ich bin aber ein absoluter Anfänger und da muss ich tatsächlich Hilfe in Anspruch nehmen.
Wenn das soweit funktioniert möchte ich es kommentieren und für ein anderes Projekt nutzen.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Lachtaube am Januar 22, 2019, 08:29:09
Die Argumente kommen aus dem Recordset. Da aber bei jeder Runde das zweite Recordset gelöscht wird, muss nur sicher gestellt sein, dass dies nur am Anfang passiert. Wo liegt sonst das Problem?
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 22, 2019, 09:00:13
Hallo Lachtaube,
ich dache anfangs Du willst mich.... ich hab Dich tatsächlich nicht verstanden.
Da gibts nur ein Problem. Du schaust auf den Code und weist was da abläuft, ich hingegen.... habe da arge Probleme zu erkennen was Du gerade willst.
Kannst Du bitte den Codeabschnitt mal hier rein kopieren, dann kann ich es vielleicht erkennen.
Ich will mirklich mit machen.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Lachtaube am Januar 22, 2019, 09:07:53
Vorgekaut.
Private Sub MeineVarianteAufrufen_Click()   'hier will ich meinen Aufruf starten,
                                            'habe aber keine Ahnung wie ich
                                            '"AbfFealligkeitErmitteln02 - Datenquelle"
                                            'da hinein bringe
   Dim rs As DAO.Recordset
   
   CurrentDb.Execute "DELETE tbl_Files.LNR FROM tbl_Files;"
   Me.lst_Files.Requery
   Set rs = CurrentDb.OpenRecordset("select Datenquelle from AbfFealligkeitErmitteln02")
   Do While Not rs.EOF
      ReadFolder rs.Fields(0), "*.*"
      rs.MoveNext
   Loop
   rs.Close
   Me.lst_Files.Requery
End Sub
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 22, 2019, 09:45:26
Mensch Lachtaube, Du bringst mich zu lachen  ;D
Das hat funktioniert, ich werd bläd. SUPER !

So, an welcher Stelle müsste ich jetzt noch etwas ändern so das ich das Formular nicht mehr benötige.
So das keine Unterverzeichnisse verwendet werden und wie jetzt auch schon alle Dateien verwendet werden (kein Filter).
ReadFolder rs.Fields(0), "*.*"  ist das doch schon, oder?

Muss ich den Code jetzt aus dem Formular Klassenobjekt in ein Modul bringen?
Lege ich dazu ein eigenes an, oder nutze ich z.B. mod_Allgemein? Wäre aus meiner Sicht übersichtlicher wenn es ein eigenes ist, oder?
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Lachtaube am Januar 22, 2019, 10:05:11
Wenn Du den Bezug auf lst_Files löschst, ist die Routine von einem allgemeinen Modul nutzbar.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 22, 2019, 10:40:50
Du meinst "Me.lst_Files.Requery" im obrigen Code in der 4. Zeile vom "Private Sub MeineVarianteAufrufen_Click()"?

Ich rufe den dann mit call "Private Sub MeineVarianteAufrufen_Click()" z.B. von wo anders her auf?

Ich habe es jetzt in ein Modul gebracht und die Zeile raus-kommentiert, das funktioniert aber nicht.
Aufrufen tue ich es vorerst (damit nicht über das Formular) mit einem Macro. ausführen Code :MeineNeueVarianteAufrufen()

Private Sub MeineNeueVarianteAufrufen()   'hier starte ich meinen Aufruf
    Dim rs As dao.Recordset
   CurrentDb.Execute "DELETE tbl_Files.LNR FROM tbl_Files;"
   ' Me.lst_Files.Requery
   Set rs = CurrentDb.OpenRecordset("select Datenquelle from AbfFealligkeitErmitteln02")
   Do While Not rs.EOF
      ReadFolder rs.Fields(0), "*.*"
      rs.MoveNext
   Loop
   rs.Close
   Me.lst_Files.Requery
   End Sub
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Lachtaube am Januar 22, 2019, 10:52:45
Jepp.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Beaker s.a. am Januar 22, 2019, 13:20:35
@HabNeFrage
Wie's scheint kommst du hier ja wirklich weiter als im anderen Forum.
Aber, Me.lst_Files.Requery
funktioniert in einem allgem. Modul nicht, - das Form muss komplett
referenziert werden. Entweder als Parameter
Private Sub MeineNeueVarianteAufrufen(ByRef frm As Access.Form)
.
frm.lst_Files.Requery
.

Aufruf vom Form dann mit
Call MeineNeueVarianteAufrufen(Me)
oder direkt
Private Sub MeineNeueVarianteAufrufen()
.
Forms.DeinForm.lst_Files.Requery
.
Das Form MUSS dazu in beiden Fällen offen sein.

gruss ekkehard
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 22, 2019, 13:50:46
Hallo Beaker s.a.,
ja Du hast Recht. Vielleicht bin ich es falsch angegangen. Danke, Du verstehst...
Glücklicher weise hat sich aber eine Lachtaube hier hin verirrt.  ;)
Das sind solche Dinge die Ihr wisst und ich nicht, ich kenne nicht mal den Begriff Refernzieren (in VBA).

"Das Form MUSS dazu in beiden Fällen offen sein." klingt auch nicht so gut.
Wie Du weist will ich das ganze ja ohne Formular mal aufrufen können.

Kommt das daher das ich den Code in dem Klassenobjekt des Formulars stehen habe?
Da kommt das nächste, worauf muss ich achten wenn ich den Code,
wo anders hin bringen will. "funktioniert in einem allgem. Modul nicht, ".... wie Du schreibst.

Oft hänge ich mich selber auf weil ich bestimmte Prinzipien noch nicht kenne.
Und dann das nette Thema Zeit... es ist ja nicht "ich probiere mal" ich muss es auch erfolgreich anwenden.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Lachtaube am Januar 22, 2019, 14:23:11
Kopiere den Schei.. in ein allgemeines Modul und entferne den Bezug auf lst_Files - und gut ist.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Beaker s.a. am Januar 22, 2019, 16:54:26
@HabNeFrage
Checke gerade erst, dass das hier ein X-Posting ist.  >:(
Lösung im anderen Forum.
gruss ekkehard
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 24, 2019, 12:23:03
Hallo Beaker s.a.

Hier Deine Antwort:
Habe mir deine DB nun mal angeschaut und angepasst.
Geändert habe ich nur den Code im Start-Formular. Alle Änderungen sind
kommentiert. Bei mir läuft die DB jetzt wie gewünscht.
Lässt sich sicher noch weiter verbessern, aber das überlasse ich dir jetzt
mal.
gruss ekkehard

Das hast Du echt gut kommentiert, danke.
Lese gerad "wenn du keinen Button willst rufe die Sub beim Ereignis "Load" auf"
Das Formular wird doch dann gar nicht mehr geladen...

Was mir aufgefallen ist das die Anzahl der gefundenen Dateien nicht mehr richtig angezeigt wird.
Muss mal sehen ob ich das finde.

Ansonsten hatte Lachtaube geschrieben
"Kopiere den Schei.. in ein allgemeines Modul und entferne den Bezug auf lst_Files - und gut ist."
Ich muss das ja machen weil ich die Einlesegeschichte in einer anderen DB nutzen will.
Muss ich erst mal nachsehen welcher Code alles gebraucht wird.
Wenn ich das nicht hin bekomme melde ich mich mal.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 24, 2019, 14:55:00
Jetzt wo ich so drüber nachdenke, das ganze war ja mal nur für ein Verzeichnis vorgesehen.
Er hat zwar die darunter liegenden UV mit gezählt,
aber jetzt wo er mehrere zum auslesen aus der Abfr. "AbfFealligkeitErmitteln02" holt zählt er nur das erste, alle anderen werden nicht mit gezählt.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Beaker s.a. am Januar 24, 2019, 19:00:38
Schicke dir später noch eine überarbeitete Version.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Beaker s.a. am Januar 25, 2019, 01:00:09
Hallo,
So, da bin ich wieder. Sorry, habe unerwartet Besuch bekommen.
Es funzt jetzt ohne Formular. Dazu habe ich die Subs/Functions aus
dem Form entfernt, und zu Methoden der Klasse gemacht. Diese wird
jetzt im "mod_Allgemein" durch eine Factory-Prozedur zur Verfügung
gestellt.
Schau dir in dem Modul zuerst die Sub "GetFiles" an. Hier werden die
Parameter für die Methoden der Klasse zusammengestellt. Wo die
dann ohne Formular herkommen kannst nur du wissen. Zum Testen
habe ich die erstmal "fest verdrahtet". Um die Sub zu testen brauchst
du nur den Cursor in die Sub zu stellen und F5 drücken.
Ich hoffe, dass da keine Fehler mehr drin sind.
gruss ekkehard

P.S. Das Form funzt natürlich auch noch. Mit dem linken Button kannst
du wie bisher ein einzelnes Verzeichnis auswählen. Beim Klicken passiert
das gleiche wie mit der o.a. Prozedur.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 25, 2019, 13:57:34
Mensch Beaker s.a.,
bin gerade erst wieder hier rein gekommen, sag mal schläfst Du nie?  :o
Hatte parallel zu Dir auch weiter geschraubt. Allerdings mit der ersten Version.
Werde mal versuchen Deinen Ansatz darin umzusetzen. Muss ich mal noch so einstellen,
das die UV nicht mit ausgelesen werden. Das ist sonst zu Zeitaufwendig und wird unübersichtlich
(die eingelesenen Dateinamen) Danke aber erst mal.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: Beaker s.a. am Januar 25, 2019, 16:52:18
ZitatMuss ich mal noch so einstellen,
das die UV nicht mit ausgelesen werden.
iDepth = 1 macht genau das.
Titel: Re: Verzeichnisse auslesen und in Tabelle ablegen
Beitrag von: HabNeFrage am Januar 25, 2019, 20:20:29
Hallo Beaker s.a.,
habe mal Deine Arbeit als Grundlage genommen und es noch ein wenig verändert.
Und die Extensionen der Dateinamen mit rein genommen.
Das mit dem anderen Aufruf muss ich erst mal probieren.