找回密码
 加入
搜索
查看: 5434|回复: 5

[系统综合] 创建MDB数据库时,怎么为字段ID设置为自动编号?

  [复制链接]
发表于 2014-9-17 19:29:27 | 显示全部楼层 |阅读模式
创建MDB数据库时,怎么为字段ID设置为自动编号?
 楼主| 发表于 2014-9-17 19:30:42 | 显示全部楼层
用AU3语句创建哦。
发表于 2014-9-17 20:36:57 | 显示全部楼层
看个例子你就明白了~~
;id identity(1, 1) primary key    为自动编号和主键
发表于 2014-9-17 23:37:21 | 显示全部楼层
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, "操作完成,请查看生成文件!")
 楼主| 发表于 2014-9-18 08:58:12 | 显示全部楼层
今天特意来回贴,果然高手在民间啊。谢谢了。
发表于 2014-9-18 09:49:42 | 显示全部楼层
我想问 键的说明  可以加进群吗?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 09:36 , Processed in 0.091854 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表