為何我新建的數据庫和表不能加記錄啊? 
是否還要在哪里設定?

解决方案 »

  1.   

    你用什么做数据库啊?你可以直接在vb中用sql语句对表进行操作啊?
      

  2.   

    我用的是ADO + datagrid 
    是在創建數据庫出了問題. 我查到了. 到不知道是怎么回事情.以下是原碼:Dim cat As New ADOX.Catalog
    Public Sub newfile()
    CommonDialog1.DialogTitle = "Please enter the new database name"
    CommonDialog1.Filter = "Access database file MDB|*.mdb"
    CommonDialog1.FileName = ""
    CommonDialog1.InitDir = App.Path
    CommonDialog1.ShowSave
    dataname = CommonDialog1.FileName
    If dataname = "" Then
        Exit Sub
    Else
        cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dataname    
    End If
    End Sub創建數据表應該沒問題. 我在其他原有的數据庫上創數据表. 可以加數据記錄.
      

  3.   

    你是想在已有的数据库中建表么?还是干脆建一个新的数据库?
    下面是往已有数据库中建表代码,你改一下应该有用:
    Set dbs = DBEngine.Workspaces(0).OpenDatabase(DatabasePath, False, False)
    On Error Resume Next
        Set tdfNew = dbs.TableDefs(TableName & "Outputtemp")
    If Err.Number <> 0 Then
        Set tdfNew = dbs.CreateTableDef(TableName & "Outputtemp")
        tdfNew.Fields.Append tdfNew.CreateField(Col1, dbText)
        tdfNew.Fields.Append tdfNew.CreateField(Col2, dbText)
        tdfNew.Fields.Append tdfNew.CreateField(Col3, dbText)
        tdfNew.Fields.Append tdfNew.CreateField(Col4, dbText)
        dbs.TableDefs.Append tdfNew
    End If
    On Error GoTo 0
    Set Rs = tdfNew.OpenRecordset()Call AddRecord(Valright1, Valright2, Valleft1, Valleft2)Private Sub AddRecord(Field1 As String, Field2 As String, Field3 As String, Field4 As String)
    Rs.AddNew
    Rs(0) = Field1
    Rs(1) = Field2
    Rs(2) = Field3
    Rs(3) = Field4
    Rs.Update
    End Sub
      

  4.   

    对不起,忘了你是用ADO了,我上面的是用的DAO3.6
    如果你非要用ADO 的话,我再给你一段代码,你改一下应该有用:
    '引用ADO 2.5
    Dim Conn As New ADODB.Connection
    Dim Strconn As String
    Strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabasePath & ";Persist Security Info=False"
    Conn.CursorLocation = adUseClient
    Conn.Open Strconn'建表
    call conn.execute ("create table 表名")
    '加字段
    Call Conn.Execute("alter table " & TableName & " add 字段名 varchar(40) null")
    '加记录
    call conn.execute ("insert into 表名 values()")
      

  5.   

    ADOX是什么东东?不懂的问……