﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-金家寶-随笔分类-Access</title><link>http://www.blogjava.net/jiabao/category/30710.html</link><description>機會只會給垂青有准備的人，運氣不是每個人都有的.</description><language>zh-cn</language><lastBuildDate>Thu, 10 Apr 2008 06:50:45 GMT</lastBuildDate><pubDate>Thu, 10 Apr 2008 06:50:45 GMT</pubDate><ttl>60</ttl><item><title>DLookup函数</title><link>http://www.blogjava.net/jiabao/archive/2008/04/10/191842.html</link><dc:creator>金家寶</dc:creator><author>金家寶</author><pubDate>Thu, 10 Apr 2008 05:46:00 GMT</pubDate><guid>http://www.blogjava.net/jiabao/archive/2008/04/10/191842.html</guid><wfw:comment>http://www.blogjava.net/jiabao/comments/191842.html</wfw:comment><comments>http://www.blogjava.net/jiabao/archive/2008/04/10/191842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jiabao/comments/commentRss/191842.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jiabao/services/trackbacks/191842.html</trackback:ping><description><![CDATA[
		<div class="tit"> </div>
		<table style="TABLE-LAYOUT: fixed">
				<tbody>
						<tr>
								<td>
										<div class="cnt" id="blog_text">
												<p>
														<font color="#0000ff" size="3">DLookup 函数<br />DLookup 函数用于从指定记录集（一个域）获取特定字段的值。可以在 Visual Basic、宏、查询表达式、窗体或报表上的计算控件中使用 DLookup 函数。<br />使用 Dlookup 函数可以显示不在窗体或报表记录源中的字段值。例如，假定有一个基于“订单明细”表的窗体，显示“订单ID”、“产品ID”、“单价”、“数量”和“折扣”字段。而“产品名称”字段位于另一个表 （“产品”表）中。通过在计算控件中使用 Dlookup 函数，可以在同一窗体上显示“产品名称”。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">DLookup(expr, domain, [criteria])</font>
												</p>
												<p>
														<font color="#0000ff" size="3">DLookup 函数具有下列参数：</font>
												</p>
												<p>
														<font color="#0000ff" size="3">参数 说明 <br />expr 一个表达式，用于标识需要返回其值的字段。它既可以是用于标识表或查询中字段的字符串表达式，也可以是以该字段上的数据进行计算的表达式。在 expr 中，可以包括表中字段的名称、窗体上的控件、常量或函数。如果 expr 包含函数，那么它可以是内置的，也可以是用户定义的，但不能是另一个域聚合函数或 SQL 聚合函数。 <br />domain 字符串表达式，代表组成域的记录集。可以是表名称或不需要参数的查询名称。 <br />criteria 可选的字符串表达式，用于限制 DLookup 函数执行的数据范围。例如，criteria 通常等价于 SQL 表达式中的 WHERE 子句，只是不含 WHERE 关键字。如果忽略 criteria，DLookup 函数将在整个域范围内计算 expr。任何包含在 criteria 中的字段必须同时也是 domain 中的字段，否则 Dlookup 函数将返回 Null。 </font>
												</p>
												<p>
														<br />
														<font color="#0000ff" size="3">说明<br />DLookup 函数将基于 criteria 中指定的信息返回单个字段的值。虽然 criteria 是可选参数，但如果不给 criteria 提供值，Dlookup 函数将返回域中的一个随机值。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">如果没有记录满足 criteria，或者 domain 中没有记录，DLookup 函数将返回 Null。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">如果有多个字段满足 criteria，DLookup 函数将返回第一个匹配字段。所以应该指定条件以确保 DLookup 函数返回的字段值是唯一的。可以在条件中使用主键值，在下例中，使用 [EmployeeID] 来确保 DLookup 函数返回唯一的值：</font>
												</p>
												<p>
														<font color="#0000ff" size="3">Dim varX As VariantvarX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1")<br />无论是在宏、模块、查询表达式中，还是在计算控件中使用 DLookup 函数，都必须仔细地构造 criteria 参数，以确保能够正确地进行计算。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">在查询的“条件”行、查询的计算字段表达式中或更新查询的“更新到”行中均可以使用 DLookup 函数来指定条件。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">如果需要显示的字段不在窗体或报表所基于的记录源中，也可以在窗体或报表的计算控件表达式中使用 DLookup 函数。例如，假定有一个“Order Details”窗体基于“Order Details”表，并且含有一个显示“ProductID”字段的名为“ProductID”的文本框，要从基于这个文本框值的“Products”表中查阅“ProductName”字段，可以创建另一个文本框，并将它的 ControlSource属性设为如下表达式：</font>
												</p>
												<p>
														<font color="#0000ff" size="3">=DLookup("[ProductName]", "Products", "[ProductID] =" _&amp; Forms![Order Details]!ProductID)<br />提示</font>
												</p>
												<p>
														<font color="#0000ff" size="3">虽然可以使用 DLookup 函数显示来自外部表字段中的值，但是通过创建包含两表中所需字段的查询，然后将窗体或报表建立在这个查询的基础上，效率将更高。 <br />也可以使用“查阅向导”来查找外部表中的值。 <br />注释   使用此函数时，不包括对 domain 记录未保存的更改。如果希望 DLookup 函数基于更改后的值，必须先保存更改。方法是：单击“记录”菜单上的“保存记录”命令、将焦点移到另一个记录上，或使用 Update 方法。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">示例<br />下面的示例将从满足 criteria 内容记录的“CompanyName”字段中返回名称信息。域为“Shippers”表。criteria 参数将结果记录集限制为“ShipperID”等于 1 的记录。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">Dim varX As VariantvarX = DLookup("[CompanyName]", "Shippers", "[ShipperID] = 1")<br />下一个示例来自 Shippers 表，它使用窗体控件 ShipperID 来为 DLookup 函数提供条件。请注意，控件的两侧未加上用以表示字符串的引号，这样可以确保每次调用 DLookup 函数时，Microsoft Access 都将从控件中获取当前值。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">Dim varX As VariantvarX = DLookup("[CompanyName]", "Shippers", "[ShipperID] = " _&amp; Forms!Shippers!ShipperID)<br />下一个示例使用变量 intSearch 来获取值。</font>
												</p>
												<p>
														<font color="#0000ff" size="3">Dim intSearch As IntegerDim varX As VariantintSearch = 1varX = DLookup("[CompanyName]", "Shippers", _"[ShipperID] = " &amp; intSearch)看书累的，要是看上不怎么样的书就更累了，还是看系统帮助吧！(2007-01-25 14:58:06)    竹笛(56217686)Stemp = DLookup("[用户编号]","系统用户","[用户编号]=''''''''''''''''''''''''''''''''"&amp; Me![用户编号] &amp;"''''''''''''''''''''''''''''''''") 的意思是 找出 系统用户 表中 用户编号字段等于 x 的 用户编号，不也就是x嘛 (2007-01-25 14:58:51)    竹笛(56217686)Stemp = DLookup("[用户名]","系统用户","[用户编号]=''''''''''''''''''''''''''''''''"&amp; Me![用户编号] &amp;"''''''''''''''''''''''''''''''''") 的意思是 找出 系统用户 表中 用户编号字段等于 x 的 用户名 继续学习......</font>
														<br />
												</p>
										</div>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/jiabao/aggbug/191842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jiabao/" target="_blank">金家寶</a> 2008-04-10 13:46 <a href="http://www.blogjava.net/jiabao/archive/2008/04/10/191842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>