你的两个列名写错了。代码如下
If e.Node.Level = 3 Then '如果单击的是第二层节点
Dim ps() As String = e.Node.FullPath.Split("\")
Dim tr As Row = Tables("通讯录").Current
Dim dr As DataRow = DataTables("行政区域").Find("个人信息_省辖市 = '" & ps(0) & "' And 个人信息_地级市 = '" & ps(1) & "' And 个人信息_区县市 = '" & ps(2) & "'And 个人信息_街道社区 = '" & ps(3) & "'")
If dr IsNot Nothing Then '如果在行政区域表找到对应的行,则将此行的值写入通讯录表的当前行.
tr("个人信息_省辖市") = dr("个人信息_省辖市")
tr("个人信息_地级市") = dr("个人信息_地级市")
tr("个人信息_区县市") = dr("个人信息_区县市")
tr("个人信息_街道社区") = dr("个人信息_街道社区")
tr("个人信息_区号") = dr("个人信息_区号")
tr("个人信息_邮编") = dr("个人信息_编号")
e.Form.DropDownBox.Value = tr("个人信息_街道社区") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
End If
e.Form.DropDownBox.CloseDropdown()
End If