Office: (Office 2016) Ordner mit Rechnungsnr. auslesen und nächste verwenden

Helfe beim Thema Ordner mit Rechnungsnr. auslesen und nächste verwenden in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hey, sorry - wie verbaue ich das in den Code? Ich bekomm es nicht mal testweise mit Excel und der Right Funktion hin, das zu bewerkstelligen...... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von lybserv, 2. Mai 2020.

  1. Ordner mit Rechnungsnr. auslesen und nächste verwenden


    Hey,

    sorry - wie verbaue ich das in den Code? Ich bekomm es nicht mal testweise mit Excel und der Right Funktion hin, das zu bewerkstelligen...

    Herrje, wieso hakt es an solch einer simplen Aufgabe *wink.gif*
     
    lybserv, 4. Mai 2020
    #16
  2. Ich würde eine andere Vorgehensweise verwenden.
    Die Rechnungsnummern würde ich in eine Tabelle einfügen, beim Auslesen des Verzeichnisses neu hinzugekommene Rechnungsnummern mit dem Jahr in 2 getrennte Felder schreiben. Auf beide Felder einen Index, damit die Kombinatin aus RGNr und Jahr eindeutig ist. Danach über eine Max-Abfrage die höchste Nummer pro Jahr in der Tabelle ermitteln, diese um 1 erhöhen und danach die zusammengebaute Nummer zurückgeben.4

    Vorschlag zu deinem Code:

    Code:
     
    fredfred, 4. Mai 2020
    #17
  3. Hallo lybserv,

    im Anhang zwei Module, mit denen die nächste Rechnungsnummer ermittelt werden kann:

    - modFileInfo
    enhält eine allg. Funktion zum suchen nach Dateien mit einem bestimmten Muster in einem Verzeichnis

    - modFileHelper
    Funktionen zum ermitteln der nächsten Rechnungsnummer

    der Aufruf erfolgt dann z.B. so:
    Code:
     
    knobbi38, 5. Mai 2020
    #18
  4. Ordner mit Rechnungsnr. auslesen und nächste verwenden

    Sorry für die verspätete Rückmeldung, bin wieder im Code versunken..

    Danke euch beiden, ich habs hinbekommen - es gibt jetzt immer eine frische Rechnungsnummer.

    Bin jetzt zu 99% fertig, neues Problem:


    PHP:
             Function savecopy()
    Dim FileName As String
    Dim Path 
    As String

    Path 
    Dir(CurrentProject.Path "test")
    FileName Me.order ".xlsm"

    ActiveWorkbooks.SaveCopyAs FileName:=Path FileName
    appExcel
    .DisplayAlerts True
    ActiveWorkbook
    .Close
    End 
    Function
     
    lybserv, 5. Mai 2020
    #19
  5. Wenn du eine bestehende Datei kopieren willst dann geht das mit
    Code:
    Zuwas brauchst du hier das DIR in deinem Code ??
     
    fredfred, 5. Mai 2020
    #20
  6. So meinte ich es nicht - quasi "Speichern unter", sodass die Vorlage die durch Access befüllt wird, nicht überschrieben wird.

    Ich dachte SaveCopyAs ist da der richtige Weg *wink.gif* nur weiß ich nicht, welches Object er da required *frown.gif*
     
    lybserv, 5. Mai 2020
    #21
  7. Der Code findet in Excel oder Access statt ??
    Wie gesagt, mach das DIR weg !
    Code:
    D.h. also du rufst über Access ein Excel-Template auf, befüllst es aus Access heraus und willst die Datei speichern ?
    In deinem Code-Schnipsel gibt es keine Referenzierung auf eine Excel- Instanz oder ein workbook.
    Code:
     
    fredfred, 5. Mai 2020
    #22
  8. Ordner mit Rechnungsnr. auslesen und nächste verwenden

    Danke dir erneut fredfred, es hat alles hingehauen - hast mir sehr gut weitergeholfen!

    Im "Live Testbetrieb" heute hat sich herausgestellt, dass das Dateien einlesen zwar super funktioniert, jedoch nur - wenn sich Dateien im Format "2020-xxx.xlsm" im Ordner befinden.

    Leider haben unsere ganzen Rechnungen auch oft den Kundennamen dahinter, z.B. "2020-123 Max Mustermann.xlsm"

    Damit kommt der Code wohl gar nicht klar - Access stürzt komplett ab.

    Ich wühl mich gerade durch die Beschreibung von Split, vielleicht komme ich selbst dahinter ..

    der betreffende Code:


    PHP:
             Function ordernum()
    Dim strRgNr
    Dim strjahr
    Dim intJahr
    strName 
    Dir("Orderpfad"directory
    Do While strName <> ""
    strRgNr Split(Split(strName"-")(1), ".")(0)
    strjahr Split(strName"-")(0)

    If 
    IsNumeric(strRgNrThen
    If CLng(strRgNr) > lngMax Then lngMax CLng(strRgNr)
    If 
    CInt(strjahr) > intJahr Then intJahr CInt(strjahr)
    strName Dir
    End 
    If
    Loop

    OrderNumber 
    strjahr "-" lngMax 1
    Me
    .order OrderNumber

    End 
    Function
     
    lybserv, 7. Mai 2020
    #23
  9. Okay.. ich hab alles erdenkliche probiert..

    mit Split, mit Left bzw Len.. um einfach die ersten 7 Zeichen nur einzulesen - resultiert immer in Fehlern oder Totalabstürzen *frown.gif*
     
    lybserv, 7. Mai 2020
    #24
  10. Ich halte das ganze Vorgehen für Krampf.
    Hatte dir schon vorgeschlagen, die RgNr dann zu speichern, wenn sie erzeugt wird (bei Erstellung in Excel).

    Die ersten 7 Zeichen von was ?
    So wie ich das verstehe, ist das eine bunte Mischung von Dateinamen mal mit und mal ohne Kundennamen ...

    2020-101 -> das wären schon 8 Zeichen.
     
    fredfred, 8. Mai 2020
    #25
  11. Dem Probieren sollte man etwas Wissen und Plan vorschalten, sonst könnte die zeit Deines Lebens nicht ausreichen, auch nur einen Schritt vorwärts zu kommen.

    Das würde ich glatt erwarten, andernfalls den Rechner erschießen.

    Nicht aufhören damit.

    Split ist Stringverarbeitung. Ein String wird in Teilstrings zerlegt.
    Bei einem Teilstring würde ich nie mit IsNumeric prüfen. Wenn da verlässlich eine Zahl auswertbar ist, würde ich die gleich bspw. mit Val erfassen.

    Das andere habe ich nicht durchgelesen.
     
    ebs17, 8. Mai 2020
    #26
  12. Sorry, ich meinte natürlich 8 Zeichen - die Dateinamen sehen -immer- so aus:

    2020-101 Test 123.xlsm
    2020-102 Name Firma.xlsm
    2020-103 Firma.xlsm
    2020-104.xlsm
    2020-105 noch ein Test.xlsm

    Der Anfang ist immer gleich - nimmt man also nur die ersten 8 Zeichen des Dateinamens, bekommt man -immer- nur die 2020-xxx als Ergebnis.

    Und daraus kann man auch problemlos die höchste Zahl ermitteln, ich denke das ist nur eine kleine Anpassung die via Split gemacht werden muss..

    Bzgl. der Speicherung der RE in Excel: Du hast natürlich recht, das wäre die sinnvollere Methode. Nur läuft das ganze jetzt eigentlich so wie gewollt, wenn 8 Zeichen des Dateinamens eingelesen werden ;(

    @ebs17

    Natürlich steht da ein richtiger Ordnerpfad drin - da das Forum aber Backslashes verschluckt, hab ich ihn kurzerhand entfernt.

    Der isNumeric Code stammt nicht von mir - ich war zugegebenermaßen nur froh, dass das Endergebnis gepasst hat und hab ihn so verbaut. Ich weiß, nicht die richtige Lösung wenn man auch verstehen will, was man da genau macht *wink.gif*
     
    lybserv, 8. Mai 2020
    #27
  13. Ordner mit Rechnungsnr. auslesen und nächste verwenden

    Wenn du den Backslash verdoppelst, bleibt einer übrig beim Speichern.*Smilie

    das waren mal 2 \

    Fixe Längen einzustellen ist eine weitere Fehlerquelle.
    wenn die Rg-Nr >999 ist, dann hast schon ein Problem
    bzw. was ist mit RG-Nr < 100, also 2-stellig.

    Bzgl. der ersten 8, ist das ein simples
    Left(strName, 8)
     
    fredfred, 8. Mai 2020
    #28
  14. Die Rechnungen fangen bei 100 an *wink.gif* 2stellig sind sie also nie. Auf über 899 Rechnungen kommen wir pro Jahr auch bei weitem nicht, das ist kein Problem.

    Ich probier das mal aus mit Left, ist schwierig zu debuggen weil Access komplett abstürzt, sofern der Code nicht stimmt.

    Ich melde mich.. danke dir!
     
    lybserv, 8. Mai 2020
    #29
  15. Dir als Schleife liest die Dateinamen regelmäßig in alphabetischer Sortierung aus. Somit wäre die gesuchte Datei die Letzte.
    Daher: Jede Datei anzufassen und zu verarbeiten macht nur Sinn, wenn man wirklich mit ihr etwas anfangen will, bspw. ein Schreiben in eine Tabelle, damit man bereits in der DB weiß, was man alles hat.
    Sonst etwa so:
    Code:
    Daneben:
    Codes sollte man formatieren, also einrücken bei Schleifen, If-Verzweigungen usw.
    Ich habe das nicht genau angesehen, aber da scheint im Code in #23 etwas durcheinander zu sein.
     
    ebs17, 8. Mai 2020
    #30
Thema:

Ordner mit Rechnungsnr. auslesen und nächste verwenden

Die Seite wird geladen...
  1. Ordner mit Rechnungsnr. auslesen und nächste verwenden - Similar Threads - Ordner Rechnungsnr auslesen

  2. Outlook - Ordner gesendete Elemente wechseln

    in Microsoft Outlook Hilfe
    Outlook - Ordner gesendete Elemente wechseln: Hallo zusammen, ich hatte bislang einen Windows 10 Rechner mit Outlook (aus meinem Office 365 Paket). Hier war es so: Eine gesendete E-Mail wurde im IMAP Ordner "Sent" abgelegt. Nun habe ich...
  3. Öffentlicher Ordner Kontakte aktualisieren

    in Microsoft Outlook Hilfe
    Öffentlicher Ordner Kontakte aktualisieren: Hallo liebes Forum, ich habe kürzlich administrative Aufgaben für eine Firma übernommen und die Aufgabe erhalten sämtliche Kontakte des öffentlichen Ordner (GAL) auf die neue Geschäfts Adresse...
  4. Nach einer Datei suchen in mehreren Ordnern?

    in Microsoft Excel Hilfe
    Nach einer Datei suchen in mehreren Ordnern?: Hallo, Vielleicht kann mir hier ja wer helfen, das Macro bezieht sich auf ein Maintenance-File das diverse namen beinhaltet. Mit "aarPaths" will ich in mehreren verzeichnissen schauen ob die...
  5. Ordner: Synchronisierungsprobleme

    in Microsoft Outlook Hilfe
    Ordner: Synchronisierungsprobleme: Hallo liebes Forum, ich habe bislang Mail und Kalender von Windows genutzt. Aufgrund der Umstellung auf Outlook und der damit verbundenen Anzeige von Werbung habe ich auf Thunderbird gewechselt....
  6. Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA

    in Microsoft Excel Hilfe
    Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA: Hallo Leute, Hoffentlich könnt ihr mir hier helfen, ich krieg den Syntax einfach nicht hin (wahrscheinlich ist es auch totaler käse den ich programmiert habe). Also im Grunde soll eine Datei...
  7. Outlook 2019: Schriftart der Ordner/Posteingang ändern

    in Microsoft Outlook Hilfe
    Outlook 2019: Schriftart der Ordner/Posteingang ändern: Folgendes Problem: Ich habe jetzt endlich Office 2019 installiert, hatte vorher 2010. Im Outlook 2010 war die Ansicht der linken Seite (Dor, wo Posteingang ist samt den ganzen Ordnern) größer als...
  8. Spam Ordner lässt sich nicht leeren

    in Microsoft Outlook Hilfe
    Spam Ordner lässt sich nicht leeren: Hallo zusammen, ich habe einen account bei 1und1 und zwei Mailadressen eingerichtet. Beide Konten sind als imap in outlook eingerichtet. Bei einem der beiden Konten kann ich den Spamordner in...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden