Ms access 如何在ms access 2007中按日期排序?

Ms access 如何在ms access 2007中按日期排序?,ms-access,sorting,ms-access-2007,vba,Ms Access,Sorting,Ms Access 2007,Vba,只想知道如何对以日期格式mm/dd/yyyy显示数据的文本列进行排序。您首先必须转换为日期才能获得正确的排序。这是一个将Datetext转换为RealDate的查询,然后对该列(字段)进行排序。也可以单击标题以选择排序顺序 SELECT t.ID, t.Datetext, DateSerial(Mid([Datetext],InStrRev([Datetext],"/")+1), Mid([Datetext],1,InStr([Datetext

只想知道如何对以日期格式mm/dd/yyyy显示数据的文本列进行排序。

您首先必须转换为日期才能获得正确的排序。这是一个将Datetext转换为RealDate的查询,然后对该列(字段)进行排序。也可以单击标题以选择排序顺序

SELECT 
   t.ID, 
   t.Datetext, 
   DateSerial(Mid([Datetext],InStrRev([Datetext],"/")+1),
              Mid([Datetext],1,InStr([Datetext],"/")-1),
              Mid([Datetext],InStr([Datetext],"/")+1,
                 (InStrRev(Datetext,"/")-InStr([Datetext],"/"))-1)) AS RealDate
FROM Table t
Order By 3
您可以使用IIf避免null错误:

IIf([Datetext] Is Null,Null,DateSerial(
           Mid([Datetext],InStrRev([Datetext],"/")+1),
           Mid([Datetext],1,InStr([Datetext],"/")-1),
           Mid([Datetext],InStr([Datetext],"/")+1,
              (InStrRev(Datetext,"/")-InStr([Datetext],"/"))-1))) AS RealDate

您首先必须转换为日期才能获得适当的排序。这是一个将Datetext转换为RealDate的查询,然后对该列(字段)进行排序。也可以单击标题以选择排序顺序

SELECT 
   t.ID, 
   t.Datetext, 
   DateSerial(Mid([Datetext],InStrRev([Datetext],"/")+1),
              Mid([Datetext],1,InStr([Datetext],"/")-1),
              Mid([Datetext],InStr([Datetext],"/")+1,
                 (InStrRev(Datetext,"/")-InStr([Datetext],"/"))-1)) AS RealDate
FROM Table t
Order By 3
您可以使用IIf避免null错误:

IIf([Datetext] Is Null,Null,DateSerial(
           Mid([Datetext],InStrRev([Datetext],"/")+1),
           Mid([Datetext],1,InStr([Datetext],"/")-1),
           Mid([Datetext],InStr([Datetext],"/")+1,
              (InStrRev(Datetext,"/")-InStr([Datetext],"/"))-1))) AS RealDate

您在评论中说这是一个“显示sql表日期的文本列”。我不确定你这是什么意思,但我认为如果你能将文本列转换为实际的日期/时间列,情况可能会更简单

如果要将数据从SQL Server导入Access,请在将这些文本值拉入Access时转换它们

如果Access表是指向SQL Server对象的链接,请在SQL Server中创建一个视图,将文本日期列强制转换为Access兼容的日期类型。然后在访问端,将现有链接替换为指向视图的链接


如果需要在Access中编辑日期值,而不仅仅是对其进行显示和排序,请在视图中同时包含原始文本列和转换后的日期版本。对文本列进行Access编辑;按日期/时间列排序。

您在评论中说这是“显示sql表日期的文本列”。我不确定你这是什么意思,但我认为如果你能将文本列转换为实际的日期/时间列,情况可能会更简单

如果要将数据从SQL Server导入Access,请在将这些文本值拉入Access时转换它们

如果Access表是指向SQL Server对象的链接,请在SQL Server中创建一个视图,将文本日期列强制转换为Access兼容的日期类型。然后在访问端,将现有链接替换为指向视图的链接


如果需要在Access中编辑日期值,而不仅仅是对其进行显示和排序,请在视图中同时包含原始文本列和转换后的日期版本。对文本列进行Access编辑;按日期/时间列排序。

是日期列还是文本列?排序时,顺序有什么问题?如果它是一个文本列,为什么呢?它是一个显示sql表日期的文本列。我想在单击标题时对它进行排序。如果您只是有一个用文本字段打开的表视图,那么它将无法正确排序,在这种情况下,我认为您需要从这个表中编写一个查询,将文本列转换为真实的日期值,然后对其进行排序,尽管如果这是一个非常大的SQL表,那么性能可能不太好。它是日期列还是文本列?排序时,顺序有什么问题?如果它是一个文本列,为什么呢?它是一个显示sql表日期的文本列。我想在单击标题时对它进行排序。如果您只是有一个用文本字段打开的表视图,那么它将无法正确排序,在这种情况下,我认为您需要从这个表中编写一个查询,将文本列转换为真实的日期值,然后对其进行排序,尽管如果这是一个非常大的SQL表,那么性能可能不会很好。我不太明白如何使用它。是否需要将此查询放在onlcick事件中?@user1175126不,正如我前面提到的,如果您只是通过dbl单击打开表,则无法执行此操作,您需要使用提供的SQL Remou对表进行查询,然后可以使用与打开表相同的方式打开此表,但是,列应该正确排序—只需将sql粘贴到Access中查询设计窗口的sql视图中,然后更改
ID
Datetext
以匹配您的设置。在表t的
行中,您只需将
Table
更改为表名,
t
是别名,可以单独使用。它对日期进行排序。但是,我有一些疑问。此日期列位于表单上。我希望在用户单击标题时进行排序。当用户单击标题时是否需要运行查询?这不是一个执行某些操作的查询,而是一个要按日期排序的查询,而不是表。您不能在需要按日期排序的任何位置使用表。使用此查询中的idea创建表单,而不是使用表作为表单的记录源。最简单的方法是先创建查询并保存它,然后根据保存的查询创建表单。我不太明白如何使用它。我需要将此查询放入onlcick事件中吗?@user1175126不,如上所述,如果您只是通过dbl单击打开表,则无法执行此操作,您将需要使用SQL Remou提供的查询表,然后您可以用与打开表相同的方式打开该表,但是列应该正确排序只要将SQL粘贴到Access中查询设计窗口的SQL视图中,然后更改
ID
Datetext
,以匹配您的设置。在表t
行中,您只需将
Table
更改为表名,
t
是别名,可以单独使用。它对日期进行排序。但是,我有一些疑问。此日期列位于表单上。我希望在用户单击标题时进行排序。当用户单击标题时是否需要运行查询?这不是一个执行某些操作的查询,而是一个要按日期排序的查询,而不是表。您不能在需要按日期排序的任何位置使用表。使用此查询中的idea创建表单,而不是使用表作为表单的记录源。首先创建查询并保存它,然后根据保存的查询创建表单,这将是最简单的。