1

2007にアクセスするためにExcelをインポートすると、一部の日付フィールドがテキストフィールドになりました。だから私はそれらの列のデータ型を日時に変更するためにアクセスでクエリを実行したいと思います。SQLで日付形式( "dd-mmm-yyyy")を渡すにはどうすればよいですか?

ALTER TABLE Tbl1 
ALTER COLUMN [ABC] datetime

ありがとう

ジョー

4

1 に答える 1

1

Excelから列(フィールド)をインポートし、それがテキスト形式になっている場合は、単に日時形式に切り替えることに非常に注意する必要があります。混合データ型として認識されなかった場合、AccessはすでにフィールドをDateTimeとして解釈しているはずです。新しいDateTime列を作成し、明確な形式で年月日で更新する必要があります。

列がmm/dd / yyyyであるとすると、1つのオプションは次のようになります。

UPDATE Table SET NewDateTime = Right(DT,4) & "/" & Left(DT,2) & "/" & Mid(DT,4,2)
WHERE DT Like "##/##/####"

FormatプロパティをDDLで設定することはできず、MSAccess以外では関係ありません。一般に、テーブルではFormatプロパティを使用しないことをお勧めします。これは、フォームとレポートで制御するのが最適です。フォーマットを設定すると、クエリが期待どおりに機能しない場合、ある段階で必然的に誰かを混乱させることになります。

本当にフォーマットを設定する必要がある場合は、VBA、DAO、およびTableDefを使用する必要があります。

Dim db As Database
Dim tdf As TableDef
Dim fld As DAO.Field
Dim prp As Property
Dim prpName As String
Dim prpValue As String
Dim prpType As Long

    Set db = CurrentDb
    Set tdf = db.TableDefs("Table1")
    Set fld = tdf.Fields("ADate")

    prpName = "Format"
    prpValue = "yyyy/mm/dd"
    prpType = dbText

    On Error Resume Next
    fld.Properties(prpName) = prpValue

    If Err.Number = 3270 Then
        Set prp = fld.CreateProperty(prpName, prpType, prpValue)
        Err.Clear
        fld.Properties.Append prp
    End If

    Debug.Print fld.Properties("Format")
于 2012-07-19T09:55:47.723 に答える