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