Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[求助]如何获得结果集内各行的行号

mosengren  发表于:2008-09-16 13:34:31  
复制

现在有一个表格式窗体,绑定了查询,我想在每行开头加上一个字段,显示该行的行号,我该怎么做?

 

Top
黎红军 发表于:2008-09-16 23:05:17

有两个办法,一是用查询生成新序号的办法,一个是做一个子窗体的行号的模块。office官方网有出现过子窗体行号的方法。

http://office.microsoft.com/zh-cn/access/HA011201382052.aspx?mode=print



黎红军 发表于:2008-09-16 23:45:55

http://support.microsoft.com/kb/325236/zh-cn

如何创建 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 文本框中显示每种产品的记录号码按顺序。


徐兵 发表于:2009-04-16 08:28:33

查看里面的"Form Controls"→"How to Display line Numbers on SubForm Records"实例

点击下载此附件



总记录:3篇  页次:1/1 9 1 :