如何创建 GetLineNumber() 函数
Microsoft 提供的编程示例只,用于说明不附带任何明示或默示的保证。 这包括,但不限于,适销性或针对特定用途的适用性暗示保证。 本文假定您熟悉所演示的编程语言和工具来创建和调试过程使用。 Microsoft 支持工程师可以帮助解释某个特定过程的功能但是他们不会修改这些示例以提供额外的功能或构建过程以满足您的特殊需求。 下面的示例演示如何创建以及如何使用示例函数,
GetLineNumber() 。
注意 : 此文章使用 Microsoft 数据访问中的对象的示例代码。 为使该代码才能正常运行,您必须引用 Microsoft DAO 3.6 Object Library (对象库。 为此,在
工具 菜单中的 Visual Basic 编辑器上, 单击
引用 并确保选中了
Microsoft DAO 3.6 Object Library 复选框。
1. |
open sample database Northwind.mdb。 |
2. |
create module and then in Declarations section type following line: Option Explicit
|
3. |
键入下面的过程: Function GetLineNumber (F As Form, KeyName As String, KeyValue)
Dim RS As DAO.Recordset
Dim CountLines
On Error GoTo Err_GetLineNumber
Set RS = F.RecordsetClone
' Find the current record.
Select Case RS.Fields(KeyName).Type
' Find using numeric data type key value.
Case dbInteger, dbLong, dbCurrency, dbSingle, dbDouble, dbByte
RS.FindFirst "[" & KeyName & "] = " & KeyValue
' Find using date data type key value.
Case dbDate
RS.FindFirst "[" & KeyName & "] = #" & KeyValue & "#"
' Find using text data type key value.
Case dbText
RS.FindFirst "[" & KeyName & "] = '" & KeyValue & "'"
Case Else
MsgBox "ERROR: Invalid key field data type!"
Exit Function
End Select
' Loop backward, counting the lines.
Do Until RS.BOF
CountLines = CountLines + 1
RS.MovePrevious
Loop
Bye_GetLineNumber:
' Return the result.
GetLineNumber = CountLines
Exit Function
Err_GetLineNumber:
CountLines = 0
Resume Bye_GetLineNumber
End Function
|
GetLineNumber() 函数需要下列三个参数:
• |
要将行号上窗体对象。 |
• |
子窗体的基础表中唯一的键字段的名称。 如果记录源不具有一个唯一的键字段,将字段具有一个自动编号数据类型添加到基础表为此目的。 |
• |
当前键字段值。 |
可以使用下面的示例表达式作为子窗体上, 文本框中的
控件来源 属性设置如果子窗体的基础表中有一个字段作为其唯一的键字段调用
ID :
=GetLineNumber(Form,"ID",[ID])
回到顶端
How to Use GetLineNumber() 函数
警告 : 如果您按照本示例,您修改示例数据库 Northwind.mdb。 可能要备份 Northwind.mdb 文件和数据库的副本上执行这些步骤。
1. |
in Design view,open Order Details table to table,add following field and then save table: Field Name: ID
Data Type: AutoNumber
This field serves as required single unique field for table. |
2. |
在设计视图中打开订单详细信息扩展查询、 将 ID 字段从订单明细表中添加到查询网格,然后保存该查询。 |
3. |
在设计视图中打开订单子窗体窗体,然后添加到窗体的详细信息部分下面的文本框: Name: LineNum
ControlSource: =GetLineNumber([Form], "ID", [ID])
|
4. |
在 视图 菜单上, 单击 Tab 键次序 。 从自定义次序列表的底部到顶部,拖动 LineNum 字段,然后单击 确定 。 |
5. |
save and then close Orders Subform。 |
6. |
在窗体视图中打开订单窗体并移到一个记录与多个订单行项。 请注意 LineNum 文本框中显示每种产品的记录号码按顺序。 |