我用的是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創建數据表應該沒問題. 我在其他原有的數据庫上創數据表. 可以加數据記錄.
你是想在已有的数据库中建表么?还是干脆建一个新的数据库? 下面是往已有数据库中建表代码,你改一下应该有用: 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
对不起,忘了你是用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()")
是在創建數据庫出了問題. 我查到了. 到不知道是怎么回事情.以下是原碼: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創建數据表應該沒問題. 我在其他原有的數据庫上創數据表. 可以加數据記錄.
下面是往已有数据库中建表代码,你改一下应该有用:
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
如果你非要用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()")