diandiand163 发表于 2014-9-17 19:29:27

创建MDB数据库时,怎么为字段ID设置为自动编号?

创建MDB数据库时,怎么为字段ID设置为自动编号?

diandiand163 发表于 2014-9-17 19:30:42

用AU3语句创建哦。

austere 发表于 2014-9-17 20:36:57

看个例子你就明白了~~
;id identity(1, 1) primary key    为自动编号和主键

dhlhmgc 发表于 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<>0Then
                With $Cn1
                        ;//创建[表1]
                        .ExeCute("CREATE TABLE [表1]")
                       
                        ;//创建自动编号 ID 字段   按1自增 可调区间   但AUTOINCREMENT(1,n) 未做测试
                        .ExeCute("ALTER TABLE [表1] ADD COUNTER(1,1) NOT NULL")       ;'COUNTER(1,1) AUTOINCREMENT(1,5)
                        ;.ExeCute("ALTER TABLE [表1] ADD 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, "操作完成,请查看生成文件!")

diandiand163 发表于 2014-9-18 08:58:12

今天特意来回贴,果然高手在民间啊。谢谢了。

tvzml 发表于 2014-9-18 09:49:42

我想问 键的说明可以加进群吗?
页: [1]
查看完整版本: 创建MDB数据库时,怎么为字段ID设置为自动编号?