Dubbel waarden markeren met kleur

Status
Niet open voor verdere reacties.

Peter0367

Gebruiker
Lid geworden
29 jan 2018
Berichten
8
Hallo,

Ik probeer in een rapport(Access 2010) dubbele waarden(telefoonnummers) een voorwaardelijke opmaak te geven maar zie hiertoe geen mogelijkheid.
Ook in een formulier krijg ik dit niet voor elkaar. Is hiervoor een VBA code waarmee dit wel te realiseren is? Wie weet een oplossing?

Peter
 
tussenformulier met dubbele waarden.

Is het niet praktischer gewoon een formulier te maken met daarin enkel de dubbele waarden en dat dan als pop-up laten weergeven als een soort van waarschuwingsscherm vooraleer het eigenlijke rapport te openen? Dat geeft de gebruiker de kans om de rapportprocedure te onderbreken en die dubbele waarden aan te passen vooraleer de rapportprocedure verder te zetten. Wat heb je aan een rapport dat je dan toch weer moet sluiten, onthouden wat er dubbel was en dat dan weer in een ander te openen formulier ergens gaan opzoeken en aanpassen en van vooraf weer de rapportprocedure beginnen.
 
Het is belangrijk om het totaaloverzicht te houden waarbij de dubbele telefoonnummers rood moeten kleuren. Ik wil de dubbele waarden namelijk ook niet verwijderen maar enkel kennis hebben van het feit dat het telefoonnummer ook door iemand anders wordt gebruikt. Het is onderdeel van een sociogram.
 
Nergens voor nodig om hiervoor VBA in de strijd te gooien; in je query een DCOUNT gebruiken die het telefoonnummer telt en dat extra veld gebruiken in de voorwaardelijke opmaak formule.
 
Waarschijnlijk is het dus gewoon je bedoeling dat als er ergens een telefoonnummer dubbel gebruikt wordt om, bij aanpassen van het nummer bv, dat onmiddellijk overal door te voeren? Daar heb je toch de referentiële integriteit relaties voor en hoef je niets anders te voorzien?
 
Nee, de registratie van dubbele telefoonnummers is helemaal correct. Het is een sociogram waarbij nummers door meerdere personen gebeld kan worden. Echter in de grote brij met telefoonnummers maar in een andere tabel ook met rekeningnummers zijn de de dubbelgebruikte nummers nauwelijks te herkennen. Ik hoopte met kleuren dit probleem op te lossen. Begrijp je?
 
Ik ken uw situatie niet en zoals je het schetst zal het dus wel een reden hebben. Als er bv een callcenter zoiets zou doen zou je niet zoals ik soms tot driemaal op dezelfde dag door dezelfde firma opgebeld worden. Ik zou er trouwens dan de andere gebruiker die het nummer ook heeft bijzetten zodat ze kunnen afspreken wie er nu wel of niet belt.
 
Nog even afgezien van de bedoeling: lukt het nu met DCOUNT of niet? Dat vind ik een veel interessantere vraag dan waarom je het wilt.
 
Ik heb de functie met DCount niet voor elkaar gekregen. Wat ik nu gebruik is in een query in het veld 'telefoonnummer'de volgende code: In (SELECT [Telefoonnummer] FROM [tblTelefoonnummer] As Tmp GROUP BY [Telefoonnummer] HAVING Count(*)>1 )
Hij telt nu alle dubbele nummers >1. Liever had ik een extra veld die gewoon het aantal dubbele nummers telt.
 
En dat kan. Van de subquery kun je ook een veld maken.
 
De DCount is heel traag, als functie, dus als je een grote tabel hebt zou ik die optie sowieso niet gebruiken. Een query kun je als veld toepassen als de uitkomst van de query één waarde oplevert. Een gewone Select werkt dus niet, omdat in een recordset vaak meerdere records zitten. Een Count daarentegen wil wél goed gaan omdat Count één waarde teruggeeft per record. Hier een voorbeeld dat ik zelf gebruik.
PHP:
Dubbel dossier: (select count(DossierID) from tDossiers where afsluitdatum_d Is Null And persoon_ID_d = persoonID)
Ik wil dus in een query met persoonsgegevens zien welke personen meer dan één geopend dossier hebben. Daarvoor kijk ik naar het veld [Afsluitdatum] (moet leeg zijn) en ik vergelijk het veld [PersoonID] uit de gekozen tabel met het overeenkomende koppelveld uit Dossiers.
Die matching moet jij dan maken op telefoonnummer. Je kunt deze truc ook binnen dezelfde tabel gebruiken, als je een kopie van de tabel gebruik in de query. Iets als:
PHP:
Dubbel dossier: (select count(tmp.DossierID) from tDossiers As tmp where tmp.afsluitdatum_d Is Null And tmp.persoon_ID_d = persoonID)
In dit geval levert de query hetzelfde resultaat op als de eerdere variant, maar dit is ook alleen bedoeld om het gebruik van een tweede kopietabel te demonstreren.
 
Hallo Octafish, ik ben er uit. Ik heb een nieuwe query gemaakt waarin de dubbele waarden worden opgeteld. Deze query heb ik gelinkt aan de query telefoonnummers. De subquery zoals je voorstelde. Nu toont hij in een extra veld het aantal keer een nummer voor komt in de database. Deze waarde kun je wel weer opmaken met voorwaardelijke opmaak. Dank voor je hulp en meedenken!
 
Ik heb een nieuwe query gemaakt waarin de dubbele waarden worden opgeteld. Deze query heb ik gelinkt aan de query telefoonnummers. De subquery zoals je voorstelde.
Niet helemaal dezelfde oplossing, want mijn query doet alles in één query. Maar dat maakt uiteraard niet uit, met twee queries kan het ook :).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan