ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3025|回复: 1

如何自动填写姓名?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-7-26 10:57 | 显示全部楼层 |阅读模式

表a里面是工号和姓名的一一对应表

窗体b里有下拉组合框code,name 2项

如何做到在code中选择一个工号后,自动根据表a的内容将对应的姓名填写到窗体b里的name中?

谢谢

TA的精华主题

TA的得分主题

发表于 2004-7-26 14:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

在第一个组合框的 AFTERUPDATE 事件里面写代码,使用 DLOOKUP 函数即可全部显示

DLookup 函数 参阅应用于示例特性DLookup 函数用于从指定记录集(一个域)获取特定字段的值。可以在 Visual Basic、宏、查询表达式、窗体或报表上的计算控件中使用 DLookup 函数。

使用 Dlookup 函数可以显示不在窗体或报表记录源中的字段值。例如,假定有一个基于“订单明细”表的窗体,显示“订单ID”、“产品ID”、“单价”、“数量”和“折扣”字段。而“产品名称”字段位于另一个表 (“产品”表)中。通过在计算控件中使用 Dlookup 函数,可以在同一窗体上显示“产品名称”。

DLookup(expr, domain, [criteria]) DLookup 函数具有下列参数:

参数 说明 expr 一个表达式,用于标识需要返回其值的字段。它既可以是用于标识表或查询中字段的字符串表达式,也可以是以该字段上的数据进行计算的表达式。在 expr 中,可以包括表中字段的名称、窗体上的控件、常量或函数。如果 expr 包含函数,那么它可以是内置的,也可以是用户定义的,但不能是另一个域聚合函数或 SQL 聚合函数。 domain 字符串表达式,代表组成域的记录集。可以是表名称或不需要参数的查询名称。 criteria 可选的字符串表达式,用于限制 DLookup 函数执行的数据范围。例如,criteria 通常等价于 SQL 表达式中的 WHERE 子句,只是不含 WHERE 关键字。如果忽略 criteria,DLookup 函数将在整个域范围内计算 expr。任何包含在 criteria 中的字段必须同时也是 domain 中的字段,否则 Dlookup 函数将返回 Null。

说明 DLookup 函数将基于 criteria 中指定的信息返回单个字段的值。虽然 criteria 是可选参数,但如果不给 criteria 提供值,Dlookup 函数将返回域中的一个随机值。

如果没有记录满足 criteria,或者 domain 中没有记录,DLookup 函数将返回 Null。

如果有多个字段满足 criteria,DLookup 函数将返回第一个匹配字段。所以应该指定条件以确保 DLookup 函数返回的字段值是唯一的。可以在条件中使用主键值,在下例中,使用 [EmployeeID] 来确保 DLookup 函数返回唯一的值:

Dim varX As Variant varX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1") 无论是在宏、模块、查询表达式中,还是在计算控件中使用 DLookup 函数,都必须仔细地构造 criteria 参数,以确保能够正确地进行计算。

在查询的“条件”行、查询的计算字段表达式中或更新查询的“更新到”行中均可以使用 DLookup 函数来指定条件。

如果需要显示的字段不在窗体或报表所基于的记录源中,也可以在窗体或报表的计算控件表达式中使用 DLookup 函数。例如,假定有一个“Order Details”窗体基于“Order Details”表,并且含有一个显示“ProductID”字段的名为“ProductID”的文本框,要从基于这个文本框值的“Products”表中查阅“ProductName”字段,可以创建另一个文本框,并将它的 ControlSource 属性设为如下表达式:

=DLookup("[ProductName]", "Products", "[ProductID] =" _ & Forms![Order Details]!ProductID) 提示

虽然可以使用 DLookup 函数显示来自外部表字段中的值,但是通过创建包含两表中所需字段的查询,然后将窗体或报表建立在这个查询的基础上,效率将更高。 也可以使用“查阅向导”来查找外部表中的值。 注释 使用此函数时,不包括对 domain 记录未保存的更改。如果希望 DLookup 函数基于更改后的值,必须先保存更改。方法是:单击“记录”菜单上的“保存记录”命令、将焦点移到另一个记录上,或使用 Update 方法。

示例 下面的示例将从满足 criteria 内容记录的“CompanyName”字段中返回名称信息。域为“Shippers”表。criteria 参数将结果记录集限制为“ShipperID”等于 1 的记录。

Dim varX As Variant varX = DLookup("[CompanyName]", "Shippers", "[ShipperID] = 1") 下一个示例来自 Shippers 表,它使用窗体控件 ShipperID 来为 DLookup 函数提供条件。请注意,控件的两侧未加上用以表示字符串的引号,这样可以确保每次调用 DLookup 函数时,Microsoft Access 都将从控件中获取当前值。

Dim varX As Variant varX = DLookup("[CompanyName]", "Shippers", "[ShipperID] = " _ & Forms!Shippers!ShipperID) 下一个示例使用变量 intSearch 来获取值。

Dim intSearch As Integer Dim varX As Variant

intSearch = 1 varX = DLookup("[CompanyName]", "Shippers", _ "[ShipperID] = " & intSearch)

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 16:10 , Processed in 0.029856 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表