0
在该查询中添加自动编号字段会导致ms-access无响应。我用 SELECT(SELECT COUNT(*)FROM .....),* FROM ... 我的查询在每一列中都有非唯一值。我只是想在新的列中添加1,2,3,4 ...。请帮我解决我的问题。添加自动编号字段以查询返回5000条以上记录
在该查询中添加自动编号字段会导致ms-access无响应。我用 SELECT(SELECT COUNT(*)FROM .....),* FROM ... 我的查询在每一列中都有非唯一值。我只是想在新的列中添加1,2,3,4 ...。请帮我解决我的问题。添加自动编号字段以查询返回5000条以上记录
对不起,错过了查询部分原因不明,所以这里是一个完全不同的答案......
使用此功能,读取记录只有一次,然后一个集合,是在商店的ID查找速度要快得多:
Public Function RowCounter(_
ByVal strKey As String, _
ByVal booReset As Boolean, _
Optional ByVal strGroupKey As String) _
As Long
' Builds consecutive RowIDs in select, append or create query
' with the possibility of automatic reset.
' Optionally a grouping key can be passed to reset the row count
' for every group key.
'
' Usage (typical select query):
' SELECT RowCounter(CStr([ID]),False) AS RowID, *
' FROM tblSomeTable
' WHERE (RowCounter(CStr([ID]),False) <> RowCounter("",True));
'
' Usage (with group key):
' SELECT RowCounter(CStr([ID]),False,CStr[GroupID])) AS RowID, *
' FROM tblSomeTable
' WHERE (RowCounter(CStr([ID]),False) <> RowCounter("",True));
'
' The Where statement resets the counter when the query is run
' and is needed for browsing a select query.
'
' Usage (typical append query, manual reset):
' 1. Reset counter manually:
' Call RowCounter(vbNullString, False)
' 2. Run query:
' INSERT INTO tblTemp (RowID)
' SELECT RowCounter(CStr([ID]),False) AS RowID, *
' FROM tblSomeTable;
'
' Usage (typical append query, automatic reset):
' INSERT INTO tblTemp (RowID)
' SELECT RowCounter(CStr([ID]),False) AS RowID, *
' FROM tblSomeTable
' WHERE (RowCounter("",True)=0);
'
' 2002-04-13. Cactus Data ApS. CPH
' 2002-09-09. Str() sometimes fails. Replaced with CStr().
' 2005-10-21. Str(col.Count + 1) reduced to col.Count + 1.
' 2008-02-27. Optional group parameter added.
' 2010-08-04. Corrected that group key missed first row in group.
Static col As New Collection
Static strGroup As String
On Error GoTo Err_RowCounter
If booReset = True Then
Set col = Nothing
ElseIf strGroup <> strGroupKey Then
Set col = Nothing
strGroup = strGroupKey
col.Add 1, strKey
Else
col.Add col.Count + 1, strKey
End If
RowCounter = col(strKey)
Exit_RowCounter:
Exit Function
Err_RowCounter:
Select Case Err
Case 457
' Key is present.
Resume Next
Case Else
' Some other error.
Resume Exit_RowCounter
End Select
End Function
请研究包括您的典型用法的内联文档。
谢谢你的回答。但我想要的是“我运行查询。查询添加自动编号字段”。我想我无法在查询的设计视图中添加自动编号字段。我的意思是像在表中添加自动编号字段。 –
谢谢你的回答。我会在脑海中标记出来供以后使用。现在我可以用我的方法。我的方法是1.创建一个与查询+自动编号字段(ID)相同标题的空白表作为您的想法。 2.运行查询并将查询追加到创建的表中。我为这个过程使用了一个表单。在表单加载时,表格内容将被删除,查询将运行并附加到空白表格。然后我用桌子。感谢您的想法,在表中添加自动编号字段。 –