CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
12
返回列表 发新帖
楼主: gysheng

cad统计材料表

[复制链接]
发表于 2008-10-17 16:08 | 显示全部楼层
下载不了了????
发表于 2008-10-17 16:10 | 显示全部楼层
怎么下载啊,为什么下不了?
发表于 2008-10-20 15:19 | 显示全部楼层
不知道是做什么用的
发表于 2008-12-10 13:25 | 显示全部楼层

顶起

请用过的同志说明一下怎么用
发表于 2009-1-6 13:04 | 显示全部楼层
Sub list() " p$ w- C. |' Y6 _& @; g# M: _
Dim work As Workspace
6 }' }( j4 F9 t* y( a- uDim new As Database
, [% c8 S1 ?! B5 j6 ?Dim elem As Object
( c/ U8 J0 M; o' a# R0 o6 hDim rs As Recordset
+ [6 Z+ `! m+ fDim RowNum As Integer 0 k! x& i7 e' G0 M& D
Set work = DBEngine.Workspaces(0) 2 g0 U. l& W4 H% p' E* A  R
Dim dbs As Database
" p, I$ z! S' P8 I+ EDim tdfNew As TableDef ' _0 f2 X0 d0 S- q. E
Dim tdf As TableDef   g/ B5 l9 p+ o, N# c- V
Dim dbsname As String 3 L% `5 ]0 X! `1 f
Dim array1 As Variant 3 R) F7 p$ ?3 \$ Z, ?6 D
Dim array2 As Variant ‘声明所需的变量及类型
" K" |; M( l6 B. _+ Ndbsname = “D:\材料表.mdb”
; p  ^7 P# M0 {" ]% @2 H2 b+ o‘声明Access数据库写到哪一个文件
7 q& U+ Q) J0 l, W7 e1 P) R0 OOn Error Resume Next
; D  n& L* N. D1 @* _8 ]Set dbs = work.CreateDatabase(dbsname, _ $ O. g+ y- @4 ~/ J2 `  e8 I1 K
dbLangGeneral)
9 m7 G& s7 R2 m1 jIf Err Then
) d5 m/ L# O3 DKill (dbsname)
) N# N3 {7 u5 M5 J! P3 z‘发现要写入的Access数据库文件已存在就将其删除 . D  S! |* q/ H) M  J1 s1 Y
Set dbs = work.CreateDatabase(dbsname, _ 1 p4 j# S6 `/ i: S( I
dbLangGeneral)
9 |0 d- }3 N8 N; PEnd If
2 N5 n+ o( k1 N7 T( u/ ~: a$ W  m$ @Set tdfNew = dbs.CreateTableDef
9 }. c/ S/ `& N! a(“电气 _材料明细表”) ) q% h9 `7 r, C" K, p4 `
‘建立一个名为电气材料明细表的表 5 U9 U) Q0 s/ U2 W5 Y- Q7 N
RowNum = 0
* c2 a# I  @7 q" o. u; T1 R4 aDim Header As Boolean
* O7 k& B7 t- j  S, ?& O* i6 iHeader = False . m9 s/ f+ X/ t# _* |" S; [
For Each elem In ThisDrawing.ModelSpace ) L" z0 w  j/ c& Y) M9 o
‘在CAD模型空间,查找所有图形对象
; C  ?# A& C# P. MWith elem
& J5 F* e# T) _If StrComp(.EntityName,_ ; j' t, b) j4 {& O* ?0 v
“AcDbBlockReference”, 1) = 0 Then 1 h) j. K2 E& k' J  F
If .HasAttributes Then . P/ J  ]4 ?+ w1 }. e* o
array1 = .GetAttributes - T$ o, C; d, c, |* |" u
array2 = .GetConstantAttributes 4 A2 r1 [; J# P2 U/ `9 ?9 F  H
‘设置array1指向图形对象的属性 , ~9 J; x/ a% |  B4 E. ?
‘设置array2指向图形对象的固定属性
& a: H& |# m$ \2 Q5 |4 }3 I2 PFor Count = LBound(array2) To _
" ]4 }3 U9 {& A4 m  cUBound(array2) 0 N6 Y; a% Z& A# O8 T
If Header = False Then
- f- N5 o5 A" {8 S7 dIf StrComp(array2(Count).EntityName, _ # M; C3 T2 O/ z5 i7 [+ @, q
“AcDbAttributeDefinition”, 1) = 0 Then
4 a( ?' Q  r9 i: c( V$ K  M& ltdfNew.Fields.AppendtdfNew._
7 C# A8 V% d8 p& `& DCreateField(array2(Count).TagString, dbText) $ ]3 }! y2 t# N; \
End If
" O7 f# s& s( e. j  @‘读出属性值读出,作为Access数据库表的标题 4 f8 {# V. E( \3 M
End If # Y3 R/ h. t* E# b+ @2 a0 x
Next Count
2 n' p7 @# s% `7 F' O" TFor Count = LBound(array1) To _ & O3 a) E$ I( X0 p  h  t) x, Z4 a: g
UBound(array1)
  b# u: h( J" O1 ]6 }- ^If Header = False Then
. U* v& G# ~9 R5 SIf StrComp(array1(Count).EntityName, _ " o$ I; W7 b" o; r& o
“AcDbAttribute”, 1) = 0 Then + q$ N6 X  R) x" v' K
tdfNew.Fields.Append tdfNew. _ 1 ]9 F! i+ D( u8 m
CreateField(array1(Count).TagString, dbText)
  F/ U% V& O3 G, \% UEnd If # ?  a! G& j* P  i1 I8 V% v% |
End If
, Y; z1 o( {7 BNext Count
* H, ?2 w" G% X7 D. i0 _- d# iIf Header = False Then - |7 d' _3 a$ ~6 q2 r$ T  [. T
dbs.TableDefs.Append tdfNew
3 |2 M5 J+ X9 I# b' Q. R7 LSet rs = dbs.OpenRecordset . h1 y( ^& v* d' j; K
(“电气材料 _明细表”, dbOpenTable) ‘打开记录
% }) P# l! j7 Z+ s2 sEnd If
. n! G4 {) n) \RowNum = RowNum + 1
1 _) _) t$ Y& w9 m( j( vrs.AddNew ‘增加一笔新记录 2 I- M5 ^6 K3 Q. E
For Count = LBound(array2) _ * A: m9 \+ ?# y6 x
To UBound(array2)
- P. n7 q! t4 j9 n6 J$ L" M& Mrs(Count).Value = array2(Count).TextString ; m& `# M( B& I. c2 N$ G+ Z: T2 p) @
Next Count ‘读固定属性值 5 @4 h+ |# O6 q- c( N- @3 Y% k' s
For Count = LBound(array1) To _ 2 t: i% o" A. O
UBound(array1)
5 K2 [2 q3 b" m- z4 N8 D- Qrs(UBound(array2) + Count + 1).Value = _ & I, |: a& D" o/ K
array1(Count).TextString 7 d* b. ^+ n4 `( W; C' M
Next Count ‘读输入属性值 ( I) H8 i$ x2 v$ ]" s1 |
rs.Update ‘增加新记录修改结束 $ _$ {7 s1 k7 X6 A6 l6 {; x
Header = True
  _! i) v; s0 h& A) e( x9 xEnd If   K7 \4 h5 _) L  E  X5 O+ y7 }7 l
End If / r4 H; y( P; A
End With
' D9 T- f" `2 E; K4 U0 hNext elem
" l# E* @' \$ m. ^. Lrs. Close ‘关闭记录,释放资源 ; V% k3 b, e) J! N* k; l
dbs.Close ‘关闭数据库,释放资源
+ b# z' @0 ]1 B, y4 _1 H/ mEnd Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot
! U$ S( k' u6 H& M/ g9 H- N: w8 h真是太好了
1 E$ {" t5 S* r/ d這就是我要的 ^^
发表于 2010-5-11 23:13 | 显示全部楼层
好用吗?有谁下载了?
发表于 2010-8-24 19:08 | 显示全部楼层
学习学习!
发表于 2010-10-25 14:37 | 显示全部楼层
先看看看再说
发表于 2011-2-21 05:48 | 显示全部楼层
下来看看先,谢谢了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2026-1-13 17:19

CAD设计论坛,为工程师增加动力。

© 2005-2026 askcad.com. All rights reserved.

快速回复 返回顶部 返回列表