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
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
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.
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.
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.
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.
Hallo,
im einfachsten Fall stellst Du den Cursor einfach in irgendein Feld des gewünschten Datensatzes.
Genau das bringt leider nichts.
Wenn einfach, einfahc wäre. :)
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
Leider bekomme ich nur die Ausgabe mit dem ersten Datensatz.
Kann ich dir meine kleine Datenbank mal senden per PN?
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.
Was bräuchtest du denn?
Hallo,
das was Dir Probleme macht.
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.
Hallo,
ich brauche die DB, die Bilder nutzen nix.
Bitte
Hallo,
das ist ja auch kein richtiges Formular was Du da erstellt hast. Für ein Formular muss man jedes einzelne Feld auf dem Formular anordnen.
Dann kann mann auch positionieren.
Ich würde das Feld auch nicht als Link anlegen, sondern als ganz normales Textfeld. Die Linkfelder sind etwas sperrig in der Handhabung. Funktioniert dann auch. Ich habe es geändert, wenn Dir das als Link lieber ist, kannst es aber auch lassen.
Okay, aber das man das als Tabellen ansicht lösen kann, geht nicht?
Nein, das geht nicht. Du kannst das Formular so gestalten, dass es wie eine Tabelle aussieht.
Guden,
ich habe mir noch mal gedanken gemacht.
Wäre es möglich das man über das Formal die Datei erzeugt. Und der neue Datensatz dann in eine Tabelle geschrieben wird.
Anschließend wird die eingabe maske neu geladen und man kann eine neue Datei erstellen.
Würde das gehen?