【发布时间】:2016-03-31 21:30:36
【问题描述】:
我的工作中有一个项目有问题。我有一个关于 Sharepoint 的数据库。它已连接到 .accdb 文件 (Access 2007/2010)。到目前为止,我使用 ADODB Connection 和标准 ConnectionString(仅限 Provider - ACEDB 12.0)。
当我尝试从数据库中的一个多值字段中获取数据时,该列的记录集为空。示例:
我必须得到几列:ID、位置、姓名、人员 (MVF)、培训师 (MVF)。
当人员列中的单个记录具有超过 3-4 个值时 - 此列的记录集为空。如果少于 3-4 个值,我将得到以分号分隔的值(即使是获取 MVF 源数据的 LEFT JOIN 语句也没有任何区别)
我正在使用 Excel - 最终用户只使用 Excel。
当我观看 Recordset 时 - 当人们的值应该被放置时它有空值 - 基于此,我认为问题是由连接类型或其他原因引起的。我也尝试过 DAO 连接 - 没有积极的结果。
我还尝试在 .accdb 文件中创建一个临时数据库,仅用于执行 SQL(INSERT INTO tmpDB SELECT People FROM inputDB;-这是一个伪代码,语法很好)然后我得到“无法执行 INSERT INTO 表示多值字段”。
我知道,不推荐使用 MVF,但它是 SharePoint DB,我的角色只是将数据从 db 获取到 Excel。
更新
我尝试使用 ODBC 驱动程序...
objConn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=" & myconn & ";Uid=Admin;Pwd=;"
...而不是 OLEDB 提供程序...
objConn.Provider = "Microsoft.ACE.OLEDB.12.0"
objConn.Open myconn
...但现在 MVF 始终为空。
【问题讨论】:
-
您是否尝试过使用 Access ODBC 驱动程序而不是 OLEDB 驱动程序,看看效果是否更好?
-
它会有所帮助。我明天去看看。
标签: excel vba ms-access sharepoint