Postcode bereik dynamisch filteren

Status
Niet open voor verdere reacties.

dirkdrent

Gebruiker
Lid geworden
3 jan 2006
Berichten
382
Ik weet nu hoe ik dynamisch gegevens kan filteren op een formulier.
Wat ik nu graag zou willen is records zoeken op basis van postcode bereik (range).

Ik heb (zie het de voorbeeld database in de bijlage) vanuit het hoofdformulier (gegevens) onderstaande stappen uitgewerkt….

1) een knop (zoeken postcode gebied) aangemaakt op het hoofdformulier (gegevens) en wanneer je klikt op deze knop dan

2) wordt er een subformulier (sbfPostcodeBereikInvoeren) geopend waarbij je het postcode bereik kunt invoeren) hierop staan

- 2 tekstvelden [van postcode] en [tot postcode] en een

- knop (Ok) die ervoor zorgt dat het subformulier sluit en vervolgens het resultaat (records) van de criteria weergeeft op het oorspronkelijke formulier (gegevens)

Nu heb ik de vormgeving gemaakt en de knop (zoeken postcode gebied) voor het openen van het subformulier werkt en de knop (Ok) op subformulier voor het sluiten van het dit formulier werkt ook.

Wat werkt niet:
het filteren op de criteria gezien ik de vba code niet weet die ik moet gaan gebruiken… Zou iemand eens naar mijn voorbeeld database willen kijken….


ps. Stel dat bovenstaand daadwerkelijk mogelijk is, kan ik dan op basis van het resultaat van het postcode bereik nog steeds de filters gebruiken zoals land, plaats en categorie op basis van dit resultaat. In dit geval wordt de filter volgorde dan postcode criteria, land, plaats en als laatste categorie.
 

Bijlagen

Ik zie niet zo heel veel actie in het formulier waarmee je de postcodes invult. Ik neem aan dat je daarmee je formulier gelijkt ook wilt filteren? Elk land heeft zijn eigen postcode notatie; als je een filtering hebt gemaakt dan zit je vermoed ik dus gelijk al aan een bepaald land vast. Wat wil je dan nog op landen kunnen filteren?
 
Het klopt, op het formulier waar je de postcode invult zit nu nog geen actie omdat ik niet weet hoe ik dit voor elkaar krijg.

99% van de bedrijven zijn in Nederland gevestigd, we kunnen uitgaan van de eerste 4 tekens (in het geval dus in NL de eerste 4 getallen) bij het selecteren van het postcode bereik. We komen nu niet in de problemen als de postcode bijvoorbeeld in de tabel geimporteerd is als 9900AB of 9900 AB gezien gezien er alleen gekeken wordt naar de eerste 4 tekens.

Nieuwe situatie: Postcodebereik selecteren op basis van postcode waarbij de zoekcriteria alleen de eerste 4 tekens (getallen) betreft dus bijvoorbeeld:

van postcode: 9700 tot postcode 9900

ps. ter informatie doordat ik mijn huidige database aan het updaten ben, gebruik ik momenteel het veld [land] als bron. Dus in het veld staat in mijn daadwerkelijke database geen landen maar de bron waar het adres vandaan komt. Het adres kan zijn verkregen op een evenement/beurs, uit de goudengids of rechtstreeks bij de Kvk. Het is nu even wat verwarrend maar vergeet het idee dat het een land betreft, het gaat nu even om de verwerking van de gegevens.

Ik heb voor het gemak de records van het veld [land] aangepast in het nieuwe voorbeeld Postcode bereik v2 waarbij ik ook op het hoofdformulier (gegevens) de label even heb veranderd naar Bron.
Hoop dat u hier wat mee kunt....?

Bekijk bijlage Postcode bereik v2.zip
 
Laatst bewerkt door een moderator:
Ik had al een voorbeeldje aangepast, dus hier je oude (maar werkende ;) ) versie...
 

Bijlagen

Laatst bewerkt:
Ik heb het formulier en de knoppen gekopieerd naar mijn eigen db maar krijg een leeg formulier te zien... Denk dat ik iets fout doe, wat mij opvalt in het voorbeelddatabase dat de subformulier niet verwijst naar een formulier waar hij de gegevens neer moet zetten zou dit er iets te maken kunnen hebben?
 
Ik zal de code die ik heb gebruikt er even bij halen:

Code:
    stDocName = "sbfPostcodeBereikInvoeren"
    DoCmd.OpenForm stDocName, , , , , acDialog
Met de bovenste twee regels wordt het filterformulier sbfPostcodeBereikInvoeren geopend. Dit formulier wordt geopend in de modus adDialog, wat inhoudt dat de code stopt als dit formulier is geopend; je moet eerst het formulier sluiten voordat de rest van de code wordt uitgevoerd. Oftwel: eerst twee postcodes invoeren! Deze postcodes worden toegewezen aan twee Algemene variabelen, die zijn gedeclareerd in een aparte module (niet erg origineel Module1 geheten).
Code:
Option Compare Database
Public PostcodeStart As String
Public PostcodeEind As String
Vervolgens gaat de code verder met het maken van het filter, met de waarden uit de algemene variabelen.
Code:
    sFilter = "[Postcode] >= '" & PostcodeStart & "' AND [Postcode] <='" & PostcodeEind & "'"
    Me.Form.Filter = sFilter
    Me.Form.FilterOn = True
Ik vermoed dat je wel het formulier etc. hebt overgenomen, maar de public variabelen niet hebt gezien!
 
Moet ik de code

Option Compare Database
Public PostcodeStart As String
Public PostcodeEind As String

1) Dan plaatsen in vb onder modules bij module 1 plaatsen?
2) Of moet ik deze plaatsen onder de knop ok van sbfPostcodeBereikInvoeren?

Ben er al achter gekomen ik moest de code plaatsen onder situatie 1 en dan werkt het perfect.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan