2013-06-28 34 views
1

下面的代码将格式为“Long Time”的数据类型为“Date/Time”的列添加到.mdb文件的访问表中。但如果我用accdb替换mdb文件,那么添加列将不起作用。所以我想要替代的代码可以添加格式为“长时间”的数据类型“日期/时间”列。代码为accdb文件提供错误

我用

Dim db As Database 
Dim tdf As TableDef 
Dim fld As Field 

Dim JetEngine As New dao.DBEngine 
Dim p 
db = JetEngine.OpenDatabase("D:\Employee.accdb") 

tdf = db.TableDefs("detail") 
fld = tdf.CreateField() 
With fld 
    .Name = "MyDateTime" 
    .Type = 8 
     .Size = 8 
End With 

tdf.Fields.Append(fld) 
p = fld.CreateProperty("Format", 10, "Long Time") 
fld.Properties.Append(p) 

,提示错误代码 “无法识别的数据库格式。 'd:\ Employee.accdb'”代码

db = JetEngine.OpenDatabase("D:\Employee.accdb") 
+0

你是什么意思的“不会工作”?你有错误吗?如果是这样,那么错误消息会说什么以及哪一行代码会触发它? –

回答

2

检查项目的参考。如果您使用的是基准

Microsoft DAO 3.6对象库

(它出现在引用列表中的“道”),那么你的代码将工作为.mdb文件,但不是为.accdb文件。您可以同时支持文件类型没有大的改动你的代码,如果你只是删除该参考,并

的Microsoft Office 14.0 Access数据库引擎对象库替换它

(出现在引用列表, “Microsoft.Office.Interop.Access.Dao”)。

+0

我一直在寻找这个。你的建议帮了我很大的忙,谢谢。 –