QGIS 2.4访问.mdb添加错误


9

因此,我按照此处的说明进行操作:QGIS可以读取ODBC连接吗?将.mdb添加到QGIS中。在大约1/3的位置上有很好的说明。但是我仍然无法打开它。我在装有QGIS 2.4的Windows 7上重新启动了QGIS和计算机。我仍然收到错误:“无效的数据源:ODBC:co2014ProdSumm(顺便说一下,这是.mdb)不是有效的或公认的数据源。”

这些不是矢量层,也不是ESRI个人地理数据库。这是一个Access数据库,其中需要2个表。

我还发现了其他一些文章 如何在Qgis(使用Windows 7)中访问.mdb文件(Microsoft Access)? 如何将信息从mdb文件导入到项目中?

而这可能是答案,但我不知道它在说什么: QGIS中的Microsoft Access mdb“不是有效或公认的数据源”

有什么方法可以将.mdb添加到QGIS中?另外,我的计算机上没有Access。

编辑1:我希望这可以澄清我的问题。每次我获得无效的数据源:C:... Co 2014年度生产摘要-xp.mdb不是有效的或公认的数据源。这是我添加访问连接的地方

这是我添加访问连接的地方

尝试添加为矢量文件 添加为矢量文件

尝试添加数据库时,我还尝试了local:host 3000无论源,名称等,图片中的错误都是相同的...我尝试更改所有字段。 在此处输入图片说明


您是否遵循“ QGIS可以读取ODBC连接”问题中的“接受的答案” (此处链接为我的答案)说明吗?
RyanKDalton 2014年

是的,这些是我所指的说明。当我进入QGIS以添加.mdb文件时,它失败了。
TJ

我进行了更新以概述每个步骤。我也遵循x64的说明。我事先检查过。
TJ

我已经完成了所有步骤,并且能够为mdb文件创建ODBC连接,但是当我使用ESRI Personal Geodatabase选项时,它会显示一条错误消息。¿文件有问题吗?¿该文件是否不是地理数据库文件?谢谢

Answers:


12

请注意,有两种方法可以执行此操作。您要做的事情很漫长,但这就是我要在这里展示如何做的方法。另一种方法是,只需添加“矢量层”,然后选择文件,然后浏览到.mdb文件所在的位置并打开.mdb文件。

首先,您需要确保使用的是QGIS 32位版本。下载并安装Windows 32位QGIS。您需要32位版本的QGIS,因为Microsoft不会为Access(.mdb)创建64位驱动程序。Esri ArcMap也是32位的,因此它可以使用.mdb文件。

其次,您需要创建一个DSN(数据源名称)。要创建DSN,请转到开始按钮,然后单击它。

开始按钮

接下来在搜索框中,键入%windir%\ SysWoW64 \ odbcad32.exe,然后单击odbcad32.exe程序。

ODBC数据源窗口

单击系统DSN选项卡

在此处输入图片说明

单击添加按钮以添加dsn,以便可以访问ODBC和Esri Personal Database.mdb。单击添加按钮后,将出现一个新对话框。在此对话框中,选择“ Microsoft Access驱动程序(* .mdb)”,然后单击“完成”。

添加访问驱动程序

单击完成后,将出现另一个对话框。在此对话框中,将QGIS用作数据源名称。

资料来源名称

接下来单击数据库下的选择按钮。选择此按钮后,将出现另一个对话框,即选择数据库对话框。

在此处输入图片说明

在此对话框中,您需要导航到.mdb文件。进入文件夹后,.mdb文件将出现在左侧框中。选择您的.mdb文件,然后单击“确定”。

最终选择

现在,您应该看到ODBC Microsoft Access安装对话框。对话框应显示您的.mdb文件,如下图所示。

在此处输入图片说明

现在,在对话框上单击“确定”。还要注意,数据源名称是QGIS。设置ODBC .mdb / Esri Personal GeoDatabase.mdb时,将使用此名称。单击“确定”后,您将看到如下所示的对话框,其中显示了您刚创建的DSN。单击此对话框上的“确定”以将其关闭。

在此处输入图片说明

现在打开QGIS 2.4并添加“添加矢量层” 在此处输入图片说明

现在,选择数据库,然后选择所需的编码,然后在数据库类型下选择Esri Personal GeoDatabase

在此处输入图片说明

现在,在同一对话框中,单击“新建”按钮

在此处输入图片说明

将出现一个新对话框。在此对话框上,填写“类型”,“名称”和“数据库”字段。对于类型字段,选择Esri个人地理数据库。对于名称,键入任何您想要的。在“数据库”字段中,键入QGIS。请注意,QGIS与我们之前创建的DSN相同。

在此处输入图片说明

现在单击测试按钮。

在此处输入图片说明

如果一切设置正确,单击测试按钮后,您会看到此信息。

在此处输入图片说明

接下来,单击确定以关闭测试,然后单击确定以完成数据库连接。

在此处输入图片说明

现在,您应该看到为连接指定的名称,然后单击“打开”按钮。单击打开后,它将要求输入密码。除非数据库有密码,否则只需单击“确定”。

在此处输入图片说明

在密码对话框上单击“确定”后,您将看到如下对话框:

在此处输入图片说明

选择您的图层,然后单击确定。选择所需的图层并单击确定后,将看到另一个对话框。该对话框用于设置坐标参考。

在此处输入图片说明

我们完成了!您可以使用常规.mdb或Esri Personal GeoDatabase进行此操作。为此,您需要创建一个DSN,然后建立连接。有一种更简单的方法,那就是添加矢量并确保选择了File,然后浏览到.mdb。注意,您需要QGIS 32位才能使用.mdb数据库。

在此处输入图片说明


感谢您的帮助,但不会加载表格。它显示错误,但下一条错误消息为空白。所以现在我不知道该怎么办。我确实下载了Qgis 32bit并重新开始。我什至尝试只添加然后单击并拖动,它会拉入表格,但它们都是空白。同样,在64位计算机上的Qgis 32bit运行非常缓慢,并且在您尝试打开它时抛出错误。所以我不建议使用32位和64位。
TJ

@GisDoodler,好帖子!
RyanKDalton 2014年

简直美极了!上面提供的说明非常有效!非常感谢您的贡献和所花的时间!

@GisDoodler:非常感谢!当我改用32位QGIS时,长短方法都适用于我。但是,需要注意的一点是:如果一个人在.mdb文件中包含长名称的表,则它们将无法正确链接。只有名称少于或等于8个字符(没有空格,没有特殊字符)的表才能正确链接。
莎拉德

0

从GisDoodler添加到ODBC帖子中,您可以使用虚拟文件连接到Access数据库的表,并手动定义Geometry列。虚拟文件如下所示:

<OGRVRTDataSource>

<OGRVRTLayer name="worms">
    <SrcDataSource>ODBC:DISEASE,worms</SrcDataSource>
<SrcLayer>worms</SrcLayer>
<GeometryType>wkbPoint</GeometryType>
    <LayerSRS>WGS84</LayerSRS>
<GeometryField encoding="PointFromColumns" x="x" y="y"/>
</OGRVRTLayer>

</OGRVRTDataSource>

您仍然需要做ODBC-DSN的工作,并且需要32位版本的QGIS。无需打开数据库连接,而是将vrt文件添加到目录中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.