Inhoudsopgave
-Voorwoord
-Quantified Self: een digitaal dagboek vol cijfers?
-Verschil BIOS-UEFI systemen
-Na vakantietijd foto's bewerken in Ubuntu/Mint
-Cursus Access - Hoofdstuk 18
-Helpmij.nl prijsvraag juli. Met weer een prachtige prijs!
-De nieuwe videokaarten van Nvidia
-Windows 8.1 tablet
-Windows 8.1 (2)
-E-mailen onder Windows 8
-Werken met paint.net
-Postvak-in
 

De redactie bestaat uit:
CorVerm (Eindredacteur)
Dillondarko
ErpCity
femke98
OctaFish

Aan deze nieuwsbrief hebben ook meegewerkt:
Fab300
Jan Stedehouder
K1pje
Rickvi
Sevo

De redactie is te bereiken op nieuwsbrief@helpmij.nl. Naar dit e-mailadres géén vragen sturen die betrekking hebben op computers en dergelijke. Deze horen op het forum geplaatst te worden.

Oplage
De nieuwsbrief wordt naar 28700 unieke e-mailadressen verstuurd. Deze e-mailadressen zijn via opt-in geselecteerd.

Adverteren
Indien u een advertentie wilt laten plaatsen in deze nieuwsbrief neem dan contact op met de redactie.

nod32 bestellen

Advertentie informatie aanvragen

Aan- en afmelden
Om u aan te melden voor de nieuwsbrief kunt u naar deze pagina gaan.
Wilt u de volgende uitgaven niet meer ontvangen, dan kunt u zich hier afmelden. Is deze nieuwsbrief naar u doorgestuurd en wilt u hem zelf ontvangen? Ga dan naar deze pagina en meldt u aan. U zult dan automatisch de volgende nieuwsbrief ontvangen.

Wilt u nog eens een artikel nalezen? Wanneer u lid van de vereniging bent, kunt u hier in oude nieuwsbrieven bladeren.

DISCLAIMER
Alle handels en/of productnamen hier vermeld, zijn eigendom van de respectievelijke eigenaars. De redactie van de Helpmij Nieuwsbrief gaat uiterst zorgvuldig te werk bij de vergaring, totstandkoming en publicatie van de informatie in de nieuwsbrief. Niettemin kunnen er geen rechten worden ontleend aan de inhoud van de nieuwsbrief en sluit de redactie iedere aansprakelijkheid uit voor eventuele gevolgen, waaronder begrepen directe en indirecte schade. Het toepassen van informatie en gebruik van software is voor eigen risico. De adressen van de abonnees zullen nimmer openbaar worden gemaakt en/of verkocht aan derden. Bij misbruik van het distributiesysteem van de nieuwsbrief door onbevoegden of een mogelijke storing, van welke aard dan ook, kan de redactie niet aansprakelijk gesteld worden voor eventuele daaruit voortvloeiende schade. Het is niet toegestaan om de inhoud, of delen daarvan, zonder voorafgaande schriftelijke toestemming te gebruiken.

De redactie heeft het recht om (ingezonden) bijdragen zonder opgaaf van redenen te weigeren, dan wel te wijzigen of in te korten.


Voorwoord

Auteur: CorVerm

Top

Ik weet niet of iemand de colofon wel eens leest (waarom zou je dat eigenlijk iedere keer doen?), maar als je dat nu wel doet merk je op dat deze nieuwsbrief, en hopelijk nog vele volgende, onder verantwoordelijkheid van een “oude” nieuwe eindverantwoordelijke is uitgebracht. Deze “oude” nieuwe zal zich wederom volledig inzetten om maandelijks weer een goede nieuwsbrief aan jullie voor te schotelen. Uiteraard met de onmisbare ondersteuning van het gehele redactieteam.

De laatste tijd heeft de redactie te maken gehad met enige leegloop. Niet dat we met z’n allen langdurig met buikkrampen op de pot hebben gezeten, nee het gaat over het vertrek van een aantal redacteuren. Carrièrewisseling, studiedruk, andere taken binnen Helpmij.nl: ieder had een legitieme reden voor zijn vertrek. Maar zoals de vlag er na deze "uittocht" bij hing zou de continuïteit van de nieuwsbrief, wegens gebrek aan redactieleden, in gevaar kunnen komen.

Bij hing, want naar aanleiding van de oproep die we in het vorige nummer plaatsten hebben zich een drietal personen gemeld. Te weten: Fab300, K1pje en Sevo. Zij hebben alle drie een artikel geschreven waar wij ons voordeel mee kunnen doen. Rickvi, die evenals de drie genoemde schrijvers in de colofon als medewerkende aan deze nieuwsbrief vermeld staat, hebben we van het forum “geplukt”. Wij zitten wat dat betreft niet stil.

Bedankt heren (er zit helaas geen dame bij) voor jullie inzet, wij hopen op een langdurige en prettige samenwerking!

Dus wij zijn aan het eind van onze zoektocht gekomen? Nee, wij kunnen nog altijd mensen gebruiken die hun kennis op computergebied met ons willen delen. Kun jij misschien iets aardigs schrijven over bijvoorbeeld (telefoon)apps, Apple hard- of software, of elektronische nieuwigheden, stuur je verhaal dan naar de redactie! Het adres is: redactie@helpmij.nl, Indien wij jouw artikel plaatsen, ontvang je onze aanmoedigingspremie van € 20 !




Quantified Self: een digitaal dagboek vol cijfers?

Auteur: Jan Stedehouder

Top

Heb je wel eens een dagboek of ‘journal’ bijgehouden? De ‘personal development guru’s’ zweren er bij: stel jezelf doelen, werk hard om die doelen te bereiken, leg alles onderweg vast in een dagboek en lees vervolgens periodiek eens terug hoe goed je bezig bent. In essentie komt Quantified Self (QS) op hetzelfde neer en het is ook niet vreemd dat ‘Life Logging’ een synoniem is.

Wat is QS dan? Kortweg het gestructureerd vastleggen van (een deel van) jouw gedrag teneinde daar meer inzicht in te krijgen zodat je het gedrag kan bijsturen om een gewenst doel te bereiken. Om het wat concreter te maken: je wilt afvallen maar je snapt niet waarom je te zwaar bent. Je eet toch best gezond, beweegt toch genoeg? Een periode meten levert dan de kille cijfers op om die vraag met: “Nee!” te beantwoorden. QS komt daarmee grotendeels neer op preventieve zelfzorg. e-Health heeft eerder betrekking op het ‘loggen’ in het kader van een medische behandeling.

Je kunt QS gebruiken voor, bijvoorbeeld, het bijhouden van je persoonlijke milieuvervuiling via de app CO2-footprint, je stemmingswisselingen met Depression CBT Self-Help Guide  (“Heb ik misschien een depressie?”), je slaapritme met de app Zeo Sleep Manager in combinatie met een hoofdband, je lichaamsbeweging met Runkeeper, zo’n beetje ieder gedrag dat in een cijfer is uit te drukken. Om te beginnen met QS heb je niet meer nodig dan een smartphone en een app die in iTunes of Google Play te vinden is. Alles wat je meet kan opgeslagen worden bij een online dienst en vandaar gedeeld met andere leden van de ‘community’ of je vrienden op de sociale media. Naast de smartphone kan QS worden gebruikt met smartwatches en slimme pols-, hoofd- en lichaamsbandjes al dan niet voorzien van sensors.

Het adagium lijkt: “Meten is weten”, maar dat is slechts waar als je echt iets met de cijfers gaat doen. QS sluit aan bij het beeld van de mens als een machine die je moet ‘fine tunen’. Een dergelijk mensbeeld moet wel bij je passen, want het terugbrengen van complex menselijk gedrag tot simpele cijfers valt niet bij iedereen in goede aarde. En zonder goede begeleiding kan gedragsverandering op basis van dergelijke cijfers zelfs tot gezondsheidsklachten leiden.

Misschien is ook zinvol even na te denken welke gezondheidsinformatie, over onze leefstijl, ons eetgedrag, onze gezondheid, waarden als bloedsuikerspiegel en bloeddruk, we opslaan bij een gratis (veelal) buitenlandse clouddienst. We zijn in Nederland redelijk kritisch over het elektronisch patiëntendossier, maar we zouden even kritisch moeten zijn over het opslaan en delen van QS-informatie. Bij een gratis dienst mag je er van uitgaan dat die informatie wordt doorverkocht, aan de farmaceutische industrie, aan de voedingsindustrie, aan verzekeringsmaatschappijen. Het kan dus zeker geen kwaad om eerst de voorwaarden van de app of dienst te lezen voordat je akkoord gaat en infomatie gaat opslaan.

Noot van de redactie:

Dit artikel komt voort uit het boek dat Jan Stedehouder schrijft over technologietrends en de vraag: "Waarom snappen wij technologie niet (of zo slecht)?". De titel van het boek wordt Hypeocratie!, geen how to -, maar een beschouwend boek. Nee, het woord Hypeocratie zul je (nog) niet in de woordenboeken vinden, het is een door Jan zelfbedacht woord. Letterlijk kun je het vertalen als: "geregeerd worden door hypes".

Meer over Hypeocratie met als “ondertitel”: “Gouden bergen en verbroken beloftes in het land van de technologie hypes” kun je vinden op het blog van Jan: http://hypeocratie.wordpress.com/

CorVerm




Verschil BIOS-UEFI systemen

Auteur: Rickvi

Top

Wat is er anders aan een UEFI systeem in vergelijking met een traditioneel systeem met BIOS? Wat kun je ermee en welke voor- en nadelen zitten er aan? Kortom wat is UEFI nu eigenlijk.

Het volgende stukje gaat over de belangrijkste verschillen voor ons als consument.
UEFI is een afkorting voor Unified Extensible Firmware Interface, en is de opvolger van het bekende BIOS. Over het BIOS een kleine uitleg.

BIOS is een afkorting voor Basic Input Output Software. Zoals je kunt zien aan het eerste woord BASIC, is het een basis voorziening, een soort bibliotheek met basisinstructies om hardware en het besturingssysteem te laten communiceren. Wanneer een pc of laptop gestart wordt in BIOS systemen word er een serie tests uitgevoerd die controleert of het RAM,  de videokaart, de opslagschijven, toetsenbord en andere hardware normaal functioneert. Als dat allemaal succesvol doorlopen is, zoekt het BIOS naar een opstartsector op de harde schijf en zal het systeem verder opstarten. De taak van het BIOS zit er dan op en wordt overgenomen door het besturingssysteem.

UEFI is de vervanger van het BIOS en waar BIOS een basisvoorziening is om het systeem op te starten, is UEFI meer een klein besturingssysteempje op zichzelf. UEFI is volledig platformonafhankelijk en veel uitgebreider. Het kan met alle aangesloten hardware overweg en in de praktijk betekend dit een snellere opstartsnelheid. De hardware wordt namelijk door UEFI ingeladen en niet meer door het besturingssysteem.
 Inherent aan het UEFI systeem is de indeling van de harde schijf waar het systeem van opstart. De schijf waar het besturingssysteem van opstart is geformatteerd in GPT (GUID PARTITION TABLE).

Dit heeft ook weer een voordeel. GPT partities zijn beter beschermd tegen zogenaamde rootkits en virussen die zich in de opstartsector kunnen nestelen, waardoor het besturingssysteem niet meer wil opstarten. GPT-schijven hebben een backup-partitietabel die gebruikt kan worden als hoofd-partitietabel corrupt geraakt is door bijvoorbeeld een rootkit of virus. Ook kan het in specifieke situaties  een voordeel zijn dat een schijf geformatteerd in GPT wel 128 partities kan bevatten. In tegenstelling tot maar 4 partities als de schijf in NTFS geformatteerd is. Het door Intel ontwikkelde EFI systeem werd in het verleden veel gebruikt voor servers, waarbij de veiligheid als belangrijkste argument werd aangevoerd. Later is dit door Microsoft verder ontwikkeld, en is de term UEFI ontstaan.

Een nadeel van een UEFI systeem kan zijn dat het vrij moeilijk is, soms onmogelijk, om een ouder Windows besturingssysteem te installeren, of bijvoorbeeld een Linux distro. Het is mogelijk om UEFI uit te zetten, en te booten in BIOS LEGACY mode, zodat ondersteunde partitie-formats kunnen worden gebruikt ( NTFS,  ext2, ext3 of ext4 en meer ). Of de mogelijkheid om UEFI uit te zetten in de toekomst geblokkeerd wordt, is tot op vandaag niet bekend. Ook zou de SECURE BOOT optie aan of uit gezet moeten kunnen worden, als dat niet kan zal er geen alternatief besturingssysteem geïnstalleerd kunnen worden.

Dit probleem kan ontstaan wanneer een OEM-bouwer zijn pc zodanig configureert, dat er geen ander besturingssysteem geïnstalleerd kan worden.  Het zou dan onmogelijk zijn om bijvoorbeeld een dual-boot met Linux te installeren. Het  Linux-front  is niet zo blij met deze ontwikkeling,

maar Microsoft heeft in een blog laten weten dat:

  • UEFI kan firmware gebruik laten maken van een veiligheidsbeleid
  • Secure boot is een UEFI protocol niet een Windows 8-functie
  • UEFI Secure Boot is een onderdeel van 'Windows 8 secured boot' architectuur
  • Windows 8 maakt gebruik van Secure Boot om ervoor te zorgen dat de pre-OS-omgeving veilig is
  • Secure boot is niet bedoeld om andere OS-loaders te blokkeren, maar het is een beleid waarmee firmware de authenticiteit van componenten kan valideren.
  • OEM's hebben met UEFI de mogelijkheid om hun firmware aan te passen aan de behoeften van hun klanten die op deze manier een beleid omtrent hun computergebruik kunnen handhaven. Het niveau van dit beveiligingsbeleid kan aangepast worden. Vooral voor zakelijke pc's is dit belangrijk.
  • Microsoft beheert niet en controleert niet de instellingen van PC firmware waarmee Secure Boot in of uitgeschakeld kan worden.”

Op de website van Microsoft Windows Hardware Certification Requirements staat het volgende:

VERPLICHT: inschakelen/uitschakelen Secure Boot.
De mogelijkheid om Secure Boot uit te schakelen op niet-ARM systemen kan worden verkregen doormiddel van een firmware setup. Een fysiek aanwezig gebruiker moet worden toegestaan ​​om Secure Boot via firmware setup zonder rechten op Pkpriv (stukje code, of programmatuur) Secure Boot aan of uit te schakelen. Programmatisch uitschakelen van Secure Boot hetzij tijdens Boot Services of na het verlaten van EFI Boot Services mag niet mogelijk zijn. Het uitschakelen van secure boot mag niet mogelijk zijn op ARM systemen.

Met andere woorden, op gewone notebooks en pc's kan Secure Boot uitgeschakeld worden zonder tussenkomst van Microsoft of de leverancier, zodat alsnog een ander besturingssysteem erbij geïnstalleerd kan worden.

Was je echter van plan om in de toekomst een Windows 8 tablet te gaan kopen en daarnaast Android op te installeren, dan zou je wel eens bedrogen uit kunnen komen.




Na vakantietijd foto's bewerken in Ubuntu/Mint

Auteur: femke98

Top

En daar zit je dan met 100den foto's die je wilt uitzoeken op datum. Of je hebt een weblog waar je ze op wilt zetten, maar dan moeten ze wel allemaal worden verkleind/geschaald en hernoemd.

Daarbij misschien sommige foto's ietwat boost geven qua kleur en dan ook nog eens een hele map veranderen van naam. Want een verwoed fotograaf weet wel dat foto's die zijn gemaakt, een hele vreemde naam krijgen toegewezen, zoals bijv. DC00785.JPG

En laat bijv. Imageshack nu geen .JPG aanvaarden maar wel .jpg
Je ziet het verschil? Hoofdletters cq kleine letters. Je moet het allemaal maar weten.

In Windows zullen er ongetwijfeld proggies voor zijn om het een en ander te kunnen veranderen aan je foto's. En dan heb ik het niet over het veranderen van kleuren e.d. maar over wat ik hierboven al schreef, schalen en hernoemen.

In Linux Ubuntu/Mint heb je ook hele fijne proggies die het werk heel snel voor je kunnen doen. Daarom dacht ik voor deze nieuwsbrief een handleiding te maken voor "wat ik doe met mijn foto's als ik ze klaar wil maken voor op mijn weblog (http://ons-blog.nl)"

Stap 1

Zet de foto's vanaf je camera naar je pc. Ik doe dat altijd gewoon met een cardreader, dat vind ik het makkelijkst. Op mijn pc staat altijd een map met de naam “SD Kaart” en daar zet ik dan de foto's van mijn camera in. Vanuit die map ga ik alles doen.

Stap 2.

Allereerst zoek ik de foto's uit. Omdat ik er altijd veel meer maak dan eigenlijk nodig is, (dit omdat ik soms bepaalde zaken dubbel fotografeer) ga ik bekijken welke ik wil behouden en welke niet. Die ik niet wil behouden dender ik meteen weg, ik zet ze ook niet in de prullenbak.

Daarna sorteer ik ze op onderwerp of situatie en zet ze in een aparte map met de naam van het onderwerp of situatie. Dan in die map zet ik een nieuwe map met de naam “Verkleind”.  Zie het plaatje hieronder. De reden hiervan komt straks aan bod.

map SD kaart

Stap 3.

Zoals je ziet in het plaatje bij stap 2 hebben de foto's een rare naam en ook zal ik ze moeten verkleinen. Dat laatste is heel erg makkelijk en eenvoudig te doen met de zogenaamde nautilus-image-converter. Deze installeer je via Synaptic (pakketbeheer). Zoek in Synaptic naar Nautilus en dan komt vrijwel gelijk nautilus-image-converter te voorschijn. Na installatie wel even uit- en inloggen en dan zie je het volgende onder je rechtermuisknop verschijnen. (linker plaatje)

nautilus

schalen

Jullie snappen wel dat je, wanneer je de foto's gaat verkleinen, de originele foto's uiteraard met rust moet laten, dus kies voor bestandsnaam Toevoegen. (rechterplaatje)

Met deze tool kan je helaas niet aangeven waar je de plaatjes wilt hebben, dus zul je ze zelf even moeten verslepen naar de map die je al had aangemaakt, namelijk de map Verkleind.

Nu gaan we hetzelfde doen maar dan met gThumb. Dat is een programma dat standaard in Ubuntu zit en je kan het terugvinden onder Grafisch. (Of via het zoekvenster even gThumb intypen, dan komt het vanzelf tevoorschijn)

Selecteer alle foto's die je wilt verkleinen en kies dan Openen met.....gThumb. Het programma zal opstarten met de foto's in beeld.

gThumb

Omdat we ze op een weblog gaan zetten, is het verstandig om de foto's niet alleen te verkleinen maar ook te comprimeren. Het mooie aan gThumb is dat je dit daar ook mee kan doen; met de tool in Nautilus kan dat niet.

Ga naar Bewerken en dan Voorkeuren. Ga naar tabblad Saving en daar zie je dat je de kwaliteit kan aanpassen. Ik heb de kwaliteit op 70 gezet, dit is voor mij en mijn weblog nog uitstekende kwaliteit. Afvlakking heb ik op 0 gelaten, wel heb ik een vinkje bij Optimaliseren gezet, bij Progressief niet. Verder kan je aangeven in welke extension je de foto's wilt hebben. Default is jpg.

Uiteraard kan je bij Voorkeuren nog veel meer instellen, maar ik beperk mij nu even tot het verkleinen en comprimeren.

Wanneer je dus je eigen kwaliteit hebt aangepast, gaan we het venster sluiten en de foto's laten verkleinen. Selecteer alle foto's die je had geopend en klik op Tools en dan op Rezise Images.

vekleinen

Geef daar de Breedte en de Hoogte in, bij Destination zie je de map staan waar de foto's in staan, maar we willen de map Verkeind hebben. Klik er dus op en kies Andere en zoek de map Verkleind. Daarna klik je op Uitvoeren. De foto's worden zeer snel verkleind en worden in de map Verkleind gezet.

Stap 4.

Nu gaan we de foto's van naam veranderen. Ik zelf doe altijd de foto's gewoon op onderwerp met daarbij gewoon 1 t/m de hoeveelheid foto's die ik heb. In Linux heb je daar het geweldige programma GPRename voor. Deze installeer je via Synaptic.

GPRename

Zoek aan de linkerkant de map op waar de foto's staan. Selecteer alle foto's en klik op tabblad Nummering. Daar zet je bij Vanaf nummer 1 neer en dan in stappen van 1. Bij Tekst erachter zet je de extensie en in mijn geval is dat eigenlijk altijd .jpg. Klik daarna op Vooruitblik en je ziet het volgende:

naam wijzigen

Klik daarna op Naam wijzigen.

Stap 5.

Alle foto's heb je nu en verkleind en van naam veranderd, nu kun je dus de foto's gaan plaatsen op je weblog. Met gThumb kan je trouwens veel meer doen. Je kan bijv. je foto's net dat beetje extra geven aan kleur, maar je kan ze ook gelijk sharen naar je Facebook of Flickr. Zelfs de horizon weer recht breien en andere leuke dingen, maar dat mogen jullie allemaal zelf uitpuzzelen! Het is een klein maar machtig mooi programma, wat heel veel mensen nog niet ontdekt hebben.

Een hele fijne vakante en succes!!




Cursus Access - Hoofdstuk 18

Auteur: OctaFish

Top

Een Zoekformulier

Heel veel Access gebruikers gebruiken zoekformulieren om gegevens op een formulier op te zoeken, en op basis daarvan een tweede formulier te openen met het gevonden record. En die constructie is natuurlijk prima. Maar als je veel tabellen en formulieren in je database hebt, zal je vermoedelijk ook meer zoekformulieren hebben, of meer zoekfuncties op bestaande formulieren.

In dit hoofdstuk gaan we één zoekformulier maken, dat je (bijna) overal voor kunt gebruiken. Het ziet er ongeveer zo uit:

zoekformulier

Dit venster bestaat uit 3 objecten:

  1. Keuzelijst met invoervak met keuze uit tabellen
  2. Keuzelijst met beschikbare velden
  3. Keuzelijst met resultaat van tabel met gekozen velden

De derde keuzelijst met het resultaat kun je dan weer gebruiken om bijvoorbeeld een formulier te openen. In eerste instantie is het zoekformulier bedoeld om records makkelijk op te zoeken, maar er zijn ook andere opties mogelijk, zoals een knop om de gekozen velden te exporteren, of een mailing te maken met de gekozen selectie. 

1.1     Noodzakelijke voorwaarden

Wat heb je aan technieken nodig om dit formulier te maken? De basis keuzelijsten zijn relatief simpel. De eerste keuzelijst moet de beschikbare tabellen laten zien. Daarvoor zijn (minstens) twee methoden, die ik hier allebei behandel. Welke je neemt, maakt niet zoveel uit, al heb ik zelf een voorkeur voor de tabelmethode. Wel gebruiken we een andere manier voor het vullen van de keuzelijsten. Doorgaans gebruik je voor een keuzelijst de optie <Tabel/Query> als type, maar in dit formulier gaan we ook werken met <Lijst met velden>, en <Lijst met Waarden>.

De tweede voorwaarde is, dat je voordat je de derde keuzelijst kunt gebruiken, zeker moet weten dat hij ook correct gaat werken. En daarmee bedoel ik dit: als je de keuzelijst gebruikt om een record te openen op een nieuw formulier, dan wil je zeker weten dat het goede record wordt geopend. En dat betekent meestal, dat je dat formulier opent op basis van het sleutelveld van de tabel. En om dat goed te automatiseren, moet je dus altijd het sleutelveld terugzien in de resultaat keuzelijst (3). Alleen: hoe weet de gebruiker nu wat het sleutelveld (of de sleutelvelden) zijn in een tabel? Gelukkig hoeft hij dat niet te weten, want dat kunnen we met een functie achterhalen.

1.2     Keuzelijst om tabellen en/of queries te tonen

Zoals hierboven gezegd, zijn er twee methoden om te bepalen welke tabellen of queries we in een database hebben. De eerste methode maakt gebruik van collecties in de database, de tweede van een systeemtabel. We behandelen beide technieken, zodat je zelf kunt kiezen welke methode je voorkeur heeft. We gaan eerst keuzelijst (1) maken, die de tabellen laat zien.

1.2.1     Werken met collecties

Access heeft een eigenschap waarmee je  kunt achterhalen welke objecten zoals tabellen, formulieren, rapporten en modules je in een database hebt opgeslagen. Door die collecties uit te lezen, en in een stringvariabele te zetten, kun je deze gegevens hergebruiken. Bijvoorbeeld als rijbron voor een keuzelijst.

De collecties waar we mee gaan werken zijn:

  • AllTables
  • AllQueries

Maar je hebt dus ook de collecties AllForms, AllReports, AllMacros en AllModules. Deze laatste zijn allemaal onderdeel van het object <CurrentProject>, terwijl wij dus gaan kijken naar objecten van het object CurrentData.

Laten we eens gaan kijken naar de functie.

Function TabelNamen() As String
Dim aObj As AccessObject
Dim dbs As CurrentData
Dim strVelden As String
    Set dbs = Application.CurrentData
    For Each aObj In dbs.AllTables
        If Left(aObj.Name, 4) <> "MSys" Then
            If strVelden <> "" Then strVelden = strVelden & ";"
            strVelden = strVelden & aObj.Name
        End If
    Next aObj
    TabelNamen = strVelden
End Function

We beginnen, zoals gewoonlijk, weer met het definiëren van de variabelen. Er zijn er drie. We kijken naar objecten, en daarom leggen we aObj vast als AccessObject. We willen in de collectie CurrentData kijken, dus daarom definiëren we dbs als CurrentData. En de laatste is een bekende...

Als eerste gebruiken we het SET commando om de variabele dbs te koppelen aan de eigenschap CurrentData. Die halen we uit de Application collectie.

Vervolgens lopen we met een lus door alle tabellen van het CurrentData object. We controleren eerst of de gevonden tabel geen (verborgen) systeemtabel is, want die tabellen hoeven we natuurlijk niet te zien in de keuzelijst. Het gaat ons om de tabellen met onze eigen gegevens.

Opmerking: systeemtabellen zijn altijd aanwezig in een database, maar meestal verborgen voor de gebruiker. Je kunt ze zichtbaar maken in het navigatiepaneel door de optie <Systeemobjecten weergeven> aan te zetten. Systeemobjecten beginnen altijd met de letters “MSys” dus door daar op te checken, kun je de systeemobjecten vermijden.

In de volgende IF...End If worden de juiste tabelnamen aan de string strVelden toegevoegd. En als laatste, als de lus is voltooid, wordt de variabele strVelden aan de functie toegewezen.

We hebben nu een string die we kunnen gebruiken om de keuzelijst te vullen.

Dat doen we bij het laden van het formulier, en wel op de volgende manier:

Private Sub Form_Load()
    With Me.cboTabel
        .RowSourceType = "Value list"
        .RowSource = TabelNamen
    End With
End Sub

We roepen bij het laden van het formulier dus de functie TabelNamen aan, die aan de RowSource van de keuzelijst wordt toegewezen.

1.2.2     Werken met systeemtabellen

We hebben het net al gezien in de procedure: Access kent systeemtabellen. Waar zijn die voor, en wat kunnen we er mee? De eerste vraag is simpel: Access slaat in de systeemtabellen allerlei variabelen op die het nodig heeft om de database te kunnen laten werken. In de nieuwere versies (vanaf 2007) worden de werkbalken die je zelf maakt gemaakt in XML, en de daarvoor gebruikte code vind je terug in de systeemtabel [MSysAccessXML]. De relaties die je legt in de database worden beschreven in de tabel [MSysRelationships]. En de tabellen, queries, formulieren etc. die je maakt worden opgeslagen in de tabel [MSysObjects]. En die laatste tabel kunnen we gebruiken om een lijst te genereren van de beschikbare tabellen.

Opmerking:     Om de systeemtabellen te zien moet je ze zichtbaar maken door in het navigatiepaneel de optie <Systeemobjecten weergeven> aan te zetten.

Als je de systeemtabel [MSysObjects] bekijkt, zie je twee velden die voor ons interessant zijn: de velden ]Name] en [Type]. De eerste bevat de naam van de objecten, de tweede het soort object. De tabel slaat namelijk alle mogelijke objecten op, en we zijn alleen geïnteresseerd in de tabellen. Als je door de systeemtabel bladert, dan zie je snel genoeg dat alle tabellen als type de waarde 1 hebben.

Wat we gaan doen is dus eigenlijk heel simpel: we gaan een query maken op basis van de tabel [MSysObjects] en we gaan die tabel filteren op het veld [Type]. De query ziet er daarom zo uit:

SELECT Name FROM MSysObjects WHERE ((Left([name],4)<>"MSys") AND ([Type]=1)) ORDER BY Name

Deze query wordt als Rijbron gebruikt voor de keuzelijst [cboTabel]. Die uiteraard als type <Tabel/query> heeft, want we gebruiken een query als rijbron.

Om deze query te kunnen gebruiken, hoef je de systeemobjecten overigens niet zichtbaar te hebben; je kunt deze query altijd maken en gebruiken. Al is het wel af en toe makkelijk om te kunnen zien wat je eigenlijk allemaal in de query aan het zetten bent. Maar als alles werkt zoals het moet, kun je de objecten weer verbergen.

Beide opties werken even goed; het is aan jou om te bepalen welke variant (of wellicht wil je ze beiden uitproberen) je kiest op je formulier.

1.3     De keuzelijst met Velden

Nu we een  keuzelijst met invoervak hebben die de tabellen laat zien, kunnen we de aandacht verleggen naar keuzelijst (2), die de velden uit de gekozen tabel laat zien.

Deze keuzelijst is eigenlijk heel simpel. Je maakt daarvoor op je formulier een lege keuzelijst, die je groot genoeg maakt om een aantal velden te laten zien, en je laat hem leeg. Hij wordt dus niet gekoppeld aan een tabel. Dat doen we vanuit de eerste keuzelijst met invoervak. Wèl moeten we het <Type rijbron> aanpassen; dit wordt ingesteld op <Lijst met velden>. We willen immers de velden zien uit de gekozen tabel, en Access kan die automatisch ophalen.

We hebben dus een gebeurtenis nodig die we koppelen aan de actie <Bij klikken> van de keuzelijst <cboTabel>. En die ziet er zo uit:

Private Sub cboTabel_Click()
    With Me.lstVelden
        .RowSourceType = "Field list"
        .RowSource = Me.cboTabel.Value
        .Requery
    End With
End Sub

Het resultaat van dit alles is, dat de keuzelijst <Lijst met velden> de beschikbare velden laat zien die we kunnen gebruiken.

1.4     De resultaatlijst

De derde stap van het zoekformulier bestaat eruit dat we velden kiezen in de keuzelijst met velden, en op basis daarvan een keuzelijst vullen die de geselecteerde velden ophaalt uit de gekozen tabel. Hiervoor is het noodzakelijk om de eigenschap van de keuzelijst op Multiselect te zetten, anders kun je maar één veld selecteren. Tevens hebben we een functie nodig die controleert welk veld, of welke velden in de tabel de sleutel vormen, want die velden zijn in ieder geval nodig in keuzelijst (3). Want alles wat we willen doen met de lijst die we gaan maken, zal in ieder geval de sleutelvelden moeten hebben.

Verder zou het mooi zijn als de resultaatlijst dynamisch wordt aangepast aan de gekozen velden. In een tabel heb je doorgaans verschillende velden, met verschillende eigenschappen en verschillende veldlengtes. Dat laatste geldt dan voornamelijk voor tekstvelden, omdat numerieke velden in Bytes worden uitgedrukt. Maar ook daarvoor geldt natuurlijk dat je getallen en bedragen wel goed wilt kunnen zien in het resultaat.

1.4.1     De resultaatlijst vullen

Als eerste stap gaan we de code bekijken die we nodig hebben om de keuzelijst (3) te vullen. Hierbij heb je twee uitgangspunten. Je kunt een knop maken die één keer de resultaatlijst vult, of je vult de resultaatlijst elke keer bij als je een veld selecteert of deselecteert. Voor de techniek maakt dat niet zoveel uit, hooguit voor de snelheid van het formulier, omdat de tweede optie het bijwerken natuurlijk vaker uitvoert dan de knopversie. Hoe ziet de code om keuzelijst (2) uit te lezen er ook al weer uit (het onderwerp is al eens aan bod gekomen)? Laten we de code er eens bijhalen:

Private Sub lstVelden_Click()
Dim ctl As Control
Dim itm As Variant
Dim sVelden As String, strSQL As String
    For Each itm In Me.lstVelden.ItemsSelected
        If Me.lstVelden.ItemsSelected.Count > 0 Then
            If sVelden <> "" Then sVelden = sVelden & ", "
            sVelden = sVelden & "[" & Me.lstVelden.ItemData(itm) & "]"
        Else
            Exit Sub
        End If
    Next itm
    strSQL = "SELECT " & sVelden & " FROM [" & Me.cboTabel & "]"
    With Me.lstResultaat
        .RowSource = strSQL
        .RowSourceType = "Table/Query"
    End With
End Sub

Omdat deze techniek al eerder aan bod is geweest, hou ik de uitleg kort. Met For Each itm In Me.lstVelden.ItemsSelected starten we een lus die door alle geselecteerde waarden uit de keuzelijst loopt. We controleren eerst of er minstens één waarde is geselecteerd, want anders kunnen we geen query maken. Al zou je nog kunnen overwegen om de resultaatlijst te vullen met alle velden uit de tabel. Zie opdracht 1.

Bij voldoende (lees: minstens 1) geselecteerde waarde kunnen we een string gaan vullen met de geselecteerde waarden. Dat gebeurt met: sVelden = sVelden & "[" & Me.lstVelden.ItemData(itm) & "]"

Mochten er in de veldnaam spaties zitten, dan moeten er rechte haken om de veldnaam komen. Om het makkelijk te maken, zetten we die er standaard omheen. Hetzelfde zie je later ook gebeuren bij de tabelnaam. Als eerste in de IF...ELSE...END IF zie je nog een opdracht die de verschillende velden scheidt met een komma. Dit teken kan, afhankelijk van je landinstellingen, ook een puntkomma zijn. Controleer dus welk scheidingsteken je gebruikt als de code niet blijkt te werken.

Als alle geselecteerde items zijn uitgelezen, kunnen we een query maken die we als bron gebruiken voor de resultaatlijst. Als je al eens een query hebt gemaakt, zal de structuur je bekend voorkomen; het is een redelijk standaard Selectiequery. Eventueel kun je nog een sortering toevoegen op een veld. Probleem is natuurlijk dat je dan wel moet weten op wèlk veld je wilt sorteren. En dat maakt het nogal lastig.

Opdracht 1

Bouw de procedure lstVelden_Click zodanig om dat de keuzelijst lstResultaat alle velden uit de tabel laat zien als er geen waarde in de keuzelijst lstVelden is geselecteerd.

1.4.2     De sleutelvelden vinden

Een lastig klusje kan het opzoeken van de sleutelvelden zijn. Zoals al gezegd: wil je echt iets kunnen doen met het zoekresultaat, dan heb je vermoedelijk de sleutelvelden nodig om een ander formulier te openen.

Voor het opzoeken van de sleutelvelden maken we gebruik van de Index collectie. Eerst maar weer de functie, die we dan gaan ontleden.

Function PrimaryKey(tblName As String) As String
Dim db As DAO.Database
Dim td As DAO.TableDef
Dim idx As DAO.Index
Dim tmp As Variant
    Set db = CurrentDb
    Set td = db.TableDefs(tblName)
    For Each idx In td.Indexes
       If idx.Primary = True Then
        tmp = Replace(idx.Fields, "+", "")
          PrimaryKey = tmp
          Exit For
       End If
    Next idx
    db.Close
    Set db = Nothing
End Function

De functie PrimaryKey gebruikt een inputvariabel, namelijk de tabelnaam, en levert een string als resultaat. Dat betekent dat we het resultaat verder kunnen bewerken.

We vinden een nieuw variabele type: DAO.Index. De DAO bibliotheek is standaard altijd geladen in Microsoft, en hoeft als zodanig niet specifiek gedefinieerd te worden mits je alleen DAO gebruikt, en niet DAO en ADO tegelijk laadt. In het laatste geval (zoals in het voorbeeld) moet DAO specifiek in de verwijzing worden opgenomen.

Opmerking:     DAO wordt door Microsoft al zo’n beetje vanaf de eerste versie van Access meegeleverd (versie 3.6) en is in al die jaren nauwelijks veranderd. Het DAO versienummer in Office 2010 is dus hetzelfde als in Access 97. Dat terwijl ADO steeds door evalueert, van ADO 2.1 naar (wederom Access 2010) ADO 6.1. Officieel ondersteunt Microsoft DAO ook al een aantal jaar niet meer, maar omdat veel gebruikers er nog steeds graag mee werken, en je er nog steeds zaken mee kunt regelen die in ADO niet kunnen (omgekeerd geldt overigens ook) blijft DAO dus gewoon in Access zitten.

Wat doet de functie precies? We wijzen eerst met SET de huidige database toe aan de variabele db, en vervolgens de tabeldefinitie van de tabel die als parameter is meegegeven aan de variabele td.

Daarna wordt met een lus door alle indexen gelopen die zijn opgeslagen in de tabel. Dat gebeurt met For Each idx In td.Indexes. Binnen de index collectie kan er maar één index primair zijn, en dat is ook degene die we zoeken, want dat is de primaire sleutel. De volgend regel is wellicht een beetje vreemd, maar logisch als je weet dat de naam van de index die je op deze manier uitleest altijd begint met een plust-teken. En daar hebben we niet zoveel aan, dus dat teken moeten we kwijt zien te raken. Vandaar dat er een tijdelijke variabele wordt gebruikt om de opgeschoonde index in op te slaan. Dat gebeurt met de regel tmp = Replace(idx.Fields, "+", ""). Replace is in dit geval een snelle methode, omdat een index uit meerdere velden kan bestaan, en we elk veld natuurlijk willen opschonen.

Als we de primaire sleutel hebben gevonden, kunnen we deze toewijzen aan de functie, en de lus sluiten.

Hoe gaan we dit inbouwen in de veld procedure? Welnu, die moet een beetje worden aangepast.

Om te beginnen, moet de nieuwe functie worden aangeroepen, en het resultaat in de variabele sVelden worden gezet. Vervolgens moet de keuzelijst worden uitgelezen zoals hierboven gebeurt, met als toevoeging dat we nu moeten controleren of de sleutelvelden niet ook geselecteerd worden. Want dan zouden ze dubbel in de lijst verschijnen, en dat is natuurlijk niet de bedoeling. We doen dat door de sleutelvelden in een matrix variabele te zetten (er kunnen tenslotte meerdere velden zijn) en die te vergelijken met de uitgelezen veldnaam. Als die in de matrix zit, is het een sleutelveld en slaan we ‘m over. De aangepaste code ziet er nu zo uit, met de aanpassingen in vet:

sVelden = Replace(PrimaryKey(Me.cboTabel.Value), ";", ", ")
tmp = Split(sVelden, ",")
For Each itm In Me.lstVelden.ItemsSelected
    bCheckVeld = False
    If Me.lstVelden.ItemsSelected.Count > 0 Then
        For i = LBound(tmp) To UBound(tmp)
            If tmp(i) = Me.lstVelden.ItemData(itm) Then
                bCheckVeld = True
                Exit For
            End If
        Next i
        If bCheckVeld = False Then
            If sVelden <> "" Then sVelden = sVelden & ", "
            If InStr(1, Me.lstVelden.ItemData(itm), " ") > 0 Then
                sVelden = sVelden & "[" & Me.lstVelden.ItemData(itm) & "]"
            Else
                sVelden = sVelden & Me.lstVelden.ItemData(itm)
            End If
        End If
    Else
        Exit Sub
    End If
Next itm

De code begint nu met het vullen van de variabele sVelden met de sleutelvelden. Hier zie je een Replace in verwerkt, en dat is noodzakelijk (in mijn geval) omdat de velden in een index die uit meer velden bestaat gescheiden worden door een puntkomma. En de SQL string wordt opgebouwd met komma’s, dus voor de zekerheid (je zult vaker een enkelvoudige sleutel vinden) worden de puntkomma’s vervangen door komma’s.

In de For Each lus wordt nu met SPLIT de variabele sVelden gesplitst, en wordt de geselecteerde waarde in een lus vergeleken met alle aparte sleutelveldnamen. Zo ja: dan heb je een sleutelveld aangeklikt, en wordt de variabele bCheckVeld op TRUE gezet. Zo nee (bCheckVeld = FALSE) dan zit het veld nog niet in de velden string, en voegen we ‘m toe.

Het resultaat ziet er dan zo uit:

juli 2013: access combi..jpg

Je ziet dat de eerste twee kolommen in het resultaat niet geselecteerd zijn. In deze tabel zijn dit de twee sleutelvelden.

1.4.3     De kolommen instellen

De laatste opdracht is absoluut niet nodig (we hebben immers een lijst met resultaten), en best lastig. Want we moeten niet alleen de veldeigenschappen uitlezen, we moeten ze ook nog eens vertalen naar zinvolle breedtes voor de kolommen. Kortom: het type klusje waar je bloed sneller van gaat stromen op een regenachtige woensdagmiddag!

We hebben hierbij te maken met een paar variabelen, zoals de breedte van de veldinhoud, de breedte van de kolomkoptekst en het gebruikte lettertype en lettergrootte. Daar komt nog bij dat kolommen in VBA in TWIPS worden gemeten, en dat is nu niet de meest handige maatsoort in het universum. Maar we kunnen een heel eind komen!

Dan hebben we ook nog de overweging wanneer de kolommen kunnen worden ingesteld. Logischerwijze kan dat pas als we weten welke velden we gaan gebruiken, en dat is dan inclusief de sleutelvelden die immers altijd voorkomen in de resultaatlijst. Want om in een keuzelijst kolombreedtes in te stellen, moet je de eigenschap ColumnWidths vullen met een string met de gewenste waarden. Kortom: we doen dat nà het instellen van de string met velden.

Als eerste moeten we een functie hebben waarmee we de maximale lengte van het veld kunnen opsporen. Dat kan uiteraard met een query, die we dan wel flexibel moeten maken. Vandaar ook dat we een functie gebruiken. Die zou er zo uit kunnen zien:

Function VeldGrootte(fldName As Variant, tblName As String) As Integer
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT Max(Len(Nz(" & fldName & ")) AS n FROM [" & tblName & "]"
Set rs = CurrentDb.OpenRecordset(strSQL)
With rs
    If .RecordCount = 1 Then VeldGrootte = Nz(.Fields(0).Value, 0)
End With
End Function

Met deze functie kijken we hoeveel tekens er maximaal in een veld voorkomen. Dat gebeurt met een recordset, uiteraard weer gebaseerd op de gekozen tabel. De functie MAX levert hoe dan ook één record met één getal op, en die waarde zetten we in de functie VeldGrootte.

De veldgroottes die we met deze functie uitlezen zetten we in een matrix variabele, zoals je ondertussen van mij gewend bent, en we lopen daarna weer met een lus routine door alle velden heen. In elke gang van de lus roepen we de functie VeldGrootte aan, en het resultaat ervan zetten we in een tekststring. We vermenigvuldigen de waarde VeldGrootte met 150, om de veldlengte om te rekenen naar Twips. Maar die waarde is dus enigszins afhankelijk van het lettertype en de lettergrootte. Ook vergelijken we de veldlengte met de lengte van de veldnaam, om bij een te kleine waarde (wat bij getallen vaak het geval zal zijn)  de veldlengte te berekenen op basis van de lengte van het label.

Als alle velden zijn uitgelezen, hebben we een string met getallen die de kolomwaarden bevatten.

With Me.lstResultaat
    .RowSource = strSQL
    .RowSourceType = "Table/Query"
    'Velden splitsen
    arr = Split(sVelden, ", ")
    For i = LBound(arr) To UBound(arr)
        tmp = arr(i)
        iBreedte = VeldGrootte(arr(i), Me.cboTabel)
        If iBreedte < Len(arr(i)) Then iBreedte = Len(arr(i))
        iBreedte = iBreedte * 150
        If sBreedte <> "" Then sBreedte = sBreedte & ";"
        sBreedte = sBreedte & iBreedte
    Next i
    .ColumnWidths = iBreedte
End With

De laatste truc om de resultaatlijst te verfraaien, is om de breedte van de keuzelijst aan te passen aan de totale waarde. En we moeten natuurlijk ook het aantal zichtbare kolommen in overeenstemming brengen met het aantal geselecteerde velden. De laatste twee aanpassingen zijn gelukkig simpel te maken. We kunnen namelijk een extra variabele maken die alle breedtes optelt. Die optelsom is automatisch de breedte die de keuzelijst moet hebben. Iets vergelijkbaars geldt voor het aantal zichtbare velden, want dat is afhankelijk van het aantal velden in de matrix. De totale code van de keuzelijst lstVelden ziet er derhalve zo uit:

Private Sub lstVelden_Click()
Dim ctl As Control
Dim arr As Variant, itm As Variant
Dim sVelden As String, sBreedte As String, strSQL As String
Dim iBreedte As Double, iTotaal As Double, i As Integer
Dim tmp As Variant
Dim bCheckVeld As Boolean

sVelden = Replace(PrimaryKey(Me.cboTabel.Value), ";", ", ")
tmp = Split(sVelden, ",")
For Each itm In Me.lstVelden.ItemsSelected
    bCheckVeld = False
    If Me.lstVelden.ItemsSelected.Count > 0 Then
        For i = LBound(tmp) To UBound(tmp)
            If tmp(i) = Me.lstVelden.ItemData(itm) Then
                bCheckVeld = True
                Exit For
            End If
        Next i
        If bCheckVeld = False Then
            If sVelden <> "" Then sVelden = sVelden & ", "
            If InStr(1, Me.lstVelden.ItemData(itm), " ") > 0 Then
                sVelden = sVelden & "[" & Me.lstVelden.ItemData(itm) & "]"
            Else
                sVelden = sVelden & Me.lstVelden.ItemData(itm)
            End If
        End If
    Else
        Exit Sub
    End If
Next itm

strSQL = "SELECT " & sVelden & " FROM [" & Me.cboTabel & "]"
With Me.lstResultaat
    .RowSource = strSQL
    .RowSourceType = "Table/Query"
    arr = Split(sVelden, ", ")
    iTotaal = 0
    For i = LBound(arr) To UBound(arr)
        tmp = arr(i)
        iBreedte = VeldGrootte(arr(i), Me.cboTabel)
        If iBreedte < Len(arr(i)) Then iBreedte = Len(arr(i))
        iBreedte = iBreedte * 150
        iTotaal = iTotaal + iBreedte
        If sBreedte <> "" Then sBreedte = sBreedte & ";"
        sBreedte = sBreedte & iBreedte
    Next i
    .ColumnWidths = sBreedte
    .Width = iTotaal
    .ColumnCount = UBound(arr) + 1
End With
End Sub

Opdracht 2:

De kolombreedtes zijn nog niet afhankelijk van het lettertype. Vervang de berekening voor iBreedte door een berekening die rekening houdt met de lettergrootte.

Opdracht 3:

Breid het formulier uit met een optie om of een tabel, of een query of allebei te kunnen kiezen als recordbron. Kijk hiervoor in de tabel MSysObjects om te achterhalen welke waarde een query heeft.

Samenvatting:

We hebben in dit hoofdstuk een formulier gebouwd dat uiterst flexibel resultaten kan laten zien uit een tabel. We gebruiken daarvoor een aantal verschillende technieken om keuzelijsten te vullen. De Resultaatlijst wordt ‘live’ gevuld met de gekozen velden. Dit formulier kun je als basis gebruiken voor vervolgacties, zoals het openen van een formulier met een geselecteerd record, of het sturen van een emailbericht naar een aantal geselecteerde personen uit de resultaatlijst.




Helpmij.nl prijsvraag juli. Met weer een prachtige prijs!

Auteur: Helpmij.nl

Top

Ook in juli is er weer een prachtige prijs te winnen met onze prijsvraag, doe dus (weer) mee!

juli 2013: Garmin Dakota 10 2..jpg

Stuur een e-mail met het juiste antwoord op de onderstaande drie vragen vóór 31-7-2013 naar wedstrijd@helpmij.nl en maak kans op deze prachtige Garmin Dakota 10 GPS! Nooit meer verdwalen in donkere wouden dankzij deze (waterdichte) superprijs! 

Bovendien ontvangt de winnaar een licentie voor Nod32 antivirus software van ESET

De vragen:

1. Waar is het hoofdkantoor van Garmin gevestigd?

2. Hoeveel verenigingsleden heeft Helpmij.nl

3. Werkt deze GPS op losse batterijen of heeft deze een ingebouwde accu

Succes!

De prijzen worden aangeboden door:

De prijswinnaar van onze juniprijsvraag:

Deze prijsvraag bleek toch iets pittiger dan de Wedstrijdcommissie ingeschat had! Problemen ontstonden voor al bij vraag 3: de woonplaats van de voorzitter van Helpmij.nl. Die man schijnt niet te traceren te zijn! Hoewel... een aantal "detectives" dook in telefoongidsen  en vond de weg naar een Brabants dorpje. Stoute schoenen aan en dan gewoon aan de persoon die aan de telefoon komt vragen  "woont hier ook de voorzitter van Helpmij.nl"? Of via email een beleefd verzoek sturen... hoewel de hints in het antwoord dan niet veel verder gingen dan "hier woont een succesvolle paarddanseres" , "hier staat een beroemd paard in brons uitgevoerd in een parkje" of " een huis in dit dorp heet "pyama house". Dat schoot dus niet echt op. Maar goed... er waren een aantal goede inzendingen en daaruit is blind de winnaar getrokken.

De prijswinnaar van de maand juni is Stefan Talen. Hij ontvangt de prachtige Parrot quadrocopter AR.Drone 2.0 met HD camera.  Bovendien ontvangt de winnaar een licentie voor Nod32 antivirus software van ESET

*Bestuur en wedstrijdcommissie zijn uitgesloten van deelname!

*De winnaar van de juliprijsvraag wordt bekend gemaakt in de augustus editie van onze nieuwsbrief.




De nieuwe videokaarten van Nvidia

Auteur: K1pje

Top

Eind mei heeft Nvidia, één van de 2 grote videokaart fabrikanten, de eerste kaarten van een nieuwe serie geïntroduceerd. Zoals gebruikelijk wordt allereerst het nieuwe topmodel voorgesteld, in dit geval de GTX 780. Inmiddels zijn ook de GTX 770 en de GTX 760 geïntroduceerd en dus zal de komst van de wat goedkopere modellen  niet lang uitblijven. In dit artikel worden de drie eerdergenoemde kaarten kort besproken voor wat betreft de eigenschappen en de prestaties van deze nieuwe generatie. 

GTX 780

Allereerst moet opgemerkt worden dat de GTX 780 niet het huidige topmodel van Nvidia is qua prestaties. De GTX Titan van Nvidia heeft momenteel deze titel maar is een beetje een vreemde eend in de bijt. De GTX Titan is in februari geïntroduceerd ten tijde van de GTX 600 serie, gebaseerd op een ander chipontwerp. Deze kaart is momenteel nog steeds de snelste kaart van Nvidia en is daarom ook flink hoger geprijsd. De prijs van de GTX 780 ligt zo rond de 600 euro terwijl de GTX Titan rond de 900 euro geprijsd is. Waarom is dit belangrijk om dit te weten? De GTX 780 is gebaseerd op hetzelfde chipontwerp als de Titan!

juli 2013: geforce-gtx-780-style-7_0..png

De GTX Titan en de GTX 780 zijn beiden gebaseerd op de zogenaamde GK110 Kepler-gpu met vijftien smx-units aan boord. Bij de GTX 780 zijn er echter 3 van deze smx-units of clusters, welke de CUDA cores en texture units aansturen, uitgeschakeld. Hierdoor zijn er dus ook minder CUDA cores bij de GTX 780 aanwezig in vergelijking met de GTX Titan.

Andere verschillen zitten in de hoeveelheid geheugen en de kloksnelheden waarvan een klein overzichtje is gegeven in de tabel onderaan dit artikel. De GTX 780 is dus feitelijk een afgeslankte GTX Titan waarvan de afslanking gedeeltelijk gecompenseerd wordt door de hogere kloksnelheden. De prestaties van de GTX 780 benaderen dan ook die van de GTX Titan in zowel games als andere benchmarks.

Interessanter is het om de videokaart te vergelijken met het topmodel van de grote concurrent: de HD7970 GHz edition van AMD. Het huidige topmodel van AMD delft in elke game en benchmark het onderspit wanneer deze het op moet nemen tegen de GTX 780. AMD heeft nog geen weerwoord wat betreft de prestaties van de huidige Nvidia videokaarten. Dit weerwoord wordt overigens pas eind 2013 verwacht wanneer de HD8000 serie van AMD uit zou moeten komen.

Er moet natuurlijk wel opgemerkt worden dat de HD7970 GHz editional voor minder dan 400 euro te koop is. Deze videokaart is nog steeds in staat om alle games op hoge instellingen en resoluties te spelen. Wanneer het budget dus wat kleiner is, blijft deze kaart nog steeds interessant.

GTX 770 en GTX 760

Behalve het huidige topmodel heeft Nvidia ook nog twee betaalbaardere modellen geïntroduceerd: de GTX 770 en de GTX 760. De prijzen voor deze videokaarten zullen respectievelijk tegen de 400 euro en tegen de 250 euro liggen wat deze kaarten al een stuk betaalbaarder maakt. De vraag is dan ook in hoeverre de prestaties minder zullen zijn dan het huidige topmodel.

Beide videokaarten zijn gebaseerd op een eerdere videochip van Nvidia, namelijk de GK104. Deze videochip heeft Nvidia eerder gebruikt in onder andere het topmodel van de vorige generatie; de GTX 680.

De GTX 770 is vrijwel een directe kopie van de GTX 680 met als enige verschil verhoogde kloksnelheden voor zowel het geheugen als de gpu zelf. Deze snelheidsverhoging zorgt ervoor dat de prestaties hoger liggen dan het vorige topmodel, maar het stroomverbruik is hierdoor tevens toegenomen. Wanneer er wordt vergeleken met de HD7970 GHz edition van AMD ziet men dat de GTX770 in sommige games de AMD kaart op grote afstand zet. Dit terwijl de GTX 770 niet ver achter blijft in de games waar het topmodel van AMD hogere frames per seconde neerzet. Aangezien het prijsverschil tussen de GTX 770 en de HD7970 GHz edition vrij klein is lijkt dit een gewonnen strijd voor Nvidia in deze prijsklasse.

De GTX 760 is sterk gerelateerd aan de GTX 660 Ti welke weer een afgeleide was van de GTX 670. In tegenstelling tot de GTX 660 Ti heeft de GTX 760 wel een 256 bit busbreedte voor het geheugen beschikbaar wat in een hogere geheugenbandbreedte resulteert. Daarentegen zijn er wel minder CUDA cores beschikbaar ten opzichte van de GTX 660 Ti. Om toch meer snelheid aan de GTX 760 mee te kunnen geven dan zijn voorganger heeft Nvidia de klokfrequenties van de gpu verhoogd. Dat de nieuwe kaart wel degelijk sneller is dan zijn voorganger blijkt uit de resultaten van benchmarks en ingame prestaties die tussen de vijf tot vijfentwintig procent hoger liggen.

Als de prestaties vergeleken worden met de iets duurdere tegenhanger van AMD, de HD7950, blijkt dat deze kaarten erg aan elkaar gewaagd zijn. Enkel bij het spelen van games waar de AMD-kaarten voor geoptimaliseerd zijn loont het om daadwerkelijk voor de HD7950 te kiezen. Hiermee zet Nvidia dus een zeer interessante videokaart op de markt die alle huidige games met al het pracht en praal op een resolutie van 1920x1080 pixels zal kunnen draaien.

juli 2013: lineup..png

 

Tot slot

Nvidia heeft een aantal interessante videokaarten geïntroduceerd in de afgelopen maand. Een kort overzichtje van de specificaties van de besproken videokaarten is in de tabel hieronder weergegeven. Twee van deze kaarten zijn directe concurrenten van het topsegment van AMD, zowel qua prestaties als qua prijs. De echte topprestaties van de huidige Nvidia kaarten zijn momenteel buiten bereik van AMD en het is dan ook afwachten wat AMD gaat afleveren aan het einde van dit jaar.

 

GTX Titan

GTX 780

GTX 770

GTX 760

Gpu

CUDA-cores

Baseclock

Boost-clock

Geheugengrootte

Geheugensnelheid

Geheugenbus

TDP

GK110

2688

837MHz

876MHz

6GB GDDR5

6000MHz

384bit

250W

GK110

2304

863MHz

900MHz

3GB GDDR5

6000MHz

384bit

250W

GK104

1536

1046MHz

1085MHz

2GB GDDR5

7010MHz

256bit

230W

GK104

1152

980MHz

1033MHz

2GB GDDR5

6008MHz

256bit

170W




Windows 8.1 tablet

Auteur: Sevo

Top

Windows 8.1 is zojuist gepresenteerd tijdens het Build 2013 evenement. Er werden een aantal nieuwe features en verbeteringen getoond. In dit artikel vind je de verbeteringen ten opzichte van Windows 8 aangaande tablets.

Betere aanpassing van het startscherm

Nu de eerste 8.1-inch tablet gelanceerd is, wordt het tijd om Windows 8 daarop aan te passen. Dit heeft Microsoft gedaan in Windows 8.1 door o.a. het startscherm wat compacter te maken. Zo ziet alles er nu beter uit in "portrait" mode. Steve Ballmer, CEO van Microsoft, vertelde dat het startscherm niet alleen goed werkt op kleine schermen, maar op alle formaten, mede dankzij de verbeterde personalisatie.

Verbeterde Mail app

De mail app is ook flink verbeterd, zo sorteert het programma automatisch het soort mails in verschillende mappen. Op de presentatie verdeelde de applicatie nieuwsbrieven en social media automatisch, je kunt deze mappen tevens gemakkelijk beheren.

Veegbewegingen op het virtuele toetsenbord

Een nieuwe feature binnen Windows Blue is het vernieuwde (virtuele) toetsenbord. Je kunt nu bijvoorbeeld tekst selecteren door over de spatiebalk op het scherm te vegen. Een andere flinke verbetering is het intypen van cijfers, dit was nogal irritant in Windows 8 doordat je een ander schermpje kreeg binnen het toetsenbord. Dus was je het hele qwerty toetsenbord kwijt, dit vertraagt uiteraard het typen. Dit is nu verbeterd, je kunt via het qwerty toetsenbord bij de cijfers door omhoog te vegen bij bepaalde letters.

Meer flexibiliteit

Gebruikers en ontwikkelaars krijgen in de nieuwe versie wat meer vrijheid. Ontwikkelaars kunnen de apps nu beter optimaliseren voor portrait mode en kunnen daarbij het toetsenbord naar eigen voorkeur groter of kleiner maken. Ook is het multitasken voor gebruikers wat aantrekkelijker geworden. Zo opent een app niet meer in een nieuw venster, maar opent deze nu netjes naast openstaande programma's.

Beschikbaarheid

De previewversie van Windows 8.1 is niet beschikbaar voor Nederlandstalige gebruikers. Het blijkt zelfs moeilijk te zijn om hem op een Engelstalig systeem te installeren. Maar in principe is de previewversie beschikbaar via de Windows Store en via de website van Microsoft voor een beperkt aantal talen.




Windows 8.1 (2)

Auteur: CorVerm

Top

De wijzigingen in Windows 8.1 maakt het werken op de desk- of laptop (iets) prettiger dan met Windows 8. Het goede nieuws is dat het startblad te omzeilen is! Het systeem is zo in te stellen dat het met het bureaublad opstart. We zeggen het nog maar een keer, met Windows 8 kun je het best werken als je over een aanraakscherm of een tablet beschikt. Windows 8.1 brengt een beetje de realiteit terug van het werken met een desk- of laptop. Ondanks dat dit een gratis update is, moet je er niet van uitgaan dat dit een kleine correctie is van Windows 8 in zijn huidige vorm. Blue, zoals de update ook bekend staat, is een aanzienlijke koerswijziging die verder gaat dan het oplossen van de grootste problemen die de gemiddelde consument met Windows 8 heeft.

Het ontbreken van de startknop in Windows 8 en daarmee het startmenu was wel een de grootste ergernissen. De startknop komt dus terug in Windows 8.1.

Laten we maar met de deur in huis vallen; wie hoopt op de terugkeer van het startmenu zoals we dat uit Windows 7 kennen, zal teleurgesteld zijn.

Wat zit er dan wel in het vat? De startknop komt weliswaar terug, maar de werking is anders. Een klik op de startknop brengt de gebruiker naar het hoofdscherm van de nieuwe Modern UI (startblad). Gelukkig gaat Microsoft de mogelijkheid bieden om ook met het bureaublad op te starten. Gebruikers kunnen ervoor kiezen om rechtstreeks naar het bureaublad te booten door dit in te stellen in het eigenschappenvenster van de taakbalk. In hetzelfde venster is in te stellen dat de “hot corners” niet meer tevoorschijn komen als je de muis in een van de bovenhoeken plaatst. Op naar een “normale” desktop dus.

Ook in te stellen is dat in Windows 8.1 de startknop niet verwijst naar de tegelomgeving, maar naar een overzicht van alle applicaties op de computer. Dus niet het tegeltjes-scherm maar een overzicht van alle apps die op het systeem staan. Bovendien valt er te kiezen welke je als eerste wilt zien, desktop-applicaties of Windows apps. In die zin zal de werking van de nieuwe startknop dezelfde zijn als onder de oude. Alleen, nu krijg je in plaats van een boomstructuur een heel scherm met apps voorgeschoteld. Hoewel de tegeltjes kleiner van omvang (en instelbaar) zullen zijn is de overzichtelijkheid toch een stuk minder dan die van de boomstructuur.

Samenvattend kunnen we zeggen dat het teveel eer is om dit een startknop te noemen. De nieuwe startknop is een multitask-schakelaar om uit de app terug te gaan naar het startscherm.

Eén onderdeel dat we kennen van de goede, oude startknop uit voorgaande Windows-versies is wel terug: de optie om af te sluiten, opnieuw te starten of je apparaat op stand-by te zetten.

Een andere verbetering is dat aan het startscherm een 'Alle apps'-knop is toegevoegd voor systemen die worden bestuurd met een muis.

De conclusie is dat we weliswaar niet van het oude vertrouwde startmenu kunnen gaan genieten, maar een stukje verbetering voor de desk- en laptop gebruiker zit er wel in.




E-mailen onder Windows 8

Auteur: CorVerm

Top

Velen vragen zich af hoe onder Windows 8 een pop e-mail account kan worden ingesteld. Die vraag moet altijd teleurstellend beantwoord worden want... dat kan niet! Althans niet met de apps die Windows 8 aan boord heeft. Windows 8 is immers gemaakt om in de Cloud te werken en in dat plaatje past nu eenmaal geen gewoon e-mail account zoals we dat gewend zijn. Nu kan de oplossing voor dit probleem simpel zijn: webmail gebruiken. Iedere provider biedt die dienst gratis en voor niks aan. Tegenwoordig zijn die webmail-diensten zodanig ingericht dat er op een fatsoenlijke wijze mee te werken valt.

Wil je geen gebruik van webmail-diensten maken dan zit er niets anders op dan een e-mailprogramma te downloaden en te installeren. Gelukkig is er keus uit verschillende programma’s.

 juli 2013: live mail..jpg

Te beginnen met Windows Live mail (WLM), een onderdeel van Windows Essentials. Een eenvoudig programma waarin je al je pop accounts in kunt stellen. Ook Hot- en Gmail accounts zijn welkom in WLM. Op de site waar de link naar verwijst lees je meer over de andere mogelijkheden die WLM in zich heeft.

juli 2013: outlook..jpg

Beschik je over een Microsoft Office CD of DVD dan kun je overwegen om Outlook te installeren. Hoewel Outlook meer is toegesneden op professioneel gebruik kun je met dit programma natuurlijk prima uit de voeten om je e-mails te lezen en te beheren.

juli 2013: thunderbird..jpg

Het openbronprogramma Thunderbird (van Mozilla) is ook een goed alternatief. Ook in dit programma kun je, behalve pop accounts, Gmail en andere web gebaseerde accounts instellen. Thunderbird is een gratis e-mailtoepassing die men eenvoudig kan instellen en aanpassen.

Belangrijk is dat genoemde programma’s over een goed spamfilter beschikken.

WLM en Microsoft Office Outlook beschikken over een agenda, altijd handig om een afspraak in te noteren en een herinnerings tijd en/of datum in te stellen. Afhankelijk van het tijdstip waarop je de herinnering wilt ontvangen krijg je van WLM een mailtje in je postvak-in en van Outlook een melding in een venster.

En de agenda voor Thunderbird dan? Die zul je als add-on moeten downloaden. Lightning is de naam en is eveneens van Mozilla. Op deze site vind je uitleg over het gebruik van Lightning.

Outlook en Outlook?

juli 2013: outlook.com..jpg

Sinds het opdoeken van Hotmail is de gratis online e-mailservice van Microsoft …: Outlook. Nader aangeduid als Outlook.com.

Nogal verwarrend, want het e-mailprogramma dat onderdeel uitmaakt van het Microsoft Office pakket draagt (al veel langer) dezelfde naam.

“t Is maar dat je het weet.




Werken met paint.net

Auteur: Fab300

Top

Paint.net is een gratis programma voor het bewerken van plaatjes. Je kunt bijvoorbeeld een foto van een appel in een foto van een schotel monteren. Maar als de kleuren van de schotel je niet aanstaan, kunnen die ook bewerkt worden. Kortom: zeker voor een freeware programma is dit een goede fotobewerker.

Om ons doel te bereiken hebben we dus een plaatje van een appel en een plaatje van een schotel nodig.

 juli 2013: afb1..jpg

 juli 2013: afb2..jpg

Om de appel op de schotel te zetten selecteren we de appel met de Magic Wand. Klik op de knop Magic Wand en klik dan op de appel. Waarschijnlijk zal je dan slechts een deel van de, of juist veel meer dan alleen de appel selecteren. Daarom moet je even spelen met de Tolerance balk, die tevoorschijn komt als je de afbeelding selecteert. Standaard staat die op 50%. Ik heb deze op 60% gezet, waarmee ik alleen (en een klein stuk eronder) de appel selecteerde.

juli 2013: appel..jpg
Geselecteerde appel

Het is niet erg dat er een stuk onder zit, maar dit moeten we wel weghalen. Dit doen we door de appel te kopiëren en een nieuw blad te maken (Ctrl + N) en vervolgens de appel erin te plakken. De afmetingen van het nieuwe blad zijn automatisch de afmetingen van de afbeelding op het klembord, dus daar hoeven we niet naar te kijken. Je kunt ook Ctrl + Alt + V indrukken: hiermee plakt je de appel meteen in een nieuw blad. Nu moeten we de schaduw eronder weghalen. Dit doen we op dezelfde manier, maar dan klikken we niet op de appel, maar op de schaduw, vervolgens drukken we op Delete.

Nu is er al een stuk schaduw weg. Herhaal dit met de overige schaduw totdat je alleen de appel nog over hebt. Een klein beetje schaduw overhouden is ook niet erg, want dat hoort op een bord.

juli 2013: afb5..jpg

Selecteer nu met de Magic Wand de appel weer, en kopieer die. Ga dan naar de schotel, en plak de appel erin. De kans bestaat dat er een scherm (rechts afgebeeld) tevoorschijn komt. We willen de appel in de schotel plakken, dus kiezen we Keep canvas size. Dan staat er een gigantische appel in het scherm. Maak die wat kleiner. Zo kunnen we de appel op de schotel “leggen”. Verplaats de appel totdat hij in het midden van de schotel (of een andere plek) ligt. Als het goed is, lijkt het alsof de appel echt op de schotel ligt.

juli 2013: afb7..jpg

juli 2013: afb8..jpg

juli 2013: afb9..jpg

Leuk. Maar stel nou dat we een (niet-realistische) andere kleur willen! We willen natuurlijk alleen de appel een andere kleur geven. Druk dan voordat je de appel op de schotel plakt op Ctrl + Shift + V om de schotel in een nieuwe laag in de afbeelding te plakken. Hierbij is het handig om op F7 te drukken: hiermee verschijnt er een schermpje met de op dat moment aanwezige layers. Hierboven zie je maar één layer; de appel is immers gewoon in de schotel geplakt. Maar nu zetten we de appel in een nieuwe layer in de afbeelding (zie plaatje rechts).
Selecteer nu die layer, en klik op Adjustments. Nu opent er een dialoogvenster. Klik dan op Hue/Saturation. Je kan hiermee andere kleuren en helderheid instellen. Ik heb besloten mijn appel groen te maken. Ik heb dan deze opties gebruikt:

juli 2013: afb11..jpg

 

juli 2013: afb10..jpg

Nu is mijn appel groen. Perfectionisten zouden hier uren mee in de weer kunnen, maar ik heb vrij snel met mijn balkjes geschoven totdat ik tevreden was over het resultaat.

juli 2013: afb12..jpg 

Dit was slechts een klein deel van alle mogelijkheden in Paint.NET; er zijn bijvoorbeeld tientallen effecten die stuk voor stuk een ander resultaat leveren. Daarom is het leuk om zelf even het programma te gebruiken en de mogelijkheden van Paint.NET te ontdekken!




Postvak-in

Auteur: Redactie

Top

In onze vaste rubriek beantwoorden we vragen aan de hand van onze nieuwsbrief en plaatsen we reacties van onze lezers.


Vragen van lezers naar aanleiding van de vorige nieuwsbrief

Er zijn bij de redactie geen vragen binnengekomen die voor beantwoording in aanmerking komen.