Jump to content

Cybquest

Expert Member
  • Gesamte Inhalte

    1.886
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Cybquest

  1. Wenn Dir zu einer SQL-Datenbank geraten wird, hilft es nix, darin einen "Link" auf eine Excel- oder Accesstabelle machen zu wollen! Du solltest dann Deine Daten in die SQL-Datenbank migrieren. Wenn die Daten in Access vorliegen, könnte man die z.B. mit dem "MS SQL Server Migration Assistant" auf den SQL-Server migrieren.

    Deine Excel-Dokumente müssen dann natürlich auf die SQL-Server-Daten zugreifen. Besser wäre jedoch vermutlich, gleich eine "richtige" Auftragsverwaltung zu implementieren, oder? ;)

  2. Const xlOR = 2
    
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open("MeineExcel.xls")
    objExcel.Visible = true
    
    objWorkbook.Worksheets(1).Range("D1").Autofilter 4, "Erledigt", xlOR, "in Arbeit"

    So hab ich's grad getestet und das funktioniert! In meiner Excel hab ich in Spalte D Aufträge, E und F Beschreibungen etc. und G den Status mit "Erledigt", "offen", "in Arbeit"...

     

     

     

     

     

     

    Const xlFilterValues = 7
    
    ...
    
    objWorkbook.Worksheets(1).Range("D1").Autofilter 4, Array("Erledigt","in Arbeit","zurückgestellt"), xlFilterValues

     

     

    und das funktioniert auch...

    • Like 1
  3. Ach das ist VBS, nicht VBA...

    Dann musst Du für die Konstante xlOR die 2 nehmen, würde ich sagen.



    zum Offset: wenn Du z.B. wirklich mit nem Range arbeitest und nicht nur mit einem Feld, ist der Autofilter auch wirklich nur in dem Range aktiv und darin entscheidet dann das Feld, welche Spalte gefiltert wird!

    Bsp: Du hast 10 Spalten hübsch befüllt mit Spaltenköpfen. Machst Range("D1:J1"), dann sind die Filterknöpfe nur dort. Der Parameter 4 würde dann allerdings den Filter auf G1 setzen!

     

    Kannst ja zum testen den Code (ohne das "objWorkbook") in ein Excel-Makro packen und ausführen...

    Über Makro aufzeichnen kommst so z.B. auch zu der Array-Variante ;)

  4. MyPath= "J:\DIV\XLS"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(MyPath)
    
    for each file in folder.Files
      filedate = file.datelastmodified
      if filedate > predate then 
    	Dateiname=file.path
      	predate=filedate
      end if
    next
    
    Set appXLS = CreateObject("Excel.Application")
    Set wbkXLS = appXLS.Workbooks.Open(Dateiname,,True)

    maybe like this? ... dannach dann halt noch den "Printout-Befehl etc...

  5. Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("C:\MeinOrdner\")
    
    predate=date()
    for each file in folder.Files
      filedate = file.datelastmodified
      if filedate > predate then Dateiname=file.path
      predate=filedate
    next
    
    
    

    so in der Art könntest Du zumindest die neueste Datei raussuchen. Sollte es da noch mehr ausser "Wochenplan" geben, kannst ja innerhalb der For-Each-Schleife noch filtern...

  6. Das könnte m.E. schon in einer Tabelle bleiben, da wäre man mit der Tiefe auch variabler.

    Aber abfragen müsste man es m.E. auf jeden Fall rekursiv.

    Dazu ausser dem Systemtyp noch ein "ID" und ein "ParentID"-Feld

    Dann könnte man in der ersten Ebene nen SELECT... bla... WHERE Systemtyp=2

    2. Ebene WHERE Systemtyp=1 AND ParentID = ID

    etc...

    • Like 1
×
×
  • Neu erstellen...