Som finder forskellen mellem feltet dato og dags dato målt i dage. Men det er nok ikke det du vil - Du vil finde den første transaktionsdato for en enkelt kunde og den sidste transaktionsdato for samme kunde.
Det er såmænd ikke noget problem at finde forskellen mellem den første og den sidste transaktion. Der er en datediff (min, max) Problemet ligger i at finde forskellen mellem transaktionerne når der er mere end 2.
Dim SidsteDato As Date Dim SidtsteKundenummer As Long Public Function Datoforskel(Kundenummer As Long, Dato As Date) If SidtsteKundenummer = 0 Or Kundenummer > SidtsteKundenummer Or SidtsteKundenummer > Kundenummer Then SidsteDato = Dato SidtsteKundenummer = Kundenummer Datoforskel = "N/A" Exit Function End If Datoforskel = (Dato - SidsteDato) SidsteDato = Dato End Function *********** end kode ******* SQL, ret selv til dine felter
SELECT KundeBesøg.Kunde, KundeBesøg.Dato, Datoforskel([Kunde],[Dato]) AS Dage FROM KundeBesøg ORDER BY KundeBesøg.Kunde, KundeBesøg.Dato;
Jeg ville bruge en parametriseret forespørgsel og lave en funktion i stil med den her:
Public Function FindDateDiff(byval KundeNr as long, byval Dato as date) as String static qdfTrx as querydef dim rsTrx as recordset
if qdfTrx is nothing then set qdfTrx = currentdb.createquerydef("") qdfTrx.sql = currentdb.querydefs("pTrx").sql ' Undgår databasebloating end if
qdfTrx.parameters!KundeNr = KundeNr qdfTrx.parameters!Dato = Dato
set rsTrx = qdfTrx.openrecordset
if rsTrx.eof then FindDateDiff = "N/A" else FindDateDiff = fix(Dato - rsTrx!Dato) end if
rstrx.close set rsTrx = nothing
end function
Forespørgslen pTrx skal have to parametre; kundenr og dato og skal finde kunder med kundenummer = parameteren kundenummer og dato < parameter-dato, sorteret faldende på dato.
Jeg har bare tastet koden ind, så det er ikke sikkert den kan kompileres.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.