Python 使用组合框写入 Access db

Posted

技术标签:

【中文标题】Python 使用组合框写入 Access db【英文标题】:Python write to Access db with comboboxes 【发布时间】:2014-02-11 14:53:58 【问题描述】:

美好的一天,我遇到了一个问题,我想看看是否有人知道如何解决这个问题,我有一个 python 脚本来控制访问中的字段。我需要能够查看该字段中的数据并将新信息写入数据库。我知道我需要使用 UpdateCursor。但是当我运行它时,我得到了几个错误,我不知道如何修复的错误。我是 python 新手。我只是想将组合框中的新数据写入 mdb。这是我表中一个字段的一个类。

class ISDComboBoxClass3(object):
"""Implementation for WOformV2_addin.combobox (ComboBox)"""
def __init__(self):
    #self.items = ["12/1/2000", "5/3/2010"]
    self.editable = True
    self.enabled = True
    self.dropdownWidth = 'WWWWWW'
    self.width = 'WWWWWW'
def onSelChange(self, selection):
    pass
def onEditChange(self, text):
    fc = 'C:\GISdata\WO\WorkOrderData.shp'
    field1 = "ISD"

    cursor = arcpy.UpdateCursor(fc)
    for row in cursor:
        row.setValue(field1)
        cursor.updateRow(row)
def onFocus(self, focused):
    fc = 'C:\GISdata\WO\WorkOrderData.shp'
    field1 = "ISD"

    cursor = arcpy.UpdateCursor(fc)
    for row in cursor:
        row.setValue("ISD")
        cursor.updateRow(row)

def refresh(self):
    pass

【问题讨论】:

您收到什么错误?哪部分出错了?您使用的是名为 ARCGis 的库吗? 我确定,专门导入arcpy。错误是:“回溯(最近一次通话最后一次):文件“C:\Documents and Settings\204031\Local Settings\Application Data\ESRI\Desktop10.1\AssemblyCache\B46383D0-A9F1-8290-F9E7-53A0C7E79428\ WOformV2_addin.py",第 33 行,在 onFocus lyr = arcpy.mapping.ListLayers(mxd, "ISD", df)[0] IndexError: list index out of range 【参考方案1】:

查看 ArcGIS 文档,看起来 row.setValue 需要 2 个参数。 示例:row.setValue(FieldIndex, value) http://resources.arcgis.com/en/help/main/10.1/index.html#//018v00000064000000

【讨论】:

以上是关于Python 使用组合框写入 Access db的主要内容,如果未能解决你的问题,请参考以下文章

我可以在从 Access DB 填充的组合框顶部添加一个额外的行吗

MS Access:为啥我的组合框显示错误的值?

MS Access:从 SQL 传递组合框值

将我的数据从 access 2003 db 获取到 c# 的问题(dbReader.GetString 错误)

MS ACCESS - 如何在更改事件中获取未绑定组合框的当前列值

acNewRec 不适用于组合框 NotInList