乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 31|回复: 1

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

[复制链接]

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2008-10-22 13:08:27 | 显示全部楼层 |阅读模式
我有一个块名列表,需要将它们与外部列表进行比较。我在考虑使用TXT文件,因为它很容易更新。我目前的思路是循环遍历块列表(存储在字典中),在每次循环过程中,打开TXT文件,循环查看块名称是否匹配,如果匹配,则继续执行程序的其余部分。对此过程有何想法/建议?我愿意接受不同的建议。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

86

主题

744

帖子

6

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1092
发表于 2008-10-22 13:34:07 | 显示全部楼层
在搜索旧程序时,我发现了这个。它使用Excel文件作为数据库。原始程序循环通过选择集并搜索具有属性的特定块。然后将属性文本与Excel文件中的单元格进行比较。从那里,Excel中的其他信息被拉入并转储到AutoCAD中的表对象中,创建一种“动态”表。
  1.     Dim x As Integer
  2.     For x = 0 To UBound(objKeys)
  3.         [color=red]GetLightInfo[/color] UCase(objKeys(x))
  4.         objTable.InsertRows objTable.Rows, 0.59375, 1
  5.         objTable.Update
  6.         objTable.SetText objTable.Rows - 1, 0, objDict(objKeys(x))
  7.         objTable.SetText objTable.Rows - 1, 1, UCase(objKeys(x))
  8.         objTable.SetText objTable.Rows - 1, 2, strMfg
  9.         objTable.SetText objTable.Rows - 1, 3, strDesc
  10.         objTable.SetText objTable.Rows - 1, 4, strVolts
  11.         objTable.SetText objTable.Rows - 1, 5, strLamps
  12.     Next x
  1. Option Explicit
  2. Public cn As ADODB.Connection
  3. Public rsT As ADODB.Recordset
  4. Public rsC As ADODB.Recordset
  5. Public Sub [color=red]GetLightInfo[/color](strID As String)
  6.     Dim strQuery As String
  7.     Dim rstQuery As New ADODB.Recordset
  8.    
  9.     OpenExcelDatabase
  10.    
  11.     strQuery = "SELECT * FROM [SCHEDULE_DATABASE$]"
  12.     rstQuery.Open strQuery, cn, adOpenKeyset, adLockReadOnly
  13.     rstQuery.Filter = "TYPE = '" & strID & "'"
  14.    
  15.     Do While Not rstQuery.EOF
  16.         Debug.Print rstQuery!Type
  17.         strDesc = rstQuery!Description
  18.         strMfg = rstQuery("MFR & SERIES")
  19.         strVolts = rstQuery!VOLTS
  20.         strLamps = rstQuery!LAMPS
  21.         rstQuery.MoveNext
  22.     Loop
  23.     rstQuery.Close
  24.    
  25.     CloseExcelDatabase
  26. End Sub
  27. Private Sub OpenExcelDatabase()
  28.     Dim intTblCnt As Integer, intTblFlds As Integer
  29.     Dim strTbl As String
  30.     Dim intColCnt As Integer, intColFlds As Integer
  31.     Dim strCol As String
  32.     Dim t As Integer, c As Integer, f As Integer
  33.    
  34.     Set cn = New ADODB.Connection
  35.    
  36.     With cn
  37.         .Provider = "Microsoft.Jet.OLEDB.4.0"
  38.         .ConnectionString = "Data Source=" & _
  39.         "E:\Luminaire.xls;Extended Properties=Excel 8.0;"
  40.         .CursorLocation = adUseClient
  41.         .Open
  42.     End With
  43. End Sub
  44. Private Sub CloseExcelDatabase()
  45.     On Error Resume Next
  46.     rsT.Close
  47.     rsC.Close
  48.     cn.Close
  49. End Sub
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 01:51 , Processed in 2.592144 second(s), 57 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表