设为首页
|
收藏本站
|
繁体中文
|
手机版
整站搜索
资讯
技巧
源码
行业
设备(待改)
资源
信息库(待改)
产品
作品(待改)
活动
培训(视频)
平台(待改)
二级(待改)
互动(作废)
交易
Access培训
-
Access开发平台
-
Access行业开发
首页
资讯
技巧
源码
行业
资源
活动
关于
技巧
ACCESS数据库
启动/设置/选项/背景
修复/压缩
安全/加密/解密
快捷键
版本升级/其它等
数据表
命名方式/设计规范
表设计
查询
Sql语言基础
选择查询
更新查询
删除查询
追加查询
生成表查询
交叉表查询
SQL特定查询
查询参数
查询综合应用
界面/窗体/控件
标签
文本框
命令按钮
组合框/列表框
选项组/复选框/选项按钮
选项卡
子窗体
窗体本身/综合应用
其它
报表打印
报表设计
高级报表
模块/函数/VBA/API/系统
VBA基础
内置函数
调试/跟踪/Debug
模块/类模块
API/COM/系统相关
字符数字日期
网络通信游戏
加密解密安全
文件处理
经典算法
宏/菜单/工具栏/功能区
宏/脚本
菜单/工具栏
功能区/Ribbon
图表/图形/图像/多媒体
图表
图形/图像
音频
视频/动画
DAO/链接表/ADO/ADP
DAO/链接表/ODBC
ADO/RDO
ADP
ActiveX/第三方控件/插件
Treeview树控件
ListView列表控件
Toolbar工具栏控件
微软其它控件
Dbi-Tech
CodeJock
Grid++Report
FastReport
ComponentOne
加载项/插件/Addin
OFFICE集成/导入导出/交互
Excel导入导出/交互
Word导入导出/交互
PPT交互
Outlook控制/邮件
Text文本文件/INI/CSV
PDF/SWF/XML格式
CAD格式
Sharepoint/其它Office
SqlServer/其它数据库
表
视图
存储过程/触发器
函数
用户/权限/安全
调试/维护
SqlServer其它/综合
发布/打包/文档/帮助
开发版/运行时
打包/发布/部署
开发文档/帮助制作
Access完整行业系统
采购管理系统
销售管理系统
仓库管理系统
人力资源管理HRM
CRM管理系统
MRP/ERP管理系统
BRP/流程优化
其它管理系统
心得/经验/绝招
其它/杂项
Excel技巧
Excel应用与操作
Excel开发编程
Word技巧
Word应用与操作
Word开发编程
Outlook技巧
Outlook应用与操作
Outlook开发编程
热门文章
如何用程序调用链接表管理器..
Access建表规范总结(..
隐藏表的一种特殊方法
如何建立IP地址库并加以搜..
更改数据表名称后,如何同步..
Access用代码创建表
最新文章
Access用代码创建表
access表的设计技巧
access实现自动编号从..
Access2010出现“..
使用输入掩码控制数据输入格..
索引和主键的异同
联系方式
Access交流网(免费Access交流)
QQ:18449932
网 址:
www.access-cn.com
当前位置:
首页
>
技巧
>
数据表
>
表设计
表设计
真正实现两个列表框动态关联
想了好久得出的方法,想着很多人都为此问题得不到解决而苦恼,本着代码共享的原则,现公布出来供大家指正(其实不说出来我也难受)。如果您觉得不错请帮忙提提前,好让更多的朋友看到。
此方法绝不是事先将所有记录都写入到页面中再通过脚本过滤,那样虽然简单,但对于大的数据量显然就不适合了,而且还严重浪费资源。
将下面的代码稍作修改即可应用于其它地方,非常方便。
为测试用,先建一名 Test.mdb 的 access2000 数据库,建立两个表 Type,Title,结构如下:
Type
******************
ID 自动编号,主键
名称 文本,长度合适
Title
********************
ID 自动编号,主键
类别 长整形数字,并联 Type 表的 ID 字段
标题 文本,长度合适
我们的目的是从 Type 表中读取记录并写入到第一个列表框中,并在第一个列表框选择时从 Title 表中过滤出相应记录写入到第二个列表框中,并且可以随时获得第二列表框所选的值。
关键:在 B.asp 放置一隐藏域,来存放第二列表框所选的值,在 A.asp 中通过脚本来访问该隐藏域的值来达到跨页面读取数值的目的。
'********************************************************
' conn.asp 连接数据库,这里用 test.mdb 来作测试
'********************************************************
<%
dim conn
dim connstr
Set conn = Server.CreateObject(""ADODB.Connection"")
connstr=""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""+Server.MapPath(""/test.mdb"")
conn.Open connstr
%>
'********************************************************
' A.asp 主页面,内嵌 B.asp(第二列表框在B.asp页面)
'********************************************************
<!--#include file=""conn.asp""-->
<table>
<tr><td>
<form method=""POST"" action="""">
<%
Dim I,FirstID
I=1
Set Rs= Server.CreateObject(""ADODB.Recordset"")
SQL=""SELECT * FROM Type;""
RS.Open SQL,Conn,1,1
Response.Write ""第一列表框 <select size='1' ID='A' name='A' OnChange='VBScript:ChangType'>""
DO While Not RS.Eof
Response.Write ""<option value='"" & RS(""ID"") & ""'>"" & RS(""名称"") & ""</option>""
RS.MoveNext
Loop
Response.Write ""</select>""
%>
<P><IFRAME HEIGHT=""22"" WIDTH=""300"" FRAMEBORDER=NO MARGINHEIGHT=0 SRC=""B.asp?ID=1"" ID=""TitleFrame""></IFRAME></P>
<P><input type='button' onclick='vbscript:Show.innerText=""选择的值是:"" & Document.Frames(0).Document.All.H.value' value='查看第二列表框所选值'></P>
</Form>
</td></tr><tr><td ID=""Show""></td></tr>
</table>
<Script Language=VBScript>
Sub ChangType
TitleFrame.Location.Replace(""B.asp?ID="" & Document.All.A.Value)
End Sub
</Script>
<%
RS.Close
Set RS=Nothing
Conn.Close
Set Conn=Nothing
%>
'********************************************************
' B.asp 第二列表框所在页面,内嵌于 A.asp
'********************************************************
<!--#include file=""Conn.asp""-->
<%
TypeID=Trim(Request.QueryString(""ID""))
Dim RS
Set RS= Server.CreateObject(""ADODB.Recordset"")
SQL=""SELECT * FROM Title Where 类别="" & TypeID & "";""
RS.Open SQL,Conn,1,1
Response.Write ""第二列表框 <select size='1' name='B' ID='B' OnChange='H.value=this.options[this.selectedIndex].value'>""
Do While Not RS.Eof
Response.Write ""<option value='"" & RS(""ID"") & ""'>"" & RS(""标题"") & ""</option>""
RS.MoveNext
Loop
Response.Write ""</select>""
RS.Close
Set RS=Nothing
Conn.Close
Set Conn=Nothing
%>
<input type=""hidden"" name=""H"">
<script Language=""vbscript"">
H.value=B.options(B.selectedIndex).value
</script>
发布人:未知-爱网无限
分享到:
点击次数:
更新时间:2005-05-29 16:35:15 【
打印此页
】 【
关闭
】
上一条:
OE重复收信原因
下一条:
定期归档Access数据库
相关文章
•
Access用代码创建表
•
access表的设计技巧
•
access实现自动编号从1开始排序且不中断
•
Access2010出现“错误一对多” 调试解决办法
•
使用输入掩码控制数据输入格式
•
索引和主键的异同
•
“排队不长,只是很粗”——浅谈化宽为长
•
Access数据表能做什么
热门文章
[2008-11-21]
建立自由的会计日期的报表
[2005-02-04]
如何更改表的某一个字段的属性比如允许空字符
[2005-02-04]
更改数据表名称后,如何同步更新引用此数据表之查询或其他对象
[2016-01-29]
Access建表规范总结(六)——最小信息
[2008-11-28]
如何在报表中加横竖线
[2016-01-29]
Access建表规范总结(五)——辅助字段
热门产品