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 25.10.2005, 19:46   #1
don_mosquito
Neuer Benutzer
Neuer Benutzer
Standard Acc2000 - Abfrageergebnis NUR höchstes Datum

Hi, ich habe schon das Forum durchsucht und einige nützliche Tipps gefunden, dafür schonmal danke!

Aber es funktioniert für mich noch nicht zu 100%

Ich habe eine Tabelle: Calls

ID Date Customer
439 25.09.2005 0001291660
441 25.07.2005 0001291660
442 25.10.2005 0001291660

und ich versuche es in einer Abfrage folgendermaßen zu filtern:

Check wann der letzte Besuchseintrag (Tabelle Kd_Besuchsfolge) war, zerleg ihn nach Monat und vergleich ob der Monat um X hinter dem aktuellen Datum zurückliegt.

Code:

SELECT Call.Date, Month([Date]) AS GMON, Call.CustomerID, Kd_Besuchsfolge.Besuchsfolge
Das funktioniert... nur ein Problem habe ich:

ID Date Customer
439 25.09.2005 0001291660
441 25.07.2005 0001291660

liegen beide z.B. 1 Monat hinter dem aktuellen Datum zurück... d.h. ich bekomme den Kunden 2 mal ausgegeben obwohl mir ja EIN Termin reichen würde.

Wie bekomme ich mit SQL oder der Abfragenoberfläche die Doppeleinträge raus?

Danke für eure Hilfe schonmal
don_mosquito ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 25.10.2005, 19:59   #2
Siegfried
MOF Profi
MOF Profi
Standard

ich denke zum einen kannst du in der abfrage über rechte maustaste - eigenschaften - duplikate anzeigen - ja oder nein einstellen.
oder mit kriterium maxdatum müsste es auch gehen (siehe sqltext im code).
desweiteren habe ich in einer bspdatenbank "Bestellabwicklungen" das letzte (höchste) datum in die tabelle Kunden beim schließen mit folgendem code übergeben:

Code:

Private Sub Form_Close()
  Dim db As Database
  Dim rec As Recordset
  Dim bestdat As Date
  
  Set db = CurrentDb
  
  sqltext = "SELECT Max(Bestellungen.Bestelldatum) AS [MaxBestelldat] "
  sqltext = sqltext & " FROM Bestellungen "
  sqltext = sqltext & "WHERE (((Bestellungen.[Kunden-Nr])=" & Me![Kunden-Nr] & "));"
  
  Set rec = db.OpenRecordset(sqltext)
  
  If Not IsNull(rec!MaxBestelldat) Then
    bestdat = rec!MaxBestelldat
    Forms![Bestellungen nach Kunden]![LetztesDatum] = bestdat
  End If
  Forms![Bestellungen nach Kunden].Refresh
  rec.Close
  Set rec = Nothing
  db.Close
  
End Sub

__________________

Danke an ALLE für Hilfe !
Siegfried
------------------------------------------------------
Grüße aus dem Kreis Gütersloh - / /
(Ich benutze: MS-Office2000Prof., MS-Office2000-Developer-Tools)
------------------------------------------------------
FAQ
Siegfried ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.10.2005, 07:52   #3
don_mosquito
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Ich bin nicht so der VBS Checker... deswegen arbeite ich meist mit den Kontexten und EInstellungen...

Zitat:

ich denke zum einen kannst du in der abfrage über rechte maustaste - eigenschaften - duplikate anzeigen - ja oder nein einstellen.

Die Funktion geht aber nicht so recht weil er bei mehreren Auswahlfeldern der Abfrage nicht die Eindeutigkeit feststellen kann.
Sprich er tut bei der Auswertung nichts anderes als ohne die Einstellung...


Gibt es denn keinen SQL Befehl zum vorfiltern?
So in der Art von

Select.... Where Kunde + Datum = Höchstes Datum Und Monat vom Datum = Date() -1 ?
don_mosquito ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.10.2005, 08:12   #4
Nouba
MOF Guru
MOF Guru
Standard

Das höchste Datum im Vormonat je Kunde sollte so ermittelbar sein.

Code:

SELECT
  Max([C].[Date])
, C.CustomerID
FROM Calls AS C
WHERE Year([C].[Date]) * 12 + Month([C].[Date]) = Year(Date()) * 12 + Month(Date()) - 1
GROUP BY C.CustomerID
Nouba ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 26.10.2005, 13:06   #5
don_mosquito
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Yaay es funktioniert (natürlich funktioniert es )

Ich habe es noch ein wenig dynimisch umgestrickt so dass es für mich passt.
Im Grunde sind es nun 2 Abfragen, eine vorselektion in der ich das höchste Datum pro Kunden raussuche wie Nouba es vorgeschlagen hat:

Code:

SELECT Max(C.Date) AS Ausdr1, C.CustomerID AS Ausdr2
FROM Call AS C
WHERE (((Year([C].[Date])*12+Month([C].[Date]))<=Year(Date())*12+Month(Date())))
GROUP BY C.CustomerID;
und dann noch eine Feinselektion in der ich die Kunden über ihre Besuchsfolgen/Besuchsabstände filter:

Code:

 
SELECT DISTINCT [d_preselect].[Ausdr1] AS Ausdr1, [d_preselect].[Ausdr2]AS Ausdr2, Kd_Besuchsfolge.Besuchsfolge, Month([Ausdr1]) AS GMON
FROM d_preselect, Kd_Besuchsfolge
WHERE (((Month([Ausdr1]))<=Month(Date())-[Besuchsfolge]))
ORDER BY [d_preselect].[Ausdr2];
Ich hoffe man kanns verstehen, zumindest die die ein ähnliches Problem haben.

Auf jedenfall vielen Dank !!
don_mosquito 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 23:26 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 - 2014, 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.