首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IBMSPSS20独立数据文件驱动程序编程创建ODBC数据源

使用IBMSPSS20独立数据文件驱动程序编程创建ODBC数据源
EN

Stack Overflow用户
提问于 2012-12-06 14:39:49
回答 2查看 1.1K关注 0票数 1

问题:

我有一个.sav文件,其中包含了大量来自问卷的数据。此数据通过使用VBA的ODBC连接传输到access数据库。许多不太懂技术的同事正在使用VBA宏,每次他们需要使用一个新的.sav文件时,都需要创建或更改一个连接。每一次解释都很仓促,所以我希望能够以编程的方式创建这个连接(理想情况下包含在VBA宏中,但如果不可能,就像python脚本那样)。

我想到的解决方案:

我对VBA不太熟悉,所以首先我尝试用python来做它。我找到了这个例子,在我看来,这似乎是一个解决方案:

http://code.activestate.com/recipes/414879-create-an-odbc-data-source/

但是,我不确定要为SQLConfigDataSource提供哪些参数。我试过:

代码语言:javascript
复制
create_sys_dsn(
    'IBM SPSS Statistics 20 Data File Driver - Standalone',
    SDSN='SAVDB',
    HST='C:\ProgramFiles\IBM\SPSS\StatisticsDataFileDriver\20\Standalone\cfg\oadm.ini',
    PRT='StatisticsSAVDriverStandalone',
    CP_CONNECT_STRING='data/Dustin_w44-47_2011.sav',
    CP_UserMissingIsNull=1)

但没有结果。

在这个领域,我是绿色的,我意识到我提出的解决方案可能不是正确的。堆栈溢出有什么想法吗?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 13:05:06

对于任何碰巧需要解决这个问题的人,我最终所做的是通过手工编辑注册表来创建系统DSN。

要查看哪些键和值需要修改,请手动创建系统DSN,并检查'HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INIDSN‘和'HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC数据源中的值。应该相当清楚如何通过VBA创建DSN。

票数 0
EN

Stack Overflow用户

发布于 2012-12-06 17:16:48

拥有文件名后,从提示符(如

代码语言:javascript
复制
dim fd as Object
dim CSVFilename as String
Set fd = Application.FileDialog(3)
'Use a With...End With block to reference the FileDialog object.
With fd
    .AllowMultiSelect = False
    .Filters.Add "Data Files", "*.csv", 1
    .ButtonName = "Forecast"
    If .Show = -1 Then
        CSVFilename = .SelectedItems(1) 
        ' returns an array, even with multiselect off
    Else
        Exit Sub
    End If
End With
'Set the object variable to Nothing.
Set fd = Nothing

然后,您应该能够构造连接字符串,这将允许您打开文件。

代码语言:javascript
复制
Dim MyConnect as new Connection

With MyConnect
    .Provider="IBM SPSS Statistics 20 Data File Driver - Standalone"
    .ConnectionString="data/" & CSVFilename
    .Open
End With

我还要指出,如果您可以使用(或等效的)导入External Data -> Text File csv文件,则命令更类似于

代码语言:javascript
复制
DoCmd.TransferText(TransferType, SpecificationName, TableName, FileName, _
    HasFieldNames, HTMLTableName, CodePage)

可能对你来说更容易

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13745922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档