Matt__W 发表于 2008-10-22 13:08:27

将块名称与外部列表进行比较

本人'我有一个块名列表,需要将它们与外部列表进行比较 我在考虑使用TXT文件,因为它很容易更新 我目前的思路是循环浏览块列表(存储在字典中),在每次循环期间,打开TXT文件,循环浏览该文件以查看块名称是否匹配,如果匹配,则继续执行程序的其余部分 对这个过程有什么想法/建议吗 本人'我愿意接受不同的建议。

Matt__W 发表于 2008-10-22 13:34:07

在搜索旧程序时,我发现了这个 它使用Excel文件作为数据库 原始程序循环通过选择集并搜索具有属性的特定块 然后将属性文本与Excel文件中的单元格进行比较 从那里,Excel中的其他信息被拉入并转储到AutoCAD中的表对象中,创建一种类型的;“动态”;表    Dim x As Integer
    For x = 0 To UBound(objKeys)
      GetLightInfo UCase(objKeys(x))
      objTable.InsertRows objTable.Rows, 0.59375, 1
      objTable.Update
      objTable.SetText objTable.Rows - 1, 0, objDict(objKeys(x))
      objTable.SetText objTable.Rows - 1, 1, UCase(objKeys(x))
      objTable.SetText objTable.Rows - 1, 2, strMfg
      objTable.SetText objTable.Rows - 1, 3, strDesc
      objTable.SetText objTable.Rows - 1, 4, strVolts
      objTable.SetText objTable.Rows - 1, 5, strLamps
    Next x
Option Explicit
Public cn As ADODB.Connection
Public rsT As ADODB.Recordset
Public rsC As ADODB.Recordset
Public Sub GetLightInfo(strID As String)
    Dim strQuery As String
    Dim rstQuery As New ADODB.Recordset
   
    OpenExcelDatabase
   
    strQuery = "SELECT * FROM "
    rstQuery.Open strQuery, cn, adOpenKeyset, adLockReadOnly
    rstQuery.Filter = "TYPE = '" & strID & "'"
   
    Do While Not rstQuery.EOF
      Debug.Print rstQuery!Type
      strDesc = rstQuery!Description
      strMfg = rstQuery("MFR & SERIES")
      strVolts = rstQuery!VOLTS
      strLamps = rstQuery!LAMPS
      rstQuery.MoveNext
    Loop
    rstQuery.Close
   
    CloseExcelDatabase
End Sub
Private Sub OpenExcelDatabase()
    Dim intTblCnt As Integer, intTblFlds As Integer
    Dim strTbl As String
    Dim intColCnt As Integer, intColFlds As Integer
    Dim strCol As String
    Dim t As Integer, c As Integer, f As Integer
   
    Set cn = New ADODB.Connection
   
    With cn
      .Provider = "Microsoft.Jet.OLEDB.4.0"
      .ConnectionString = "Data Source=" & _
      "E:\Luminaire.xls;Extended Properties=Excel 8.0;"
      .CursorLocation = adUseClient
      .Open
    End With
End Sub
Private Sub CloseExcelDatabase()
    On Error Resume Next
    rsT.Close
    rsC.Close
    cn.Close
End Sub
页: [1]
查看完整版本: 将块名称与外部列表进行比较