【问题标题】:Select Top X records starting at record Y选择从记录 Y 开始的 Top X 记录
【发布时间】:2020-11-27 15:24:48
【问题描述】:

我正在使用 MS Access VBA 进行一些查询。我有一个大约 4000 个项目的列表,我需要查询 1 是前 739 个项目,查询 2 是从记录 740 开始的前 428 个项目,我需要查询 3 是从记录 1168 开始的其余项目。

有什么办法吗?

谢谢。

【问题讨论】:

  • 也没有唯一标识符。
  • 是的,可以做到。你试过吗?如果是这样,请分享您的努力,您会发现这里的人们渴望帮助您。但是请不要在没有你努力的情况下在这个论坛上发布问题来寻找你的问题的答案。
  • 抱歉,这几天我疯了。我已经尝试了以下建议,但仍需要进行一些调整才能得到可靠的响应。

标签: sql vba ms-access


【解决方案1】:

首先,创建一个查询,使用我的项目VBA.RowNumbers 中列出的方法之一为每条记录分配一个 ID。

RowNumber 函数可能适合你。

您必须使用复合键 (say, Field1 & "|" & Field2 & "|" & Field9) 才能获得独特的东西,否则您无法做到这一点。

然后运行这些查询:

Select * From YourQuery
Where ID Between 1 And 739

Select * From YourQuery
Where ID Between 740 And 1167

Select * From YourQuery
Where ID >= 1168

【讨论】:

  • 感谢您的帮助,通过您发布的内容,我能够创建一个带有序列号的字段,但是我可能做错了什么。它们不是按顺序排列的。我有一个字段需要从最高到最低,如果我将 RowID 字段按升序排列,那么我的主字段将不正常。
  • 如果“主”字段不是唯一的,则无法为该字段创建具有相同值的记录的特定顺序。这就是在这种情况下需要复合键的原因。
  • 我的主要字段基于一个永远不会重复的 LocationID。我真的很抱歉我不能给你任何具体的数据。
  • 您写道:也没有唯一标识符。但如果有,请按此排序并忘记复合键。
  • 我后来才意识到这一点,我很抱歉。我很抱歉造成混乱。我没有注意我添加了哪些字段。非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 2012-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多