Access + VBA:正确创build数据库

如何更正以下字段的创build数据库:

Dim F As String Dim S As Long Dim T As Integer Dim C As Double //Currency Dim D As String //Date F = "ABC" S = 88869045 T = 9 C = 30.4493 // currency, but can be double D = "06.08.2010" // date (how to correct convert to date?) //#1 DBTable.Name = "TestTable" DBTable.Columns.Append "First", adVarWChar, 40 DBTable.Columns.Append 1, adBigInt, 20 DBTable.Columns.Append 0, adInteger DBTable.Columns.Append 0, adCurrency DBTable.Columns.Append 0, adDate DBCatalog.Tables.Append DBTable 

另外, DBCatalog as ADOX.CatalogDBTable as ADOX.Table

请参阅#1其他问题。 谢谢!

如果您的Access版本是2000或更高版本,则可以使用Replace()函数用短划线Replace()datestring中的点。 然后CDate()函数将能够将string转换为date/时间值。

 Debug.Print CDate(Replace("06.08.2010",".","-")) 6/8/2010 

这是我的系统上的“立即”窗口的一个例子,它使用US作为它的语言环境设置。 所以CDate()可以接受一个包含mm-dd-yyyy格式的date的string。 如果您的语言环境不同,则需要投入更多的工作才能获得所需的内容。

所有这一切正常工作:

 //create database DBTable.Name = "TestTable" DBTable.Columns.Append "First", adVarWChar, 40 DBTable.Columns.Append "Second", adDouble, 40 DBTable.Columns.Append "Third", adInteger DBTable.Columns.Append "Forth", adCurrency DBTable.Columns.Append "Fifth", adDate 

但是关于转换stringdate的问题仍然是打开的:

 Dim D as String //must be date D = "06.10.2010" 

如何将其转换为date和之后插入到数据库? (typesadDate和Date是否兼容?)

所以,显示最后一个版本的代码:

 // after this: insert data into datatable (not in question, but part of creation db (usage is necessary)) Dim F As String Dim S As Double Dim T As Integer Dim C As Double Dim D As Date Dim SS As String Dim TS As String Dim CS As String Dim DS As String F = "'" + "ABC ABD ACS" + "'" //use of single (') quote S = 88869045 T = 9 C = 30.4493 D = CDate("20/12/2010") // for any data type! don't forget about it SS = "'" + Str(S) + "'" TS = "'" + Str(T) + "'" CS = "'" + Str(C) + "'" DS = "'" + Str(D) + "'" DBConnection.Execute "INSERT INTO TestTable VALUES (" + F + "," + SS + "," + TS + "," + CS + "," + DS + " ) " 

PS它工作正常,感谢您的意见和答案。