Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Specify Date/Time Field Format through SQL in MS Access

In MS Access, I am requiring to create automatically tables on demand (about 100 maybe more).

SQL 'CREATE TABLE' command can handle this well, though I need to format a Date/Time Field, through an expression like this:

CREATE TABLE myTable (ID INTEGER, T DATETIME CONSTRAINT CT PRIMARY KEY, X DOUBLE, S CHAR)

The created table Field Properties look like this:

Created Table

But i've not found a way to set the "Format" field property, to be "yyyy-mm-dd hh:nn:ss":

Required Table

Is there a way to specify this, through an SQL Expression, not using MS Access Macros?

Best wishes,

like image 606
Brethlosze Avatar asked Feb 26 '26 23:02

Brethlosze


1 Answers

The DDL in Access is useful but pretty limited and I don't think you can define a field's format with it.

To access all of the properties on a table, you'll need to drop down to VBA, using DAO:

Public Sub UpdateFormat(tableName As String, fieldName As String, format As String)
    Dim db As DAO.Database
    Dim tb As DAO.TableDef
    Dim fd As DAO.Field

    Set db = CurrentDb()
    Set tb = db.TableDefs(tableName)
    Set fd = tb.Fields(fieldName)
    fd.Properties("Format").Value = format
End Sub

It's just to show you how it works, you should probably add some error checking as it will throw errors if you try to access a field that doesn't support the Format property.

To use it:

 UpdateFormat "PO", "RateDate", "dd mmm yyyy"
like image 130
Renaud Bompuis Avatar answered Feb 28 '26 12:02

Renaud Bompuis