Vraag & Antwoord

Programmeren

[Access] Filteren van dubbele gegevens

7 antwoorden
  • Hey! We zijn weer vastgelopen.. We hebben een zoek-form en deze werk nu ook :). Met dit zoek-form kunnen we verschillende keywords selecteren en daar opzoeken. Het resultaat wordt dan weer gegeven in het resultaat-form. Bovenaan het resultaat-form staat het IDnumber en eronder de gerelateerde keywords. Als het resultaat-form werkt laten we de keywords weg het is nu alleen ter controle of die het juiste antwoord weergeeft. Het resultaat-form geeft het goede resultaat, alleen hij geeft sommige IDnumbers vaker weer. Dit klopt ook, omdat sommige IDnumbers meerdere keywords hebben. Hoe kunnen we de IDnumbers filteren zodat hij maar 1 keer het IDnumber weergeeft. Wij zaten eraan te denken om een filter toe te passen met een select distinct. Alleen we zouden niet weten waar we deze neer zouden moeten zetten en of we de juiste expressie gebruiken. TNX
  • Als je nu van die IDnumber een primarey key/unique maakt zodat elke IDnumber ook maar een keer voorkomt dan heb je dit gedonder niet meer. Maar als je aan DISTINCT zit te denken, waarom probeer je het dan niet gewoon niet uit? Want dit alles klinkt behoorlijk basis SQL, dat in elk SQL-boek wel terug vat te vinden. Kijk ook eens naar GROUP BY bijvoorbeeld.
  • We zitten nog steeds met het probleem dat we niet weten hoe we de IDnumber moeten filter. Als het goed is hebben we voor het IDnumber al een primarey key aangemaakt. Dit hebben we in de tabel gedaan. We willen wel een distinct gebruiken, alleen alles wat we invullen in de codebuilder doet hij niet echt iets mee. En we weten ook niet precies waar we hem neer moeten zetten, we denken before_update. We hebben ook al wat voorbeelden van de help functie gebruikt. Alleen als je Select IDnumber invult, dan geeft hij de volgende error: Expected: Case. Dan vullen we wel case achter select. Maar waar zet je dan de distinct neer? Zodat hij de IDnumber filtert. TNX
  • Hoe kan een PK nu meerdere keren voorkomen in een tabel? DISTINCT is een SQL-statement dat Access zou moeten herkennen. Nou ben ik ook niet zo verzot op Access als DB en gebruik hem daarom liever niet Maar ik weet zeker SELECT DISTINCT tabel.rij gewoon zou moeten doen.
  • Ik heb het idee dat er nu een aantal zaken door elkaar gehaald worden. Uit de posts van ABBandung maak ik op dat er met VBA gewerkt wordt, terwijl Joris het over SQL queries heeft. @ABBandung: kun je misschien precies uitleggen waar het zoekform de gegevens vandaan haalt? Voor zover ik het kan zien, komen deze uit verschillende tabellen, klopt dat? Want als dat niet zo is, heeft Joris gelijk, en is IDNumber geen primaire sleutel. Verder, het voorbeeld dat je aanhaalt is volgens mij VBA code, gezien de foutmelding die je meldt. In VBA heb je inderdaad een SELECT CASE-statement. En dat is wat anders dan een SELECT-query. Je kan niet zomaar een query uitvoeren in een VBA-procedure. Mijn vermoeden is dat je voor wat jij wilt het beste een subformulier kan gebruiken, waarbij je dan het IDNumber als zoeksleutel kan gebruiken. Maar goed, ik denk nogmaals dat het het beste is als je even duidelijk uitlegt hoe je zoekformulier nu werkt, en even kort vertelt waar de gegevens vandaan (moeten) komen.
  • in vb.net doe ik het zo: [code:1:155c5b6541]strSQL = "Select * From boeken Where schrijver Like '%" & txtitem.Text & "%'" [/code:1:155c5b6541], tis wel mee een OLEDB connectie...
  • Ok, we hebben meerdere tabellen aangemaakt, zoals Personaldata, Keywordsprojecten enz. In elke tabel hebben we een primaire sleutel gemaakt. Zodat uiteindelijk alles gekoppeld wordt door het IDnumber. Nu hebben we een zoekform gemaakt, waarmee we met comboboxen keyworden uit verschillende tabellen kunnen selecteren. Er staan 4 comboboxen, zodat je in 4 tabellen kunt zoeken. We hebben het volgende in VBA gezet. [code:1:54644e6c78] Private Sub cmdzoek_Click() On Error GoTo Err_cmdzoek_Click Dim stDocName As String Dim stLinkCriteria As String Dim stLinkCriteria1 As String Dim stLinkCriteria2 As String Dim stLinkCriteria3 As String stDocName = "frmanswerall" stLinkCriteria = "[Discipline]=" & "'" & Me![cbodiscipline] & "'" stLinkCriteria1 = "[Keywords area]=" & "'" & Me![cbokeywordsarea] & "'" stLinkCriteria2 = "[Keywords pub]=" & "'" & Me![Cbokeywordspub] & "'" stLinkCriteria3 = "[Keywords]=" & "'" & Me![cbokeywordsprojecten] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria & " Or " & stLinkCriteria1 & " Or " & stLinkCriteria2 & " Or " & stLinkCriteria3 Exit_cmdzoek_Click: Exit Sub Err_cmdzoek_Click: MsgBox Err.Description Resume Exit_cmdzoek_Click End Sub [/code:1:54644e6c78] Nu geeft hij in het resultaatform de gevonden IDnumbers weer die aan de voorwaardes voldoen. Alleen als bijvoorbeeld IDnumber 1, 2 keer aan deze voorwaarde voldoet. Laat het resultaatform hem ook 2 keer zien. Dit zouden we dus graag niet willen hebben. Dus er een soort filter erop zetten.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.