postcode invullen en automatisch de gemeente krijgen

Status
Niet open voor verdere reacties.

ghardeman

Nieuwe gebruiker
Lid geworden
6 mei 2011
Berichten
2
Beste,

Ik heb een tabel met alle postcodes en alle gemeenten. Ik heb nu een nieuwe tabel gemaakt waarbij postcode en gemeente ingegeven moeten worden. Hoe kan ik, als ik in een formulier bij postcode een getal ingeef een link naar de andere tabel ingeven zodat in het veld gemeente automatisch de bijhorende gemmente komt. Tevens zijn er meerdere mogelijkheden bij eenzelfde postcode. Postcode 9700 kan zowel Oudenaarde als Eine als Melden enz zijn. Er zou dus eigenlijk bij ingave van 9700 ergens een lijstje moeten komen waarbij de juiste gemeente aangeklikt of zo moet worden.
In bijlage de file. Je ziet de tabel postcode. Verder zie je tblpatienten. Daarbij zou dus het veld gemeente automatisch ingevuld moeten worden bij ingave van de postcode. Het bestand is nog niet afgewerkt.
Het bestand is te groot, je kan het hier downloaden: http://office.webforums.nl/viewtopic.php?p=227184#227184

Iemand een idee,

Bedankt,

Gregory
 
Ook ik krijg je database niet geopend.... ik hoop voor je dat je 'm zelf nog wel kunt gebruiken; ik vermoed dat je een paar exotische bibliotheken hebt geladen die standaard niet in Access zitten. Heb je die niet nodig, haal ze dan eerst weg voordat je de db opslaat.
Ik heb wel code voor je waarmee je een postcode kunt opzoeken. Die is gebaseerd op een nog wel te vinden voorbeeld db (Postcode80NL).
De eerste code gebruik je om te controleren of de ingetypte postcode wel correct is.

Code:
Private Sub Postcode_AfterUpdate()
If DCount("*", "Postcodes", "Postcode = '" & Me.Postcode & "'") = 0 Then
  MsgBox "Postcode bestaat niet", vbExclamation
End If
End Sub

Vervolgens wordt op basis van huisnummer en postcode het adres opgezocht en op het formulier ingevuld.

Code:
Private Sub Nummer_AfterUpdate()
Dim Adres As Recordset
Dim sqlZ As String
Dim srt1 As Byte
Dim srt2 As Byte

If Me![Nummer] <> "" Then
  If Me![Nummer] Mod 2 = 0 Then
    srt1 = 1
    srt2 = 1
  Else
    srt1 = 0
    srt2 = 0
  End If
Else
  Me![Nummer] = 0
  srt1 = 2
  srt2 = 3
End If

sqlZ = "SELECT Straat, Plaats, Gemeente, Provincie FROM (Plaats INNER JOIN Straat ON Plaats.PlaatsID = Straat.PlaatsID) " & _
       "INNER JOIN Postcodes ON Straat.StraatID = Postcodes.StraatID " & _
       "WHERE (Postcode = '" & Me![Postcode] & "' AND " & _
               "Van <=" & Me![Nummer] & " and " & _
               "Tem >=" & Me![Nummer] & " and " & _
               "(Soort = " & srt1 & " OR Soort = " & srt2 & "))"

If Me![Nummer] = 0 Then
  Me![Nummer] = ""
End If

Set Adres = CurrentDb.OpenRecordset(sqlZ)

If Adres.BOF Then
    MsgBox "Postcode/nummer niet gevonden", vbExclamation
Else
    Me.Straat = Adres!Straat
''    Me.Plaats = Adres!Plaats & "  (Gemeente " & Adres!Gemeente & " (" & Adres!Provincie & "))"
    Me.Plaats = Adres!Plaats
    Me.Adres = Me.Straat & " " & Me.Nummer & vbLf & Me.Postcode & " " & Adres!Plaats
End If

Adres.Close

If Nz(Me.Adres, "") <> "" Then
    Me.Adres.Visible = True
    Me.Adres.SetFocus
    DoCmd.RunCommand acCmdCopy
    Me.KopieAdres.SetFocus
    Me.Adres.Visible = False
End If
    Me.txtAdres = Me.Straat & " " & Me.Nummer
    Me.txtPostcode = Me.Postcode
    Me.cboWoonplaats = Me.Plaats

End Sub

Een hele lap code, maar die heb je ook wel nodig om het adres op te zoeken ;) Aanpassen naar behoefte dus!
 
Bedankt voor je reactie. Ik begrijp er eigenlijk niet veel van. Ik merk ook dat mijn database een eigenaardige extensie heeft, geen idee hoe dit komt. Ik maak de DB enkel en alleen via templates, van codes ingeven ken ik niets. Ik zal eens zoekn in access waar ik je code kan invoegen en hoe de db erop reageert!

Bedankt,

Gregory
 
De extensie is die van Access 2007/2010. Als je niet met een van die versies werkt, is er iets vreemds aan de hand. De code komt van een voorbeeldformulier. Eventueel kan ik het formulier wel posten, zonder tabellen, want de db is zo'n 40 mb groot, en dat lukt echt niet met posten...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan