Dim $Cat = ObjCreate("ADOX.Catalog")
Dim $Cn1 = ObjCreate("Adodb.Connection")
Dim $Rs1 = ObjCreate("Adodb.Recordset")
Dim $MdbFile = @ScriptDir & "\test_au3.mdb"
;//处理 Adodb.Connection 对象
With $Cn1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source=" & $MdbFile
;.CursorLocation = 3
EndWith
;//判断文件是否存在
if Not FileExists($MdbFile) Then
;// 文件不存在
;// 创建 空的 MDB 文件
$Cat.Create( $Cn1.ConnectionString )
$Cn1.Open()
Else
;$Cn1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $MdbFile
$Cn1.Open() ;打开文件
;刚才这里写错了漏了一下$Cn1 不好意思用WITH 用惯了,打开原有的MDB也可以了
$Cn1.ExeCute("DROP TABLE [表1]")
Endif
msgbox(48, 0, $Cn1.State)
if $Cn1.State<>0 Then
With $Cn1
;//创建[表1]
.ExeCute("CREATE TABLE [表1]")
;//创建自动编号 ID 字段 按1自增 可调区间 但AUTOINCREMENT(1,n) 未做测试
.ExeCute("ALTER TABLE [表1] ADD [ID] COUNTER(1,1) NOT NULL") ;'COUNTER(1,1) AUTOINCREMENT(1,5)
;.ExeCute("ALTER TABLE [表1] ADD [ID1_5] AUTOINCREMENT(1,5) NOT NULL") ;'COUNTER(1,1) AUTOINCREMENT(1,5)
.ExeCute("ALTER TABLE [表1] ADD [数字-小数72] Decimal(7,2)")
.ExeCute("ALTER TABLE [表1] ADD [二进制] Binary(3)")
.ExeCute("ALTER TABLE [表1] ADD [备注] MEMO")
.ExeCute("ALTER TABLE [表1] ADD [对象OLE] IMAGE")
.ExeCute("ALTER TABLE [表1] ADD [数字-字节] TinyInt")
.ExeCute("ALTER TABLE [表1] ADD [数字-整型] SmallInt")
.ExeCute("ALTER TABLE [表1] ADD [数字-长整型] Int")
.ExeCute("ALTER TABLE [表1] ADD [数字-单精度型] Real")
.ExeCute("ALTER TABLE [表1] ADD [数字-双精度型] Float")
.ExeCute("ALTER TABLE [表1] ADD [货币] Money") ;'MONEY CURRENCY MONEY
.ExeCute("ALTER TABLE [表1] ADD [时间日期] DateTime") ;DATE、TIME、TIMESTAMP DATETIME DATE、TIME(参见注释) DATETIME
.ExeCute("ALTER TABLE [表1] ADD [逻辑Bit] bit")
.ExeCute("ALTER TABLE [表1] ADD [逻辑YESNO] YesNo")
.ExeCute("ALTER TABLE [表1] ADD [文本201Text] Text(255) NOT NULL") ;201有系统编码(必填字段=true)
.ExeCute("ALTER TABLE [表1] ADD [文本202VarChar] VarChar(255) NULL") ;202无系统编码
.ExeCute("ALTER TABLE [表1] ADD [文本Text压缩Unicode] text(255) WITH COMPRESSION") ;201有系统编码压缩Unicode
Endwith
Else
msgbox(48,0,"数据打开失败!")
Endif
;//结束建表
$Cn1.Close ;关闭对象
msgbox (48, 0, "操作完成,请查看生成文件!")
|