象这样也行Dim cnn As New ADODB.Connection Dim cmd As New ADODB.Command Dim rst As New ADODB.Recordset Dim strCnn As Stringcnn.Provider = "Microsoft.Jet.OLEDB.3.51" cnn.Open App.path + "\xxx.mdb", "admin", ""cmd.ActiveConnection = cnn 'cmd.CommandText = "select *"rst.LockType = adLockOptimistic rst.Open "xx", cnn, , , adCmdTable
这是我的一段程序!! 好用的! 你看看! Private Sub cmddk_Click() 'On Error Resume Next comdialog.DialogTitle = "´ò¿ªExecelÎļþ" comdialog.Filter = "ExecelÎļþ|*.xls" comdialog.ShowOpen File = comdialog.FileName If File = "" Then Exit Sub Else flag = True If conn.State = adStateOpen Then conn.Close conn.Open "Driver={Microsoft Excel Driver (*.xls)};dbq=" & File End If End Sub 对了。这里面有一个commandialog.你要添加一个。
给lzy5042(老山) 和 Amoon(阿木)我们需要的不是连接,因为连接已经成功了,最主要的问题是无法新增一条记录 with Adodb1.recordset .Addnew !F1="张三" .Update End with 错误在Update时,说表名Sheet1$找不到
用EXCEL做数据库,好像不能写入的。
啊,没解决啊。 试试这个吧,我调过的,是可以的,没有错的,........的! Dim adoCatalog As ADOX.Catalog Dim conn As Connection Dim intTableIndex As Integer Dim intFieldIndex As Integer Dim rs As Recordset Dim strFieldValues As String
Set conn = New Connection Set adoCatalog = New Catalog
另外,SET方法也不行,我试过了
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
Dim strCnn As Stringcnn.Provider = "Microsoft.Jet.OLEDB.3.51"
cnn.Open App.path + "\xxx.mdb", "admin", ""cmd.ActiveConnection = cnn
'cmd.CommandText = "select *"rst.LockType = adLockOptimistic
rst.Open "xx", cnn, , , adCmdTable
好用的!
你看看!
Private Sub cmddk_Click()
'On Error Resume Next
comdialog.DialogTitle = "´ò¿ªExecelÎļþ"
comdialog.Filter = "ExecelÎļþ|*.xls"
comdialog.ShowOpen
File = comdialog.FileName
If File = "" Then
Exit Sub
Else
flag = True
If conn.State = adStateOpen Then conn.Close
conn.Open "Driver={Microsoft Excel Driver (*.xls)};dbq=" & File
End If
End Sub
对了。这里面有一个commandialog.你要添加一个。
我很少回答问题。大部分都是提问!!!呵呵!!!
with Adodb1.recordset
.Addnew
!F1="张三"
.Update
End with
错误在Update时,说表名Sheet1$找不到
试试这个吧,我调过的,是可以的,没有错的,........的! Dim adoCatalog As ADOX.Catalog
Dim conn As Connection
Dim intTableIndex As Integer
Dim intFieldIndex As Integer
Dim rs As Recordset
Dim strFieldValues As String
Set conn = New Connection
Set adoCatalog = New Catalog
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""c:\book1.xls"";User ID=Admin;Password=;Extended properties=Excel 5.0"
conn.Open
Set adoCatalog.ActiveConnection = conn
For intTableIndex = 0 To adoCatalog.Tables.Count - 1
Debug.Print adoCatalog.Tables(intTableIndex).Name
Next
Set rs = New Recordset
With rs
.CursorLocation = adUseClient
End With rs.Open "select * from [" & adoCatalog.Tables(0).Name & "]", conn
MsgBox rs.RecordCount
For intFieldIndex = 0 To rs.Fields.Count - 1
strFieldValues = strFieldValues & CStr(intFieldIndex) & ","
Next
strFieldValues = Left(strFieldValues, Len(strFieldValues) - 1)
conn.Execute "Insert Into [" & adoCatalog.Tables(0).Name & "] Values(" & strFieldValues & ")"
conn.Close
Set conn = Nothing
Set adoCatalog = Nothing
Dim adoCatalog As ADOX.Catalog
这个ADOX如何能调出来呢?我按你的程序,VB提示对象未定义
再次感谢!
我们的语句在win2000下是对的 但是在98,NT不行,希望同行以后注意。
现已用别的办法解决!谢谢,开始给分!!!!!!
TO luanjiajia() :
你们用的第二种方法是什么呢,可以介绍下吗?
[email protected]