MS Access数据库,选择查询

时间:2017-03-22 14:54:40

标签: c# ms-access

我在MS Access SQL中有一个查询,它从我的表中获取一些信息。我想在select语句中包含一个字段,该字段显示一个整数,并为每行增加X(1,2,3或其他)。

所以我的数据集看起来像: (如果增加2)

Name   SKU     SortOrder <-This is my Auto Increment Field
Table  XYZ123  0
Chair  YRZ345  2
Sofa   UFD355  4

我没有在表格中存储排序顺序我只想在Access SQL中生成这些值。

感谢您的帮助。

更新 我发现以下文章解释了通过访问程序和vba实现此目的的几种方法,但是我正在编写使用Access TSQL查询来获取数据然后导出的ac#程序进入一个excel文件,所以我无法在Access程序中向原始数据库添加任何内容,另外还有临时表路径,他们提到它膨胀了数据库。

https://accessexperts.com/blog/2015/07/28/ways-to-do-sequential-numbering-in-access/

我只想要一个在我的select语句中创建的顺序编号列,这是不可能的吗?

1 个答案:

答案 0 :(得分:1)

我建议不要使用SQL来计算这些数据。这是不好的做法。 如果需要,最好在sql语句执行之前向表中添加一个字段并执行计算。

无论如何都可以在VBA中实现这个功能。像:

Private m_counter as Integer

Function CounterInit(Byval counter as Integer)
   m_counter = counter
End Function

Function CounterGetNext(Byval incr as Integer)
   m_counter = m_counter + incr

   CounterGetNext = m_counter
End Function

然后在SQL中使用CounterGetNext()。但是你仍然需要在sql执行之前调用CounterInit()。使用RecordsetType = Snapshot进行此类查询。