Hi
After finding r.Harrison amazing postcode lookup example in the Sample databases section i imported the frm into my db. On my frm_NewClient added a button to open the postcode lookup frm. I am now stuck with the code for splitting up the address into my fields and adding them to my frm_NewClient
Could anybody offer some code examples that I could add to the listBox OnClick event
I think the code would have to cover
1. Select the required address
2. Copy it
3. Paste/Update my frm_NewClient fields HouseName, HouseNo, Street, TownCity, County, PostCode
4. Close the postcode lookup frm
Thanking you in advance for your help in this matter
Stewart
r.Harrison Code
Option Compare Database
'Requires reference to WinHTTP.dll This can be found in 'C:\Windows\System32\'
Private Sub Text0_AfterUpdate()
Me.List2.RowSource = ""
Dim Pcode, sStr As String
'First up, Format the postcode
Pcode = UCase(Replace(Text0, " ", ""))
Select Case Len(Pcode)
Case 5
Pcode = Mid(Pcode, 1, 2) & " " & Mid(Pcode, 3, 3)
Case 6
Pcode = Mid(Pcode, 1, 3) & " " & Mid(Pcode, 4, 3)
Case 7
Pcode = Mid(Pcode, 1, 4) & " " & Mid(Pcode, 5, 3)
End Select
'Now create the search string
'Had to delete as u.r.l used and this only my 4th post
sStr = "Had to delete as u.r.l used and this only my 4th post
For a = 1 To Len(Pcode)
If IsNumeric(Mid(Pcode, a, 1)) Then
sStr = sStr & Mid(Pcode, 1, a - 1) & "/"
a = Len(Pcode)
End If
Next a
sStr = sStr & Mid(Replace(Pcode, " ", "-"), 1, InStr(Pcode, " ") + 1) & "/"
sStr = sStr & Replace(Pcode, " ", "-") & "/"
'Now I create a WinHTTP request to get the information from the server
Dim winReq As WinHttpRequest
Dim HTM, Address As Variant
Dim Add1, Add2, Add3, Add4 As String
Dim sCount As Integer
Set winReq = New WinHttpRequest
With winReq
.Open "GET", sStr, False
.Send
HTM = Split(Replace(.ResponseText, """", "'"), "<")
If .Status <> 200 Then
MsgBox ("Address not found")
Exit Sub
End If
End With
'Now I have the entire web page including tags just without the '<' at the beginning of each line
'Split this down to find the address lines
For Each i In HTM
If InStr(i, "td class='address'>") > 0 Then
'You can the assign the address to a listbox as below
Me.List2.AddItem (Replace(i, "td class='address'>", ""))
'Or you can split the address in to variables
Address = Split((Replace(i, "td class='address'>", "")), ",")
sCount = 0
For Each j In Address
sCount = sCount + 1
Next
Select Case sCount
Case 3
Add1 = Address(0)
Add4 = Address(1)
Case 4
Add1 = Address(0)
Add3 = Address(1)
Add4 = Address(2)
Case 5
Add1 = Address(0)
Add2 = Address(1)
Add3 = Address(2)
Add4 = Address(3)
Case 6
Add1 = Address(0) & " " & Address(1)
Add2 = Address(2)
Add3 = Address(3)
Add4 = Address(4)
End Select
'Put code here to assign these variables to anything you like
End If
Next
End Sub
After finding r.Harrison amazing postcode lookup example in the Sample databases section i imported the frm into my db. On my frm_NewClient added a button to open the postcode lookup frm. I am now stuck with the code for splitting up the address into my fields and adding them to my frm_NewClient
Could anybody offer some code examples that I could add to the listBox OnClick event
I think the code would have to cover
1. Select the required address
2. Copy it
3. Paste/Update my frm_NewClient fields HouseName, HouseNo, Street, TownCity, County, PostCode
4. Close the postcode lookup frm
Thanking you in advance for your help in this matter
Stewart
r.Harrison Code
Option Compare Database
'Requires reference to WinHTTP.dll This can be found in 'C:\Windows\System32\'
Private Sub Text0_AfterUpdate()
Me.List2.RowSource = ""
Dim Pcode, sStr As String
'First up, Format the postcode
Pcode = UCase(Replace(Text0, " ", ""))
Select Case Len(Pcode)
Case 5
Pcode = Mid(Pcode, 1, 2) & " " & Mid(Pcode, 3, 3)
Case 6
Pcode = Mid(Pcode, 1, 3) & " " & Mid(Pcode, 4, 3)
Case 7
Pcode = Mid(Pcode, 1, 4) & " " & Mid(Pcode, 5, 3)
End Select
'Now create the search string
'Had to delete as u.r.l used and this only my 4th post
sStr = "Had to delete as u.r.l used and this only my 4th post
For a = 1 To Len(Pcode)
If IsNumeric(Mid(Pcode, a, 1)) Then
sStr = sStr & Mid(Pcode, 1, a - 1) & "/"
a = Len(Pcode)
End If
Next a
sStr = sStr & Mid(Replace(Pcode, " ", "-"), 1, InStr(Pcode, " ") + 1) & "/"
sStr = sStr & Replace(Pcode, " ", "-") & "/"
'Now I create a WinHTTP request to get the information from the server
Dim winReq As WinHttpRequest
Dim HTM, Address As Variant
Dim Add1, Add2, Add3, Add4 As String
Dim sCount As Integer
Set winReq = New WinHttpRequest
With winReq
.Open "GET", sStr, False
.Send
HTM = Split(Replace(.ResponseText, """", "'"), "<")
If .Status <> 200 Then
MsgBox ("Address not found")
Exit Sub
End If
End With
'Now I have the entire web page including tags just without the '<' at the beginning of each line
'Split this down to find the address lines
For Each i In HTM
If InStr(i, "td class='address'>") > 0 Then
'You can the assign the address to a listbox as below
Me.List2.AddItem (Replace(i, "td class='address'>", ""))
'Or you can split the address in to variables
Address = Split((Replace(i, "td class='address'>", "")), ",")
sCount = 0
For Each j In Address
sCount = sCount + 1
Next
Select Case sCount
Case 3
Add1 = Address(0)
Add4 = Address(1)
Case 4
Add1 = Address(0)
Add3 = Address(1)
Add4 = Address(2)
Case 5
Add1 = Address(0)
Add2 = Address(1)
Add3 = Address(2)
Add4 = Address(3)
Case 6
Add1 = Address(0) & " " & Address(1)
Add2 = Address(2)
Add3 = Address(3)
Add4 = Address(4)
End Select
'Put code here to assign these variables to anything you like
End If
Next
End Sub