Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Ordner aus Access erstellen

Begonnen von Mollerio33, Mai 16, 2019, 18:57:12

⏪ vorheriges - nächstes ⏩

Mollerio33

Guten Abend,

ich habe da eine Frage.

Ich habe eine Tabelle mit Kundenummer, Beschreibung, Datum.
Auf Knopfdruck in einem Formular soll aus der jeweiligen Daten Zeile, ein zip Ordner in einem Verzeichnen auf dem Rechner entstehen, welche den Dateipfad aus diesen drei feldern hat.
Gleichzeitig soll der Pfad dieses Ordners in ein weiteres Feld "DokumentenLink" eingetragen werden.

Kann mir da jemand helfen?
Danke



Mollerio33

Hallo,

ich habe nun eine Lösung gefunden. Leider bezieht er sich immer auf den ersten Datensatz und nicht auf den welche auswähle und dann den Button drücke. Gibt es denn hierzu eine Lösung

If Dir("Z:\Dokumente\Kunde\" & Me!KundeNr & " " & Me!Beschreibung & " " & Me!Datum, vbDirectory) = "" Then
MkDir "Z:\Dokumente\Kunde\" & Me!KundeNr & " " & Me!Beschreibung & " " & Me!Datum
End If

Außerdem habe ich das Problem mit dem schreiben des Links in die Tabelle noch nicht gelöst.
Ideen?

Danke schon mal

MzKlMu

Hallo,
das wichtigste hast Du unterschlagen.
Wie wählst Du den Datensatz aus ?
Außerdem, zeigt man Code immer komplett (mit Codetags wie ich unten) und keine unvollständigen Schnippsel.
Das schreiben in die Tabelle ist dann kein Problem, Du musst den Ordner nur dem Formularfeld zuweisen.
If Dir("Z:\Dokumente\Kunde\" & Me!KundeNr & " " & Me!Beschreibung & " " & Me!Datum, vbDirectory) = "" Then
MkDir "Z:\Dokumente\Kunde\" & Me!KundeNr & " " & Me!Beschreibung & " " & Me!Datum
Me.Feldname =  "Z:\Dokumente\Kunde\" & Me!KundeNr & " " & Me!Beschreibung & " " & Me!Datum
End If


PS:
Ich würde Dir dringend raten, auf Leerzeichen in Ordenernamen zu verzichten. Da würde ich den Unterstrich (_) verwenden. Auch das Datum solltest Du so nicht verwenden. Formatiere das um auf den Bindestrich statt des Punktes. Es gab Zeiten, da waren Punkte und Leerzeichen in Datei und Ordnernamen nicht erlaubt. Obwohl es zwischenzeitlich geht, würde ich das nicht machen.
Gruß Klaus

Mollerio33

#3
Guten Morgen,

danke. Also das mit der Link Funktion klappt super und ich habe die Leerzeichen ersetzt mit einem unterstrich.
Ich bin leider noch sehr unerfahren in der VBA Programmierung, deswegen die Frage wie steuere ich das an?

Auch habe ich das Problem das mir das Datum in der Tabelle so angegeben wir 17-05-2019. Beim Ordner erstellen kommt dann aber 17.05.2019 raus. Wie kann man das korrigieren?

Private Sub Ordner_erstellen_Click()
Dim Beschreibung As String
If Dir("Z:\Dokumente\Kunde\" & Me!KundeNr & "_" & Me!Beschreibung & "_" & Me!Datum, vbDirectory) = "" Then
MkDir "Z:\Dokumente\Kunde\" & Me!KundeNr & "_" & Me!Beschreibung & "_" & Me!Datum
Me.DokumentenLink = "Z:\Dokumente\Kunde\" & Me!KundeNr & "-" & Me!Beschreibung & "-" & Me!Datum
End If
End Sub


Und dann noch eine Frage, wenn ich den Ordner als Zip Container haben möchte, wie kann ich das schaffen?

Vielen Dank schon mal.

MzKlMu

#4
Hallo,
Zitatund nicht auf den welche auswähle
wie wählst Du aus ? (hatte ich schon mal gefragt)

Das Format eines Datumsfeldes muss direkt beim Verketten übergeben werden. Also so:

MkDir "Z:\Dokumente\Kunde\" & Me!KundeNr & "_" & Me!Beschreibung & "_" & Format(Me.Datum,"dd-mm-yyyy")
Genau so dann auch bei der Zuweisung des Links. Da hast Du übrigens Bindestriche und nicht den Unterstrich.

Du kannst den Ordner nicht zu einem Zip Archiv machen. Das Zip Archiv hat ja mit der Ordnerstruktur auf der Festplatte nichts zu tun. Das Zip Archiv muss innerhalb des angelegten Windowsordners erstellt werden. Und das wird gemacht, indem Du die einzelnen Dateien zu einem Zip-Archiv zusammenfasst. Das hat mit Access nichts zu tun, das geschieht mit dem Programm, das Du zum zippen verwendest.

PS:
Für Codedarstellungen immer die Codetags benutzen. Habe ich in Deinem obigen Beitrag noch gemacht.
Gruß Klaus

Mollerio33

Ja das mit dem anwählen weiß ich leider nicht.  :-[
Ich habe den Button mit der Klick fähigkeit angefügt und den Code dahinter angelegt.
Er zieht sich halt immer den obersten Datensatz und auch nur den.

Aber ich habe null Ahnung wie das geht. :(

Hier noch mal ein Screenshot.

MzKlMu

Hallo,
im einfachsten Fall stellst Du den Cursor einfach in irgendein Feld des gewünschten Datensatzes.
Gruß Klaus

Mollerio33

Genau das bringt leider nichts.
Wenn einfach, einfahc wäre. :)

MzKlMu

Hallo,
das kann nicht sein. Dann machst Du einen Fehler, oder es gibt noch weiteren Code.
Lasse Dir mal mit einer MsgBox die Kundennummer anzeigen, wenn auf den gewünschten Datensatz positioniert ist.
Dim Beschreibung As String
MsgBox Me.KundeNr
Stop
Gruß Klaus

Mollerio33

Leider bekomme ich nur die Ausgabe mit dem ersten Datensatz.
Kann ich dir meine kleine Datenbank mal senden per PN?

MzKlMu

Hallo,
ja, aber nicht per PN, nur hier im Forum.
Wenn nötig, kannst Du dazu extra ein kleines Beispeil mit anonymen Daten erstellen das nur das Problem zeigt und hier im Forum hochladen.
Gruß Klaus

Mollerio33


MzKlMu

Hallo,
das was Dir Probleme macht.
Gruß Klaus

Mollerio33

Habe dir mal die Screenshots gemacht.

Nochmal das Problem, wenn ich Daten einpflege erstellt er einen Ordner.
Aber nicht einen Ordner für einen weiteren Datensatz, sondern er bleibt immer auf dem ersten Datensatz.
Wenn ich den Ordner lösche und den ersten Datensatz veränderung, und anschließend den Button drücke dann erstellt er einen neuen Ordner.

Wenn du noch was brauchst sag bescheid.

MzKlMu

Hallo,
ich brauche die DB, die Bilder nutzen nix.
Gruß Klaus