不知道为什么,我在vb本机上可以运行编译好的程序新建一个 .mdb 数据库,在其他机器上好象都不行(将现成的.mdb拷贝过去就正常了)。虽然变通一下饶过了这个问题(是否奏效还要验证几个机器),但还是不太爽,能告诉原因吗?

解决方案 »

  1.   

    你是怎么新建一个 .mdb 数据库的?如:
    '用ADOX建立数据库与表
    '引用Microsoft ADO Ext 2.5 for DDL and Security
    Dim cat As ADOX.Catalog
    Dim tbl As ADOX.Table
    Dim con As ADODB.Connection    On Error GoTo 0    ' Create the new database.
        Set cat = New ADOX.Catalog
        cat.Create _
            "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & DatabaseName & ";"    ' Create a new table.
        Set tbl = New ADOX.Table
        tbl.Name = "TestTable"
        tbl.Columns.Append "FirstName", adVarWChar, 40
        tbl.Columns.Append "LastName", adVarWChar, 40
        tbl.Columns.Append "Birthdate", adDate
        tbl.Columns.Append "Weight", adInteger
        cat.Tables.Append tbl 
       
        '设置列可以为NULL    
        tb1.columns("Weight").Attributes=AdColNullable
       '或者tb1.Columns("Weight").Properties("Jet OLEDB:Allow Zero Length") = True

        ' Connect to the database.
        Set con = cat.ActiveConnection    ' Insert records.
        con.Execute "INSERT INTO TestTable VALUES ('Andy', 'Able', '1 Jan 1980', '150')"
        con.Execute "INSERT INTO TestTable VALUES ('Betty', 'Baker', #2/22/1990#, 70)"    ' Close the database connection.
        con.Close
        Set con = Nothing
        Set tbl = Nothing
        Set cat = Nothing
      

  2.   

    dim db as database
    dim mdbfile as string'库的文件名
    建库
    set usedb=createdatabase(mdbfile,dbLangGeneral)
    建表
    USEdb.Execute "create table  fileinfo(bh text(20),mc text(50),bz text(8),rq date,fh text(8))"
      

  3.   

    如果是用access的话,vb只支持老版的,2000后不行
    如果在其他电脑上是用2000版,还得转化
      

  4.   

    谢谢答复。但楼上的我有些不明白,我现在避开这个问题,每次不新建而是调用一个已经建立好的 .mdb 文件, 在有个机器上变得可以运行,在另外的又不行,我是vb5
      

  5.   

    楼上的是说VB只支持老版本的access,他可能以为你在其他机器上又重新建了个数据库,而该数据库却是新版的。
      

  6.   

    我现在不新建数据库,而是调用一个本机win2000上已经建好的(每次将该数据库复制到.exe相同的目录),在另一台win2000的机器上可以正确读出该数据库,但在好些98和一个2000上却出问题,有没有碰到过类似情况的?
      

  7.   

    差不多肇到问题了,怎么这么多98上面要重新注册dao350.dll,有office也没用,针麻烦