天天看点

VB通过代码对Access数据库的操作

转csdn帖子中faysky2、lihonggen0的答案,不过自己还未测试,先记录下来

用ADOX: 

'菜单“工程”--> "引用 "--> Microsoft   ADO   Ext.2.7   for   DDL   ado   Security 
Private   Sub   Form_Load() 

        Dim   cat   As   ADOX.Catalog 
        Set   cat   =   New   ADOX.Catalog 
        '在当前目录下建立名为newdata的Access数据库 
        cat.Create   ( "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= "   +   App.Path   &   "\newdata.mdb "   +   "; ") 
        MsgBox   "数据库已经创建成功! " 
End   Sub
           

可以用ADO来建表和删表: 

'菜单“工程”--> "引用 "--> Microsoft   ADO   Ext.2.7   for   DDL   ado   Security 

'建表: 
Private   Sub   Command1_Click() 
        Dim   cn   As   New   ADODB.Connection 
        cn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= "   &   App.Path   &   "newdata.mdb;Persist   Security   Info=False " 
        cn.Open 
        cn.Execute   "CREATE   TABLE   [aaa]([学生姓名]Text(20),[年龄]Integer,[成绩]Double) " 
        cn.Close 
End   Sub 
'删表: 
Private   Sub   Command2_Click() 
        Dim   cn   As   New   ADODB.Connection 
        cn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source== "   &   App.Path   &   "newdata.mdb;Persist   Security   Info=False " 
        cn.Open 
        cn.Execute   "DROP   TABLE   [aaa] " 
        cn.Close 
End   Sub
           
'********************************************************* 
'*   名称:TableExists 
'*   功能:判断表是否存在(表名) 
'*   用法:TableExists(表名)   adoCN是一个SQL的连接 
'********************************************************* 
Public   Function   TableExists(findTable   As   String)   As   Boolean 
        Dim   rstSchema   As   New   ADODB.Recordset 
        Set   rstSchema   =   adoCN.OpenSchema(adSchemaTables) 
        rstSchema.Find   "TABLE_NAME= ' "   &   findTable   &   " ' " 
        If   rstSchema.EOF   Then 
            TableExists   =   False 
        Else 
            TableExists   =   True 
        End   If 
        rstSchema.Close 
End   Function