MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 14.11.2017, 11:22   #16
Kyron9000
MOF Koryphäe
MOF Koryphäe
Standard

... füge das ein...
Code:

    If Dir(strAlteDateiPfad) = "" Then MkDir (strAlteDateiPfad)
    If Dir(strNeuerPfad) = "" Then MkDir (strNeuerPfad)
    
    FileCopy strAlteDateiPfad, strNeuerPfad

__________________

Gruß Alfred
Kyron9000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 11:31   #17
whatever68
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von Kyron9000 Beitrag anzeigen

... füge das ein...

Code:

    If Dir(strAlteDateiPfad) = "" Then MkDir (strAlteDateiPfad)
    If Dir(strNeuerPfad) = "" Then MkDir (strNeuerPfad)
    
    FileCopy strAlteDateiPfad, strNeuerPfad

Hab das unmittelbar hinter den Code von dir gepackt,
und kriege den nächsten Fehler:

Laufzeitfehler 13 : Typen unverträglich

Und er markiert mir "If Dir(strAlteDateiPfad) = "" Then"

Wir benutzen Access 2013 falls das eine rolle spielt.


Geändert von whatever68 (14.11.2017 um 11:34 Uhr).
whatever68 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 11:45   #18
Kyron9000
MOF Koryphäe
MOF Koryphäe
Standard

Füge das ein
Code:

    strNeuerPfad = Me.BEZ_Pfad.Caption & "" & DateiName

Debug.Print strAlteDateiPfad , strAlteDateiPfad
Mit Str+G kannst den Direktbereich aufrufen und schau nach was da, nach dem Aufruf steht!

__________________

Gruß Alfred
Kyron9000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 11:55   #19
whatever68
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von Kyron9000 Beitrag anzeigen

Füge das ein

Code:

    strNeuerPfad = Me.BEZ_Pfad.Caption & "" & DateiName

Debug.Print strAlteDateiPfad , strAlteDateiPfad
Mit Str+G kannst den Direktbereich aufrufen und schau nach was da, nach dem Aufruf steht!

Hab ich gemacht Chef, aber im Direktbereich steht bei mir gar nichts.
Der ist leer.

Habe auf speichern, dann auf kompilieren gedrückt, und dann auf Ausführen,
da bekomme ich aber nur eine Auswahl an Makros präsentiert.

So siehst das aus bei mir :

whatever68 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 12:00   #20
Kyron9000
MOF Koryphäe
MOF Koryphäe
Standard

...hast den Code ausgeführt?
Ohne dem wird nichts angezeigt werden!
Wenn ja, hast keinen Pfad angegeben.

__________________

Gruß Alfred
Kyron9000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 12:03   #21
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,könntet Du Dein Bilde bitte hier im Forum hochladen.
Der Link mit dem Bild bringt nervige Werbung die man noch nicht mal wegklicken kann. Ich schaue mir solche Bilder erst gar nicht an.

Und das Bild ist auch kein Makro, sondern VBA Code.

Dein ganzes Problem dürfte sich durch die Verwendung gebundener Formulare ohnehin in Luft auflösen.

__________________

Gruß
Klaus
Office2010, Win10
gpswanderer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 12:09   #22
whatever68
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von Kyron9000 Beitrag anzeigen

...hast den Code ausgeführt?
Ohne dem wird nichts angezeigt werden!
Wenn ja, hast keinen Pfad angegeben.

Wenn ich auf ausführen (F5) drücke kriege ich nur ein Fenster
das "Makros" heisst, und in dem ich nichts machen kann.

Wo soll ich denn den Pfad angeben? Bzw. was für einen, wo die PDFs gespeichert werden sollen, oder wo sie herkamen oder wie?

Ich habe gerade wirklich nur 1 zu 1 alles gemacht was du gesagt hast,
ohne selbst irgendwas einzutragen.

EDIT : Wenn ich jetzt auf unseren Speichern button drücke, stürzt Access ab!
whatever68 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 12:22   #23
Kyron9000
MOF Koryphäe
MOF Koryphäe
Standard

1. Klick einmal im Code-Fenster auf Debuggen/kompilieren von...
2. der Code...
Code:

FileCopy strAlteDateiPfad, strNeuerPfad
Gibt den Pfad an von der PDF und wohin sie verschoben werden soll
Wäre gut, wenn man weiß was da drin steht.

Habe mich geirrt!
Das kannst wieder löschen, das ist Unsinn
Code:

    If Dir(strAlteDateiPfad) = "" Then MkDir (strAlteDateiPfad)
    If Dir(strNeuerPfad) = "" Then MkDir (strNeuerPfad)
das... kannst aber belassen
Code:

Debug.Print strAlteDateiPfad , strAlteDateiPfad
ev. könnte man es so erstellen, aber... da sollte man wissen was strAlteDateiPfad und strNeuerPfad hergibt

Code:

    If Dir(txtDatei, vbDirectory) = "" Then MkDir (txtDatei)
    If Dir(Me.BEZ_Pfad.Caption, vbDirectory) = "" Then MkDir (Me.BEZ_Pfad.Caption)
Das Caption ist auch eigenartig.

__________________

Gruß Alfred

Geändert von Kyron9000 (14.11.2017 um 13:24 Uhr).
Kyron9000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 12:27   #24
MisterBurns
MOF Profi
MOF Profi
Standard

So, an dieser Stelle muss ich mich leider ausklinken, da ich hier definitiv keine Hilfe mehr bin :-)
Ich verstehe zwar nun, was der Sinn des Ganzen ist, aber das übersteigt leider meine Kenntnisse.

Falls du den Link auch an Kyron schicken willst, kann er dir vielleicht helfen.

@Kyron:
Die Ausgabe im Direktfenster ergibt zweimal den selben Pfad, was vermutlich so nicht sein soll.

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 13:08   #25
elmar
MOF Meister
MOF Meister
Standard

Vermutlich sind in der Datenbank Bilder oder PDF-Dokumente gespeichert. Das würde das aufblähen auf 700 MB erklären. Befinden sich Berichte in der Datenbank? Wenn ja - sind darin Bilder eingebunden?

__________________

WIN 7 PROF 64, ACCESS 2003 Wissenswertes: ACCESS-FAQ *** Habe mit ACC2007/10/13 nichts am Hut...
Hilfreiche Antworten kann es nur bei verständlichen Fragen geben! Anleitung dazu: Hier klicken | Auch hilfreich: Einführung in die Datenbank Microsoft Access. | Die Nachteile von Nachschlagefeldern
elmar ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 13:12   #26
ebs17
MOF Guru
MOF Guru
Standard

Zitat:

Code:

If Dir(txtDatei) = "" Then MkDir (txtDatei)

Um Verwirrung aufzulösen:
Ein Verzeichnis prüft man so:
Code:

If Dir(PfadVerzeichnis, vbDirectory) = "" Then MkDir PfadVerzeichnis
MkDir kann aber nur ein Unterverzeichnis in einem bestehenden Verzeichnis anlegen. Zuvor sollte man sicherstellen, dass die verwendeten Variablen auch die gewünschten Inhalte haben.

Datei:
Code:

If Dir(PfadDatei) = "" Then      ' Datei existiert nicht
Bei einer nichtvorhandenen Datei macht ein Anlegen eines Verzeichnisses keinen Sinn.

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 13:32   #27
MisterBurns
MOF Profi
MOF Profi
Standard

Zitat:

Vermutlich sind in der Datenbank Bilder oder PDF-Dokumente gespeichert

Das ist korrekt, es werden pdfs in der Datenbank gespeichert. Nach einer Komprimierung der Backend kommt die DB immer noch auf 250 MB, ist aber natürlich besser als 700 MB

@whatever68: Bitte lösch diese Daten wieder aus dem Netz (so das noch geht), ich finde die schon eher sensibel. Keine Sorge, ich werde nichts weiter damit anstellen und habe sie bereits wieder gelöscht.

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.11.2017, 18:12   #28
elmar
MOF Meister
MOF Meister
Standard

Zitat: von MisterBurns Beitrag anzeigen

Das ist korrekt, es werden pdfs in der Datenbank gespeichert. Nach einer Komprimierung der Backend kommt die DB immer noch auf 250 MB, ist aber natürlich besser als 700 MB

Genau das ist die Ursache! Speichere die Pfade zur PDF-Datei alt Text und nicht die PDF-Datei in der Datenbank. Du wirst sehen, wie schnell die DB an Größe abnimmt. Eine Internetsuche z.B. : PDF-Datei und Access bringt Dich weiter!

__________________

WIN 7 PROF 64, ACCESS 2003 Wissenswertes: ACCESS-FAQ *** Habe mit ACC2007/10/13 nichts am Hut...
Hilfreiche Antworten kann es nur bei verständlichen Fragen geben! Anleitung dazu: Hier klicken | Auch hilfreich: Einführung in die Datenbank Microsoft Access. | Die Nachteile von Nachschlagefeldern
elmar ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.11.2017, 18:37   #29
whatever68
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

SO LEUTE! Ich habs geschafft!

Habe jetzt die letzten 2 Tage mit den Grundlagen von VBA beschäftigt,
und habe es jetzt erstmal hingekriegt.

Danke noch mal an alle, und vorallem an Kyron9000 und ebs17, aber auch MisterBurns, denn
einen Teil eures Codes habe ich benutzt bei MkDir.

Der RuntimeError kam hier durch:

Code:

Set RS = CurrentDb.OpenRecordset(SQL)
RS.MoveLast
Die Tabelle in die er das schreiben sollte, hatte keinen einzigen Datensatz.
Deshalb "kein aktueller Datensatz".

Ausserdem habe ich noch ein paar neue Dinge deklariert,
und ein ErrorHandling eingebaut per msgbox.

Ausserdem erstellt und prüft er jetzt immer die Pfade selbst,
das habe ich hier mit gemacht :

Code:

txt = Application.CurrentDb.Name
pos = InStrRev(txt, "")
strNeuerPfad = Left(txt, pos - 1)

If Dir(strNeuerPfad, vbDirectory) = "" Then
    MkDir (strNeuerPfad)
End If
Der neue Code sieht jetzt so aus, grün markiert ist neu.

Code:

Private Sub BTN_Datei_Speichern_Click()
Dim strDokumentenArt, strBild_ID, SQL, strKundenNr, strNachname, strVorname, strDatum, strAlteDateiPfad, strNeuerPfad, strNeueDatei As String
Dim RS As DAO.Recordset
Dim txt As String
Dim pos As Integer
Dim artordner

SQL = "SELECT * FROM Dokumente_TAB "


Set RS = CurrentDb.OpenRecordset(SQL)
If RS.RecordCount > 0 Then         <----- Hat den Fehler direkt behoben..
    RS.MoveLast
End If

strKundenNr = Me.txtKundennummer
strNachname = Me.txtNachname
strVorname = Me.txtVorname
strDatum = Me.txtDatum

strAlteDateiPfad = Me.txtDatei
If strAlteDateiPfad = "" Then
    MsgBox ("Bitte Dokument auswählen")
    Exit Sub
End If

strDokumentenArt = Me.KBF_Dokumenten_Art
If strDokumentenArt = "" Then
    MsgBox ("Bitte Dokumentenart auswählen")
    Exit Sub
End If

DateiName = strDokumentenArt & "_" & strKundenNr & "_" & strNachname & "_" & strVorname & "_" & strDatum & ".pdf"

txt = Application.CurrentDb.Name
pos = InStrRev(txt, "")
strNeuerPfad = Left(txt, pos - 1)

If Dir(strNeuerPfad, vbDirectory) = "" Then
    MkDir (strNeuerPfad)
End If

artordner = strNeuerPfad & "" & strDokumentenArt
If Dir(artordner, vbDirectory) = "" Then
    MkDir (artordner)
End If

strNeueDatei = artordner & "" & DateiName

FileCopy strAlteDateiPfad, strNeueDatei

RS.AddNew
RS("Art") = KBF_Dokumenten_Art
RS("Adress_ID") = Form_00_Eingabe.Adress_ID
RS("Datum") = Me.txtDatum
RS("DateiName") = DateiName
RS("DateiPfad") = strNeueDatei
RS("Bemerkung") = Me.txt_Bemerkung

RS.Update
RS.Close
Set RS = Nothing

Form_FRM_Dokumente.Requery
Form_FRM_Dokumente.Refresh
So. Nun macht er alles, er kopiert die PDF, checkt die Dir, schreibt
es in die Tabelle, und gibt sogar Fehler richtig aus.

Bin rundum glücklich.

Werde mich jetzt weiter an die Grundlagen machen,
ausserdem interessiert mich das ErrorHandling sehr.

Freu mich wie ein Kaninchen

Geändert von whatever68 (17.11.2017 um 20:36 Uhr).
whatever68 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.