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()
2 E) n; m& ]$ G6 y2 y1 d8 o4 nDim work As Workspace / m0 W0 i0 _" b7 Y4 h
Dim new As Database 7 t' p" ]) `" x6 F& ~$ Y. M
Dim elem As Object
# x% F8 t( Q0 u- J1 nDim rs As Recordset 2 Y! [5 E0 {: T- j  F
Dim RowNum As Integer - f1 a3 |: |. ]7 C2 e; g2 I1 ?6 m
Set work = DBEngine.Workspaces(0)
& w  U& i) D' D) o0 p6 jDim dbs As Database 5 T! S( M. u2 `5 i7 Z
Dim tdfNew As TableDef ( j& i$ B: x3 R/ b  p6 J
Dim tdf As TableDef 9 {8 V; P4 _; s3 u, t- F% {
Dim dbsname As String ! P( w: [% e5 t) ^
Dim array1 As Variant 4 O. J2 p7 c7 Y7 Z& `3 R* K
Dim array2 As Variant ‘声明所需的变量及类型
! D- Z6 z: z9 a- y! pdbsname = “D:\材料表.mdb” 2 j7 e: G" k* v" [0 a3 T. I) n
‘声明Access数据库写到哪一个文件 ) e+ @6 S" V3 x, B, h. ?9 h
On Error Resume Next 8 p8 C% Q9 B7 H; T" e
Set dbs = work.CreateDatabase(dbsname, _
5 B* @5 Y+ l1 f; C- f$ hdbLangGeneral)
1 G' A& A2 Q# B+ k5 [! o5 E, lIf Err Then ' T( B$ e+ u- V" g- j
Kill (dbsname)
) Y: U$ j- N( e; ?/ V‘发现要写入的Access数据库文件已存在就将其删除 & J/ j, x/ ^, l6 w) w6 p7 O
Set dbs = work.CreateDatabase(dbsname, _
5 [7 F4 K5 _; y$ PdbLangGeneral)
( K; E$ F8 I+ \: C; BEnd If
6 K. D* }2 ?- G  f7 K% Z* DSet tdfNew = dbs.CreateTableDef
7 x) I# T3 e4 q6 j/ C(“电气 _材料明细表”)
9 U; w0 f' a, J. z& D6 O4 a  c, n0 w‘建立一个名为电气材料明细表的表
' z, j' C) X! R2 ]/ C, D5 h" \- X$ pRowNum = 0 1 S5 U6 ?7 [  L& ?0 S
Dim Header As Boolean ! o; B& {5 n7 _# k5 E
Header = False
  J1 @% B# f2 h; J$ P3 `For Each elem In ThisDrawing.ModelSpace
2 T( x4 u5 o8 F5 J/ L‘在CAD模型空间,查找所有图形对象 ! U( Z. g# u3 n/ `, S" S
With elem $ j% T8 H5 t4 q7 [- u
If StrComp(.EntityName,_ 9 g! u, _+ w$ r* e' w4 Q
“AcDbBlockReference”, 1) = 0 Then
% d+ u6 T+ T, M5 b% _! X# [4 \If .HasAttributes Then % X# m4 Z1 p0 C, K( O# d, a, M
array1 = .GetAttributes % d/ g1 \6 S* u. O+ k4 `- ~2 B
array2 = .GetConstantAttributes
) X" @5 L( n% Y  w+ p‘设置array1指向图形对象的属性 " S3 G  t$ I3 k; i7 c5 H* r
‘设置array2指向图形对象的固定属性
( L5 j. A' }; C, eFor Count = LBound(array2) To _ # B  B: V: m! I0 T/ h! U  H8 h
UBound(array2)
6 h' p) P. i7 c6 A; i/ j: MIf Header = False Then ' @: e4 _+ x- V. `0 K
If StrComp(array2(Count).EntityName, _ - D: S- W: H( B3 L% p3 t
“AcDbAttributeDefinition”, 1) = 0 Then , ^2 n& Q. U5 W; g/ V) n5 F4 Q
tdfNew.Fields.AppendtdfNew._
2 D. h) N5 Q- R2 v; Q, a4 H: NCreateField(array2(Count).TagString, dbText) ( [! E3 \5 L% g% ?5 a/ M
End If 6 F9 p6 U0 A- e$ J( y5 u8 r/ R' X/ Q
‘读出属性值读出,作为Access数据库表的标题
! o% K7 r! }* j" I; S. cEnd If
& T6 _  T& q! s; e9 O+ PNext Count
) o' v4 c$ m3 l0 Z! p- g+ hFor Count = LBound(array1) To _ 0 |2 d5 c. S  P
UBound(array1)
% u5 @: T9 _3 `) G  a# yIf Header = False Then 6 u1 R! l7 y, J% Q4 \. O# Q
If StrComp(array1(Count).EntityName, _
: k' e" V, q7 G! c8 v“AcDbAttribute”, 1) = 0 Then 1 ?: N, j8 v3 u- ]( s1 c! s
tdfNew.Fields.Append tdfNew. _ ( S5 a; D5 @2 A. A
CreateField(array1(Count).TagString, dbText)
8 d) ~: ]) v1 i/ ^" dEnd If
: g+ k& a5 E- t4 d: L# }* H! REnd If
4 a  e* T0 j7 Z  J7 mNext Count - e1 N" `, B/ I, ?' Q  T0 c8 [
If Header = False Then
* }% P' R4 B0 T2 Z+ t4 @+ odbs.TableDefs.Append tdfNew
8 O! d' Z% t" R; s' f# SSet rs = dbs.OpenRecordset ! }3 J5 i: K  B6 |3 U4 M5 g
(“电气材料 _明细表”, dbOpenTable) ‘打开记录
7 D2 Y, e3 w. ~( p' KEnd If * K  T+ x6 r6 }0 I
RowNum = RowNum + 1 / r! i' ^# b& N4 F2 z* m
rs.AddNew ‘增加一笔新记录 & r& z# g/ v' ?2 w  \
For Count = LBound(array2) _ 9 s0 Q/ T! O2 B+ x  _+ p
To UBound(array2)
$ g4 N' J) R9 ~; zrs(Count).Value = array2(Count).TextString 1 {$ U& \2 R% @+ Z1 Y# F* p% k
Next Count ‘读固定属性值 ( s2 D$ v# D+ C. f3 l( {
For Count = LBound(array1) To _
5 E9 w+ q7 g- G  ^: ?; l- u/ [! {' yUBound(array1)
- |0 V  d7 n0 f8 _# T5 lrs(UBound(array2) + Count + 1).Value = _
  R. p- Z; i7 h- R9 }array1(Count).TextString
- \, r# Y5 a( E6 {7 H) @/ KNext Count ‘读输入属性值 5 T' M2 [) @& P7 W; v8 C
rs.Update ‘增加新记录修改结束
" q  a* F' ~& D/ e/ BHeader = True
4 \7 k/ _9 J; r: ]  N+ VEnd If 3 Q' `" f- p$ T% j1 @
End If 7 J6 ?- S$ Y7 O% F4 `
End With
" I+ A, q7 G2 N  b) fNext elem
+ w- w" V" c- L  N6 _rs. Close ‘关闭记录,释放资源
3 ^$ ?) G( w8 `8 Rdbs.Close ‘关闭数据库,释放资源 6 _: o6 g* }2 X9 C0 _8 P* P2 Q
End Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot
2 R* I* ?: n! P$ p9 M$ |5 n7 K" [0 w. N真是太好了 ' Q0 p8 d0 \( e/ ~1 g& U7 E" G; \( S
這就是我要的 ^^
发表于 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-31 04:47

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

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

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