VBiB/ACCB.net - Visual Basic in België | .net Ineta User Group  
Hoofdmenu

Advertenties

Het Computer Winkeltje HCW


Evenementen

Komende evenementen

Tue, 30 March 2010
Wed, 31 March 2010
Thu, 01 April 2010
Wed, 07 April 2010
Wed, 05 May 2010

Forum

Plaats nieuw bericht   Plaats Reactie
Vorige onderwerp Printervriendelijke versie Log in om je privé berichten te bekijken Volgende onderwerp
Auteur Bericht
The_VicarOffline
Onderwerp: constant uur opzoeken  BerichtGeplaatst: 08 feb 2010 - 15:16
In de startblokken


Geregistreerd op: 28-apr-2008
Berichten: 92

Status: Offline
Hoi,

Heb een tabel in Access met pakweg 25000 lijnen. De eerste kolom in de tabel bevat een tijdstip dat bepaalde gegevens zijn opgeslagen. Er wordt om de 10 seconden een lijn opgeslagen. (dus 25000 lijnen komt ongeveer overeen met 2,9 dagen).

nu wil ik met vba hier door die 25000 lijnen lopen en gegevens op die tijdstippen (andere kolommen in die tabel) gaan vergelijken met elkaar. Ik zou er telkens een vol uur (of 360 lijnen achter elkaar) die niet meer dan 5% van elkaar verschillen willen uithalen.

dus bv:
tijdstip waarde
1______120
2______118
3______119
4______121
5______etc...

dus de waardes van 1 opeenvolgend uur mogen niet meer dan 5% verschillen van elkaar.
De tijdstippen staan in de tabel onder de vorm : "dd/mm/jjj uu:mm:ss"

iemand een idee?

tx
Vic.
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
JennyOffline
Onderwerp: Re: constant uur opzoeken  BerichtGeplaatst: 08 feb 2010 - 16:35
In draf


Geregistreerd op: 01-feb-2007
Berichten: 271

Status: Offline
ik begrijp je vraag niet hoor
zoals ik het begrijp:
je wil van een volledig uur de waardes weten
dus zoiets als 'select tijdstip,waarde from jetabel where tijdstip between begintijdstip en eindetijdstip' ???
dat zal je dus 360 records teruggeven(tenminste als beide tijdstippen in de tabel voorkomen,en bijde tijdstippen juist 1 uur vormen )
wat bedoel je nu met:
Quote:
dus de waardes van 1 opeenvolgend uur mogen niet meer dan 5% verschillen van elkaar.

5% verschillen van de laagste waarde
of
5% verschillen van de hoogste waarde
of
5% verschillen van de gemiddelde waarde
of
5% verschillen van een bepaalde waarde

wat is het datatype van het 'tijdstip' veld, en wat is de code om het tijdstip IN de database te zetten
wat is eigenlijk de bedoeling van wat je tracht te doen ?
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
The_VicarOffline
Onderwerp: Re: constant uur opzoeken  BerichtGeplaatst: 08 feb 2010 - 19:36
In de startblokken


Geregistreerd op: 28-apr-2008
Berichten: 92

Status: Offline
Hoi Jenny,

Bedankt voor je antwoord. Ben waarschijnlijk wel wat te "cryptisch" (lees: onduidelijk Smile ) geweest omdat ik daarstraks te weinig tijd had om een degelijke post te doen.

De bedoeling is eigenlijk dat ik ergens in de 25000 lijnen, 360 lijnen achter mekaar kan vinden (1 uur dus) waarbij de hoogste waarde van die 360 niet meer dan 10% verschilt met de laagste. (dus het middelpunt verschilt max 5% met de hoogste en 5% met de laagste).

zou, denk ik, dus ongeveer zo te werk moeten gaan, maar geraak er niet uit:
- neem tijdstip 1 en lees de waarde
- neem tijdstip 2 en lees de waarde
- als waarde 2 niet meer dan 5% van waarde1 verschilt (naar boven of naar beneden) heb ik al 2 opeenvolgende lijnen
- neem tijdstip 3 en lees de waarde
- als waarde3 niet meer dan 5% verschilt van waarde1, heb ik al 3 opeenvolgende lijnen
- etc, etc, etc...

het moeilijke is, dat wanneer ik bijv al 120 opeenvolgende lijnen heb die niet meer dan 10% van mekaar verschillen, en de 121ste lijn verschilt wčl meer dan 10 %, ik overnieuw zal moeten beginnen, en ditmaal vanaf lijn 2... tot ik er 360 achter elkaar heb gevonden waarvan de hoogste waarde niet meer dan 10% verschilt van de laagste waarde.

Ik weet het, het is geen simpele vraag, want de code zou dus een "reeks" moeten gaan zoeken of herkennen, en dit in heel veel lijnen.

Op dit moment plotten we deze waardes in een grafiek, en gaan we manueel kijken waar de lijn in de grafiek 1 uur stabiel blijft. Dat zou ik graag automatiseren... maar 't zal niet makkelijk worden.

MAAR: uitdagingen zijn er om aangegaan te worden! Smile

tx,
Vic.
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
JennyOffline
Onderwerp: Re: constant uur opzoeken  BerichtGeplaatst: 08 feb 2010 - 23:57
In draf


Geregistreerd op: 01-feb-2007
Berichten: 271

Status: Offline
ok,even zien of ik het begrijp
we hebben dus een geordende verzameling van +-25000 waardes (geordend op tijdstip)
deze verzameling heeft +-24640 geordende deelverzamelingen van 360 waardes
sommige van deze deelverzamelingen kunnen 'stabiel' zijn
nu moeten we weten wat onder een 'stabiele' verzameling verstaan wordt
a)als elk element maximum 5% verschild van het eerste element
dus volgens je voorgestelde manier
Quote:
- neem tijdstip 1 en lees de waarde
- neem tijdstip 2 en lees de waarde
- als waarde 2 niet meer dan 5% van waarde1 verschilt (naar boven of naar beneden) heb ik al 2 opeenvolgende lijnen
- neem tijdstip 3 en lees de waarde
- als waarde3 niet meer dan 5% verschilt van waarde1, heb ik al 3 opeenvolgende lijnen
- etc, etc, etc...

of
b)als elk element maximum 5% verschild van het gemiddelde van zijn elementen
dus
Quote:
(dus het middelpunt verschilt max 5% met de hoogste en 5% met de laagste).

of
iets anders
bv:
de verzameling:95,100,105 is stabiel volgens b),maar niet volgens a)

de code om zoiets te doen is heel waarschijnlijk niet zo ingewikkeld, maar we moeten natuurlijk wel weten hoe die tabel opgebouwd is
dus de velden EN hun datatype
het beste is je db hier eens te zetten(enkel met de desbetreffende tabel,en gecompact,en gezipt)

edit:
als je db access 2007 is, gelieve ze dan eerst te converseren naar access 2000 of 2002 of 2003 (ik heb access 2007 niet)
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
The_VicarOffline
Onderwerp: Re: constant uur opzoeken  BerichtGeplaatst: 09 feb 2010 - 07:46
In de startblokken


Geregistreerd op: 28-apr-2008
Berichten: 92

Status: Offline
Hey Jenny,

Ondertussen ben ik al redelijk dicht bij het antwoord. Het is inderdaad bedoeld zoals jij in je laatste voorbeeld aanhaalt (van die 95, 100 en 105), die lijn is dus nog altijd stabiel.

Hetgeen ik nu doe is een gemiddelde nemen van lijn 1 tem 360, en dan lijn per lijn die 360lijnen bekijken of de waarde niet meer dan 5% verschilt met het gemiddelde. Als er 1 van die lijnen verschilt, loop verlaten en de volgende blok van 360 lijnen nemen (2 tem 361) en daar weer het gemiddelde van nemen, en zo verder, en zo verder, enz...)

Zo geraak ik er wel uit. Bedankt voor de tip! Zo had ik het nog niet bekeken. Rolling Eyes kga't wel nog ff zelf proberen verder op te lossen, is altijd leuker, maar je tip heeft me wel goed op weg gezet.

Ik ga hier morgen verder mee aan de slag en laat een bericht als't lukt of niet (zal morgen pas zijn, mijn computer in auto vergeten die nu niet thuis is Crying or Very sad )

Groetjes
Vic.
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
JennyOffline
Onderwerp: Re: constant uur opzoeken  BerichtGeplaatst: 09 feb 2010 - 23:53
In draf


Geregistreerd op: 01-feb-2007
Berichten: 271

Status: Offline
Quote:
Hetgeen ik nu doe is een gemiddelde nemen van lijn 1 tem 360, en dan lijn per lijn die 360lijnen bekijken of de waarde niet meer
dan 5% verschilt met het gemiddelde. Als er 1 van die lijnen verschilt, loop verlaten en de volgende blok van 360 lijnen nemen (2 tem 361)

het is echt niet nodig van die 360 lijnen lijn per lijn te bekijken hoor
je kan ze in een klap bijeen query-en
iets zoals:
Quote:

Select Count(TijdStip) as Aantal, Avg(Waarde) as Gemiddeld, Min(Waarde) as Minimum, Avg(Waarde)*0.95 AS ToegelatenMinimum, Max(Waarde) as
Maximum, Avg(Waarde)*1.05 as ToegelatenMaximum
From JeTabel
Having (TijdStip) Between #Het Tijdstip Van De Eerste Lijn In De deelVerzameling# And #Het Tijdstip Van De Eerste Lijn In De deelVerzameling +1/24#

zo weet je in 1 klap het gemiddelde,minimum,maximum,het minimum toegelaten,het maximum toegelaten van de 360 lijnen van de deelverzameling
(De 1e Lijn In DeelVerzameling 1 is de 1e lijn van JeTabel)
(De 1e Lijn In DeelVerzameling 2 is de 2e lijn van JeTabel)
enz...
een woordje uitleg over '#Het Tijdstip Van De Eerste Lijn In De DeelVerzameling +1/24#'
een DateTime veld in access wordt achter de schermen opgeslagen als een double, waarvan het gehele deel het aantal dagen voor/na een
referentie datum is, en het decimale deel het tijdstip in die dag
dus:
#Het Tijdstip Van De Eerste Lijn In De DeelVerzameling +1# is 1 dag later als #Het Tijdstip Van De Eerste Lijn In De DeelVerzameling#
en:#Het Tijdstip Van De Eerste Lijn In De DeelVerzameling +1/24# 1 uur later als #Het Tijdstip Van De Eerste Lijn In De DeelVerzameling#
(een dag is 24 uren,een uur dus 1/24 ste van een dag)

als het niet moest lukken, wil ik je wel code geven hoor
 
 Bekijk gebruikers profiel Stuur privé bericht  
Reageer met quote Naar boven
Berichten van afgelopen:     
Ga naar:  
Tijden zijn in GMT + 1 uur
Plaats nieuw bericht   Plaats Reactie
Vorige onderwerp Printervriendelijke versie Log in om je privé berichten te bekijken Volgende onderwerp
PNphpBB2 © 2003-2007 
 

 
Postnuke - ADODB Database - PHP 4/5 - pnPhpBB2 - Hosting bij Openminds
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno 21-12-2000)
vbib.be gestart op 1/03/06 (extra vanaf 1/09: vbnet.be en vbdotnet.be)
VBiB is gerelateerd met wintips.be

Nieuwsbrief RSS Feed: backend.php