使用ODBC查询Access 2007多值字段

时间:2009-08-06 01:22:25

标签: sql ms-access odbc

我有一个Access 2007数据库,它对其中一个字段使用“附件”数据类型(Access 2007中的新增内容)。这个字段是一个神奇的“多值”字段,可以包含多个附件。

我希望能够使用单个ODBC查询轻松查看数据库中所有行的此字段的内容。理想情况下,原始表的每一行应该只有一行,我希望所有附件都作为单个数据库单元返回。在一个完美的世界中,可以使用单个INSERT INTO查询将该组附件重新插入另一个表中。

我认为这可能是一个很高的要求,所以如果必须,我会满足于:

  • 一个SQL查询,告诉我给定附件字段中的附件数量

或最坏的情况:

  • 一个SQL查询,它告诉我给定行中的附件是否为空。

我似乎无法在网上找到任何关于多值字段的好文档。也许他们太新了。

思想?

(P.S。不要打扰告诉我多值字段是邪恶的。我已经知道了。我不是制作数据库的人。)

2 个答案:

答案 0 :(得分:3)

如果您可以使用ADO,则使用连接字符串中的OLEDB:Support Complex Data=True连接到数据源而不并查询列:您应该获得类型为adLongVarWChar的列( ie MEMO)其中值是由分号字符分隔的文件名。因此,获取文件列表只需要一个简单的解析。

可能可以使用ADO获取附件,但我还没有看到它完成。使用OLEDB:Support Complex Data=True表示您将获得类型为adIDispatch的列,即对象。那个对象是什么,我不知道(我希望它会是一个ADODB.Recordset,但不会去。)

答案 1 :(得分:1)

请参阅http://www.access-freak.com/tutorials.html#Tutorial07获取一些信息,尽管他没有好的截图或查询的SQL。他的网站也不是最好的格式或可读。

这假设您正在从Access 2007内部运行查询。如果要通过ODBC运行它,请参阅http://groups.google.ca/group/microsoft.public.data.odbc/browse_thread/thread/d0ee29cc5e54e0fb