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() ; G" H3 w/ ]$ \, M7 x5 P
Dim work As Workspace ; P' j6 V4 o$ m. }- S. I" A! g- g& ]5 j
Dim new As Database
" h: l8 `. }5 d- t; W" C; f$ }Dim elem As Object
5 |# h; n3 h  _  j0 RDim rs As Recordset
- k8 I" ~+ J4 `( \) w9 b& iDim RowNum As Integer 5 D, S4 G* A! c. [' c# O( a
Set work = DBEngine.Workspaces(0)
$ A! T# O' O7 @7 F' UDim dbs As Database * P" ?; C: I, ?' m  q: G: V. W
Dim tdfNew As TableDef , A+ b; Q1 W! V1 o% h" R1 S; @# p8 `
Dim tdf As TableDef 3 y1 L2 d' L. w6 k4 a4 ]2 p
Dim dbsname As String
* `, t/ P- a  n* L% h( pDim array1 As Variant
% I# y* a" P  U% @1 Y9 d' p- @$ g. eDim array2 As Variant ‘声明所需的变量及类型 6 t$ n# |( ?3 Z) P7 }% x8 `* q# ~9 }
dbsname = “D:\材料表.mdb”
4 n% I. G9 X4 V& @0 I‘声明Access数据库写到哪一个文件
2 h) O" N" @' J9 y& b5 F/ k1 l! dOn Error Resume Next
2 j1 g4 H5 u: [! l, W' S' mSet dbs = work.CreateDatabase(dbsname, _ % V/ L% v6 t2 S; D- @. l
dbLangGeneral) . _( T3 b1 b, d" }
If Err Then ) T) S; v7 e& L
Kill (dbsname) ) i) R& L* n6 a( r8 F$ ^- O/ j
‘发现要写入的Access数据库文件已存在就将其删除 * M) G7 v+ W% T
Set dbs = work.CreateDatabase(dbsname, _ ' N/ E* k5 N: \5 ~" G  x2 z
dbLangGeneral) * w2 ?* |; j- j4 X+ \' v
End If 6 O! b7 G! ^. Q: N; R& m: L) j6 s3 c7 \1 b
Set tdfNew = dbs.CreateTableDef ( t5 @( o0 ^# c. i8 C6 H0 o
(“电气 _材料明细表”)
7 U! I( n; D4 P$ Y/ Z! u‘建立一个名为电气材料明细表的表
4 l7 ]- B  M. r0 W3 ~3 W' F  iRowNum = 0
9 j4 X2 |2 ]4 z/ b& RDim Header As Boolean
; M3 d3 k0 d9 u% k( }* O8 Z4 UHeader = False
/ @. s" Z& h8 s  Z2 J7 g3 i- o2 l4 iFor Each elem In ThisDrawing.ModelSpace
# E5 S( Q( v2 Y‘在CAD模型空间,查找所有图形对象
7 w, H( o& w, n3 f- f0 W  @. IWith elem
+ b6 \7 B, q$ \5 B$ OIf StrComp(.EntityName,_ 4 Y/ A* I2 {& A, ~) Y
“AcDbBlockReference”, 1) = 0 Then
3 v4 ]* ]/ p; X+ [, W  FIf .HasAttributes Then # X7 S5 I+ j2 t6 d0 i
array1 = .GetAttributes
6 T( q% M; V$ p3 K" y/ U" T. }8 yarray2 = .GetConstantAttributes 2 f( k4 x  B% t9 E4 m3 v& n
‘设置array1指向图形对象的属性
) u8 |* f0 \& S0 N3 v‘设置array2指向图形对象的固定属性 . ]4 a- Y9 L9 h1 y8 s" C7 y6 ~) ]
For Count = LBound(array2) To _
$ \( Q; p& a- }3 {' d, aUBound(array2)
# [9 U" w. `& ~$ j( c, H& ]( ~If Header = False Then
2 T; w; d- S' I  [- s; sIf StrComp(array2(Count).EntityName, _
7 w# ]3 M+ E# g8 r2 _% `/ ~“AcDbAttributeDefinition”, 1) = 0 Then
' |0 n: M1 D3 ktdfNew.Fields.AppendtdfNew._
$ A& l8 [; P: h" x: T' ?$ UCreateField(array2(Count).TagString, dbText) 7 c. N; O* I' W, q4 z
End If , Q3 F7 R5 |3 [% O
‘读出属性值读出,作为Access数据库表的标题 2 M( @* b+ |( X( ^) F# z; ~- ~8 }; V3 P
End If
% e' `. L$ u, v, J; i( X- h& H% bNext Count
/ c1 N0 `! r; _9 ?For Count = LBound(array1) To _ 6 J3 a3 Z5 M. Q4 t6 j
UBound(array1) 9 `7 A) O6 J7 t. |+ H. F, M: |
If Header = False Then # \/ h* W. w7 z" r$ v( v* j3 s
If StrComp(array1(Count).EntityName, _
: x; f1 u/ h+ A“AcDbAttribute”, 1) = 0 Then
: \. f) j- x% p0 ftdfNew.Fields.Append tdfNew. _ 2 R3 q  B5 o& q% j! n6 w% e
CreateField(array1(Count).TagString, dbText)
$ f5 R. U# r! G1 F$ cEnd If * X4 ?$ U0 A9 _
End If ! \" x. _) c6 e5 d4 U0 }
Next Count ; r1 q& U) Z7 i- Q" M
If Header = False Then
1 V! W; |: \& M" L: Edbs.TableDefs.Append tdfNew
/ ]/ i. }  z" B  \+ `! }Set rs = dbs.OpenRecordset 1 R# ^) p! u" y) I  b' ~3 B
(“电气材料 _明细表”, dbOpenTable) ‘打开记录
/ s+ W1 W; }% O. V8 v# {! DEnd If # N0 q$ Q% a) ]3 R
RowNum = RowNum + 1 7 I% U9 B5 G5 w/ t
rs.AddNew ‘增加一笔新记录 ) E6 U" z8 U1 f% S% \% {
For Count = LBound(array2) _
# v7 y; k5 x, DTo UBound(array2) ! M! T6 K3 _% o6 I, d* |/ F
rs(Count).Value = array2(Count).TextString ( P! I! a# @- u7 J
Next Count ‘读固定属性值
# S) K; B6 E0 _% EFor Count = LBound(array1) To _
; O( j) |8 |' r1 w! gUBound(array1)
; R% Z( X- g- c# u* ^' \, crs(UBound(array2) + Count + 1).Value = _
% |9 x+ R9 g& g0 ?  N7 o& marray1(Count).TextString
4 e/ V8 I, J, t& ]. w" JNext Count ‘读输入属性值 6 W& Z2 H' D1 W! K& `
rs.Update ‘增加新记录修改结束 $ v$ V0 H+ q! \. w
Header = True
% ~3 W% K7 _1 I. mEnd If 6 L# |/ S+ `; G9 d
End If 7 C+ Y7 Z; Z8 R) u
End With
$ {( T% y+ F! k8 i5 d; x# ZNext elem 3 h% j2 b, y9 }) X
rs. Close ‘关闭记录,释放资源 # K- E. `7 S" p' N/ h* Z6 N
dbs.Close ‘关闭数据库,释放资源
. u  O7 j- ^( MEnd Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot( C' {3 o% h# S
真是太好了
; G0 ?/ q5 p, o3 `這就是我要的 ^^
发表于 2010-5-11 23:13 | 显示全部楼层
好用吗?有谁下载了?
发表于 2010-8-24 19:08 | 显示全部楼层
学习学习!
发表于 2010-10-25 14:37 | 显示全部楼层
先看看看再说
发表于 2011-2-21 05:48 | 显示全部楼层
下来看看先,谢谢了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-15 15:48

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

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

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