回复 43楼 罗达
不知道你用的是不是accdb 格式。 一般来说,不会出现你说的哪种情况。我现在就是用accdb 做数据库。联接是完全没有问题的。 下面是我以前用过的一些連接代码
给你参考一下。
在模块中的代码******************************

程序代码:
'*****************************************************************************************
'03函数名: OPENACCESS
'函数功能: 打开数据库形成一个记录集(myPath ,myTable是全局变量)
'*****************************************************************************************
Function OPENACCESS(SQL As String) ''
On Error GoTo errmsg ' 改变错误处理的方式。
Dim cnn '定义数据库连接和SQL语句
Set cnn = CreateObject("adodb.connection") '定义CNN为一个数据集
Set RS = CreateObject("adodb.recordset") '创建一个数据集保存数据
If Application.Version * 1 <= 11 Then
cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & myPath & " ; jet oledb:database password=" & "0745" '//0745是数据库密码
Else
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & myPath & ";jet oledb:database password=" & "0745"
End If
RS.Open SQL, cnn, 1, 3 '创建一个可以读写的数据集’// 这一句也可以不写在模块里
GoTo 111
errmsg:
MsgBox Err.Description, , "错误报告"
111
End Function
*****应用中**************************

程序代码:
Private Sub Command信息删除_Click()
'On Error GoTo errmsg
If MsgBox("是否删除【" & Me!客户简称 & "】的所有信息资料?", 32 + vbYesNo, "系统提示!") = vbYes Then
Rem 定义数据路径
myPath = 下载路径("数据库路径") & "\2商务项目.accdb" '//下载路径是定义的一个函数,用来抓取存在数据库中备存的各种路径,这里可以直接换成路径
myTable = "B1客户列表"
Rem 结束
SQL = "SELECT * FROM " & myTable & " where 客户编号='" & Me!客户编号 & "'"
OPENACCESS (SQL)
RS.Delete
RS.Close
Set RS = Nothing
Rem 清空
Call 清空控件(Me.Form)
MsgBox "删除记录成功", , "系统提示!"
End If
Call Command查询_Click
Me!B1客户管理子窗.Requery '//刷新
Application.RefreshDatabaseWindow
Exit Sub
errmsg: MsgBox "数据库内没有" & Me!客户编号 & "这个编号记录", , "系统提示!"
End Sub
另外用VBA开发的话,建议用Access来开发,在一定程度上还要优于VB, 主要缺点就是在要别人的电脑上安装Access ,比较麻烦。不推荐用EXCL开发,因为EXCL基本上每台办公电脑都会要用到,有的人喜欢office,有的人喜欢wps,而且就算全用excel,版本不一致还是很多不适配。让所有的电脑统一用同一版本的excl比较麻烦,你布署软件运行就很麻烦。ACCess的话用于日常处理办公的人很少,软件冲突的可能性要小很多