Thema für das Live Meeting am 07.12.2011

Themenvorschläge, allgemeine Hinweise und Diskussionen ... Beiträge rund um das Thema Live Meeting und mehr.

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon FireWalkerHH » Do 24. Nov 2011, 13:30

@Josef: Der FormFilter kommt mir seltsam bekannt vor ... Fast genauso sieht meiner auch aus ... auch mit Between-Teil ... Ich finde er ist sogar relativ gut aufgeteilt ...
Thomas Franzek

Diese Signatur wurde mit 100% chlorfrei gebleichten, glücklichen Elektronen erzeugt.
Diese entstammen keiner Lagerelektronenhaltung und werden nicht zu ihrer Arbeit gezwungen
FireWalkerHH
Entwickler
 
Beiträge: 57
Registriert: Mo 18. Okt 2010, 12:13

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon Josef Pötzl » Do 24. Nov 2011, 13:33

Hallo Thomas!

Code: Alles auswählen
Der FormFilter kommt mir seltsam bekannt vor ...

Du kennst ihn aber nicht. ;)
Die Klasse zum Filtern steckt mit einigen anderen in einer dll von mir und sollte schon lange überarbeitet werden - nur hab ich keine Lust dazu, da die dll ihre Aufgabe erfüllt. :D

LG
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon KGunder » Do 24. Nov 2011, 14:09

Josef Pötzl hat geschrieben:Der Code zur Optimierung wären dann Prozeduren wie:
Code: Alles auswählen
dim rst as dao.recordset
dim strSQL as String
strSQL = "Select ... & " _
        " from ..." & _
        " inner join ... ON ... " & _
        " where ... AND " & FilterStringFromDateValue("FeldName", Datumsvariable) & " ..."
set rst = currentdb.openrecordset(strSQL, ....)
...



Hallo Josef,

ich sehe schon du willst mich locken meine Lösung vorzustellen. Ich hatte ja beim letzten Mal schon kurz gezeigt,
daß mein Code im Augenblick so aussieht:

Code: Alles auswählen

  With SQL.SelectSQL(tblAufträge)
    .Joins "", tblKundenstamm, "KundenNr"
    .AddColumns "AuftragsNr", "AuftragsDatum, GesamtBetrag" , "GesamtGewicht"
    .AddColumnsFromTable "Kundenstamm", "KundenNr, Firmenname, PLZ, Ort"
    .Where "AuftragsDatum",  IsGreater, Now - 14 * Tage
    .Where "Kundenstamm.Firmenname", IsLike, "Pötzl"
    .OrderBy "AuftragsDatum, AuftragsNr"

    Set col = .ToCollection
    Set rsADO = .ToADORecordset
    Set rsDAO = .ToDAORecordset
    set hsh = .ToHashOfString
    Me.cboFeld.RowSource = .ToCBOString
  End With
 


aber das ganze ist noch nicht fertig, da fehlt noch ein bisschen Feinschliff..

Klaus
KGunder
Entwickler
 
Beiträge: 48
Registriert: Mo 27. Sep 2010, 11:20

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon Josef Pötzl » Do 24. Nov 2011, 14:47

Hallo Klaus!

Mir geht es gar nicht so sehr darum, fertige Lösungen zu zeigen, sondern um das Zeigen von Konzepten.
Fertige bzw. halbfertige Lösungen wären eher etwas für die Code-Bibltiothek. ;)

LG
JOsef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon Andreas Vogt » Do 24. Nov 2011, 18:34

Hallo,
ich hab das mit 4 Filtern so gelöst, indem ich in einer globalen Variable den Zustand speichere.
1000
1001
1010
1011
etc.
Wenn ich z.B. alle 4 Filter gesetzt habe und setze einen davon zurück, dann ermittle ich anhand der globalen Variable wie danach der Filter aufgebaut werden muss.
Ein Between zwischen Datum von und bis habe ich eigentlich nicht, da ich bei alternierender Anwahl entweder Datum bis oder Datum von habe, also entweder obere Grenze offen oder untere Grenze offen.

Wie bereits gesagt, wird dann mit mehreren Filtern sehr schnell unübersichtlich.
Gruß Andreas
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon KGunder » Do 24. Nov 2011, 19:12

Filtern sieht bei mir so aus:
Code: Alles auswählen

  With qry.Auftragspositionen.mitKunden
    .AddColumnsFromTable tblKunden, "KundenNr, Suchname, Ort"
    .AddColumnsFromTable tblAufträge, "Datum, GesamtBetrag, GesamtGewicht"
    For Each vCond In hshFilter.Values
      .AddSQLCondition vCond
    Next
    .OrderBy sMyOrder
    Set Me.Recordset = .ToADORecordset(dbOpenClientCursor)
  End With
 

wobei der Filter im Control_Change gesetzt wird:
Code: Alles auswählen

Private Sub ctlGesname_Change()
  Dim str As String
 
  str = UI.Controls.GetControlText(Me.ctlGesname)
  If Len(str) > 0 Then
    Set hshFilter.Item("Firma") = sql.Condition("Suchname", islike, Trim$(str))
  Else
    hshFilter.Remove "Firma"
  End If
End Sub
 
KGunder
Entwickler
 
Beiträge: 48
Registriert: Mo 27. Sep 2010, 11:20

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon KGunder » Fr 25. Nov 2011, 14:51

und da mir das noch zu lang war:
Code: Alles auswählen

Private Sub ctlGesName_Change()
  Set hshFilter("Firma") = UIA.Filter.Condition("Suchname", IsLike, Me.ctlGesName)
End Sub
 
KGunder
Entwickler
 
Beiträge: 48
Registriert: Mo 27. Sep 2010, 11:20

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon Andreas Vogt » Di 29. Nov 2011, 09:51

Hallo,
zum Thema Filterklasse habe ich einen interessanten Beitrag gefunden mit fertiger Beispielklassen:
http://www.office-loesung.de/ftopic13271_30_0_asc.php

Andreas
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon Josef Pötzl » Di 29. Nov 2011, 16:33

Hallo!

Ich glaub, für das Refaktoring dieser Klassen würde wir mehr Zeit benötigen, als wir im LM zu Verfügung haben. ;-)

LG
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Thema für das Live Meeting am 07.12.2011

Beitragvon Andreas Vogt » Di 29. Nov 2011, 20:53

Hallo Josef,
dafür war es ja auch nicht gedacht.

Andreas
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

VorherigeNächste

Zurück zu Planung und Diskussion

cron