天天看點

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