0

0

access在结合或绑定的组合框中添加新值

php中文网

php中文网

发布时间:2016-06-07 15:16:08

|

2613人浏览过

|

来源于php中文网

原创

当主表(“一”表)中的主键字段与相关表(“多”表)中的外部键字段建立了关系后,在基于相关表(“多”表)而建的窗体中,外部键字段的控件可以设为 组合 框,通过键盘或鼠标,输入或选择 组合 框中已存的值,也就是引用“一”表所有的数据。此时, 组合 框

当主表(“一”表)中的主键字段与相关表(“多”表)中的外部键字段建立了关系后,在基于相关表(“多”表)而建的窗体中,外部键字段的控件可以设为组合框,通过键盘或鼠标,输入或选择组合框中已存的值,也就是引用“一”表所有的数据。此时,组合框的“行来源类型(RowSourceType)”属性为“表/查询”;“行来源(RowSource)”属性为一查询或SQL语句,同时必须设置“结合列(或绑定列)(BoundColumn)”属性;而“限于列表”属性必须设为“是”,这是为了确保在相关表(“多”表)中的外部键字段必须与主表(“一”表)中的主键字段有一一对应的关系。从中也可以看出,输入数据必须先输入主表(“一”表)的数据,然后才能在相关表(“多”表)中,引用主表(“一”表)的数据。

组合框为结合(或绑定)时,上述一些属性必须如上所述。如果在组合框中输入新值,将会触发“不在列表中(NotInList)”事件。在该事件中写上适当的代码就能将新值添加组合框所结合(或绑定)的表中。

在使用该事件时,Access提供了两个变量,NewData 和Response 。

当输入的值不在列表中时,Access把这一新值写入NewData变量中。通过访问NewData可将新值添加到主表中。

Response有三个值可取:acDataErrDisplay (默认值)、acDataErrContinue和acDataErrAdded 。

书写形式为:

Response = acDataErrDisplay

Response = acDataErrContinue

Response = acDataErrAdded

它们的含义为:

1、acDataErrDisplay为用户显示默认的消息。当不允许用户将新值添加组合框的列表中时,可以使用它。

2、acDataErrContinue 不为用户显示默认的消息。如果要为用户显示自定义消息时,可以使用它。例如,事件过程能显示一个自定义对话框以询问用户是否要保存新的输入项。如果回答为 Yes,事件过程将新的输入项添加到列表中,并将 Response 参数设置为 acDataErrAdded。如果回答是 No,事件过程将 Response 参数设置为 acDataErrContinue。

3、acDataErrAdded 不为用户显示消息,但在 NotInList 事件过程中将输入项添加组合框列表中。在输入项被添加后,Microsoft Access 将通过重新查询组合框来更新列表。然后 Microsoft Access 重新检查字符串和组合框列表,并将 NewData 参数中的值保存到组合框绑定到的字段中。如果字符串不在列表中,则 Microsoft Access 将显示一条错误消息。

①当主表只有一个字段可以添加新值时,不必另建主表输入窗体,用"Insert Into表名称(字段名) Values ('" & NewData & "');"语句将新值直接追加到主表中。以下参考代码:

Private Sub 控件名_NotInList(NewData As String, Response As Integer)

DoCmd.SetWarnings False

DoCmd.RunSQL "Insert Into 表名称(字段名) Values ('" & NewData & "');"

Response = acDataErrAdded

DoCmd.SetWarnings True

End Sub

②如果,主表有多个字段需要添加新值时,必须另建基于主表的输入窗体。在主表窗体的“加载”事件中写入:

Private Sub Form_Load()

If Len(Me.OpenArgs) Then Me.与“多”表窗体中相同字段的控件名 = Me.OpenArgs

End Sub

而在“多”表的“不在列表中”的事件中,写入以下参考代码:

Private Sub 控件名_NotInList(NewData As String, Response As Integer)

If MsgBox("是否要添加新值吗?", vbInformation + vbYesNo, "寻问") Then

DoCmd.OpenForm "主表窗体名称", , , , acFormAdd, acDialog, NewData

Response = acDataErrAdded

End If

End Sub

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.4万人学习

MongoDB 教程
MongoDB 教程

共17课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号