我想知道我能不能在我的代码中新建立一个空的Access数据库,应该如何做。我想用ADODB来做,可以吗?
比如:
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Public Sub addData()
  Dim connstr As String
  connstr = "DRIVER=Microsoft Access Driver (*.mdb);"
  Set conn = New ADODB.Connection
  conn.Open connstr
  conn.Execute "Create databse aa"
End SubPrivate Sub Command1_Click()
  Call addData
End Sub
不过我运行了上面的代码,肯定是错误的,因为只是我的猜想,正确的该如何做?请高手执教!

解决方案 »

  1.   

    以Ado2.5为例
    引用Microsoft ADO Ext.25 for DDL and Security
    然后
    Option Explicit
    Dim cn As New ADOX.Catalog
    Private Sub Form_Load()
      cn.Create "provider=microsoft.jet.oledb.4.0;data source=d:\test.mdb"
      Set cn = Nothing
    End Sub
      

  2.   

    用dao
    调用如下模块试试:
       dbName = App.Path & "\Databases\Mydatabase.mdb"
       CreateNewDatabase dbNamePublic Sub CreateNewDatabase(DatabaseName As String)
       Dim wrkDefault As Workspace
       Dim dbsNew As Database
       
       '申请缺省的工作空间。
       Set wrkDefault = DBEngine.Workspaces(0)
       '若已经存在和要创建的数据同名的文件则应删除。
       If Dir(DatabaseName) <> "" Then Kill DatabaseName
       '创建数据库
       Set dbsNew = wrkDefault.CreateDatabase(DatabaseName, dbLangGeneral, dbEncrypt)
       '关闭数据库
       dbsNew.Close
       
    End Sub
      

  3.   

    换一下思路,其实是一个非常简单的问题.
    用ACCESS建立一个空的数据库,里面什么也没有,当要建库时,例如,名称为:SYS.MDB,将它放在你程序的目录下,当需要在某个地方建时,只要将该文件COPY到目的地就可以了:
      FILECOPY "SYS.MDB",目标文件名.
    如果需要要在这个库下建表,你只要连接到该表,运行一个建表SQL语句就可以了.如:
      CREATE TABLE NEWTAB(ID LONG NOT NULL,STUNAME VARCHAR(32) NULL)
      

  4.   

    换一下思路,其实是一个非常简单的问题.
    用ACCESS建立一个空的数据库,里面什么也没有,例如,名称为:SYS.MDB,将它放在你程序的目录下,当需要在某个地方建库时,只要将该文件COPY到目的地就可以了:
      FILECOPY "SYS.MDB",目标文件名.
    如果需要要在这个库下建表,你只要连接到该数据,运行一个建表SQL语句就可以了.如:
      CREATE TABLE NEWTAB(ID LONG NOT NULL,STUNAME VARCHAR(32) NULL)
      

  5.   


    当然,你想用ADO,ADOX建也可以,参考以下代码Option ExplicitPrivate CAT As ADOX.CatalogPublic Sub CreateMDB(ByVal Path As String,MDBName as string)
      On Error GoTo ErrTrap
      Set CAT = New ADOX.Catalog
      If Right$(Path, 1) = "\" Then Path = Left$(Path, Len(Path) - 1)
    '[建立数据库  
      CAT.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                 "Data Source=" & Path & "\" & MDBName & ".MDB;" & _
                 "Jet OLEDB:Database Password=;" & _
                 "Jet OLEDB" ':Engine Type=5;"
      CreateTables
      CreateIndexes
      CreateKeys  Set CAT = Nothing  Exit Sub
    ErrTrap:
      MsgBox Err.Number & " / " & Err.Description
      Exit Sub
      Resume
    End Sub