Office中国论坛/Access中国论坛

标题: Access里如何获取毫秒值? [打印本页]

作者: 玉树TMD临风    时间: 2015-5-12 20:26
标题: Access里如何获取毫秒值?
单位里用Sql anywhere数据库里(db格式)+Pbuilder,有个数据表的ID字段是主键,值为20150512121315045424这样的每创建一个新记录时会自动生成ID字段,不知道生成规律是什么,最后6位645424也不知道是微秒还是毫秒,而且很多数据都是424结尾的,看不出来和其他字段有什么关系。

我现在通过ODBC连接了该表,想用Access处理数据,在添加记录时,不知道如何生成上述ID值,初步考虑后6位中的前3位用left(ns,3)表示(纳秒的前3位),不知道有没有其他好的办法。


作者: todaynew    时间: 2015-5-13 12:08
Access的时间类型只能到秒吧?
秒后面补六个0,不就可以了吗?
msgbox format(now(),"yyyymmddhhnnss") & “000000”
作者: 玉树TMD临风    时间: 2015-5-14 08:21
todaynew 发表于 2015-5-13 12:08
Access的时间类型只能到秒吧?
秒后面补六个0,不就可以了吗?
msgbox format(now(),"yyyymmddhhnnss") & ...

因为这个字段是主键且自动生成,格式又要求固定,所以用补0的方式可能会导致重复。

我用API解决了,但是这段API在Access里使用时有点问题,yyyymmdd会变成“年月和本周第几天”这种格式,大家自己调试一下,等上完班我再来补充正确用法。


Option Compare Database

Private Type SYSTEMTIME
     wYear As Integer
     wMonth As Integer
     wDayOfWeek As Integer
     wDay As Integer
     wHour As Integer
     wMinute As Integer
     wSecond As Integer
     wMilliseconds As Integer
         
   End Type
   
   Private Declare PtrSafe Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
    Public Function getdatetime() As String
     Dim LCT As SYSTEMTIME
     Dim ymd As String, hms As String
     
     GetLocalTime LCT
     ymd = Format(LCT.wYear & "-" & LCT.wMonth & "-" & LCT.wDay, "yyyyMMdd")
     hms = Format(LCT.wHour, "00") & Format(LCT.wMinute, "00") & Format(LCT.wSecond, "00") & Format(LCT.wMilliseconds, "000")
     getdatetime = ymd & hms
   End Function

  





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3