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()
  S- i3 n. I+ F; N( m$ Y  J# ODim work As Workspace + j* K8 f( W% }$ Y1 ]' D/ z. W
Dim new As Database 9 C/ Q( u3 |$ ]8 J0 h( T8 s
Dim elem As Object 9 R$ }7 v) n/ i! t3 P! l2 q' y
Dim rs As Recordset , y% U0 L: v0 O2 J
Dim RowNum As Integer
3 Y7 a8 g; X- f4 D( c8 N- G2 DSet work = DBEngine.Workspaces(0)
& N+ f7 w) J8 N0 M2 W; m/ P, ~Dim dbs As Database 0 a0 u' i! A2 o* V& T+ ?9 ]. I
Dim tdfNew As TableDef
7 \( Y; s) W% y+ XDim tdf As TableDef ' V5 L* H$ I2 `! ]$ V4 |3 D. M- v, t
Dim dbsname As String
5 m  u: B% n+ sDim array1 As Variant 4 u5 ]6 C* N' q" i4 G. U9 \
Dim array2 As Variant ‘声明所需的变量及类型
, [+ t0 A3 C' p* jdbsname = “D:\材料表.mdb”
+ i6 h  G* V4 V# e" D' h‘声明Access数据库写到哪一个文件 5 u# M  Q/ Y' m7 K: E: g. g# N
On Error Resume Next . C# M) K& X6 \- e- ^) `
Set dbs = work.CreateDatabase(dbsname, _ 1 r4 C8 P( E( m+ \" Y9 ]
dbLangGeneral) ! Z% Q% T" v. c
If Err Then
! M2 @3 k5 e/ G; pKill (dbsname)
5 p0 J, l. s5 `- s  ?‘发现要写入的Access数据库文件已存在就将其删除 7 o/ O; @6 P: {" W* {
Set dbs = work.CreateDatabase(dbsname, _ ! L2 H! O4 n1 @$ J1 l. }
dbLangGeneral)
) |* u- F4 {  Q5 o: a. V  QEnd If / H# _4 Y! I. z; |) X) Y
Set tdfNew = dbs.CreateTableDef ( D* d- U9 S. I
(“电气 _材料明细表”) & ^( h2 U0 Z1 ~5 M0 O* Z, {
‘建立一个名为电气材料明细表的表
* ~4 W# U) R9 ~; N, h( QRowNum = 0
" B7 S" @: F! i% @Dim Header As Boolean 0 ^' s; _3 Z2 F+ d, s
Header = False $ w2 B4 k, `, R: ~6 i. l
For Each elem In ThisDrawing.ModelSpace 4 [; v% Z( Z% I  c! F$ |
‘在CAD模型空间,查找所有图形对象
4 N" L( W3 I1 ?5 ZWith elem
) j8 p( T! G4 @+ yIf StrComp(.EntityName,_   g. z% `6 v* x. ?, J
“AcDbBlockReference”, 1) = 0 Then
! A0 Y/ C! q9 Q* I4 t6 wIf .HasAttributes Then ! c) h  r8 y" w* j/ e$ i2 D) K
array1 = .GetAttributes
3 L( W* w' F) Y% Earray2 = .GetConstantAttributes % G( ^3 s8 w' Z& _% i4 }4 K; P
‘设置array1指向图形对象的属性
, ]/ ]1 M6 L  e‘设置array2指向图形对象的固定属性 % P* v4 n# O% \( W! j7 a
For Count = LBound(array2) To _ ' I% T) ?! z9 m( U* B! z. p. y
UBound(array2) : U4 x+ Q, e6 D7 }; Z7 q+ U# v! ^: J
If Header = False Then / v% q* \7 z9 a; ]
If StrComp(array2(Count).EntityName, _
' Y: t$ x7 P* L0 m& G5 ]& P“AcDbAttributeDefinition”, 1) = 0 Then
: q/ ~# Q9 z- L" _tdfNew.Fields.AppendtdfNew._ , i1 q; f4 j7 D
CreateField(array2(Count).TagString, dbText) ) E# ~. u0 Q% t
End If : a, C' ?8 C0 _' W
‘读出属性值读出,作为Access数据库表的标题
" |9 ~/ K/ E8 x6 A2 nEnd If
* M! r# @) d* A0 e5 k# V4 A) N. _1 fNext Count ( D# C! h( \' c
For Count = LBound(array1) To _
* [  \3 d" S9 f& t  O- X/ |: rUBound(array1) 5 J; z4 ?; a8 W" ]. m2 x
If Header = False Then
; h5 `7 w* @  J7 W9 }; hIf StrComp(array1(Count).EntityName, _
( V. a( s, U* d4 y% h/ B“AcDbAttribute”, 1) = 0 Then
2 u" u- }7 S$ a* v( W* @8 B8 ftdfNew.Fields.Append tdfNew. _
8 [, s( \. d5 p6 dCreateField(array1(Count).TagString, dbText) % z8 ~5 F6 ]% K" E! x
End If . x. E$ V" }3 Z0 B) H7 ~: m
End If $ P/ |. j, Z7 E0 M. N/ O+ ?' R
Next Count 1 I0 A2 _% Z/ G" y) x, {" _2 K, f
If Header = False Then
4 O; v- [: Q( a$ `; kdbs.TableDefs.Append tdfNew ( U' u# Q3 |5 I6 S( N
Set rs = dbs.OpenRecordset
, J$ M% y: S9 O( J9 F(“电气材料 _明细表”, dbOpenTable) ‘打开记录
" H- V# d& X$ w% h* _End If & m$ R9 m3 r) n9 h1 \( F
RowNum = RowNum + 1
* V# `, A# I& x4 K; R: h( urs.AddNew ‘增加一笔新记录
2 F# a' M: M! k+ K" h' F' b' rFor Count = LBound(array2) _ 5 g/ g' ~4 }- N% K
To UBound(array2) 8 A  u: M9 p5 A2 s
rs(Count).Value = array2(Count).TextString
* c' n, {7 K2 H# {/ I, I: @Next Count ‘读固定属性值 ) x1 |& S# w3 {4 _- S- K) ]1 J2 m1 o
For Count = LBound(array1) To _ + G- i$ [5 L. h" |# \3 m
UBound(array1) / z0 t6 r* A9 N
rs(UBound(array2) + Count + 1).Value = _ ' e6 |) Y* u$ {; ?  n& G# M
array1(Count).TextString
- A; [7 m8 T1 yNext Count ‘读输入属性值 0 P  u9 ~, m: E1 K, _% q, ~9 k
rs.Update ‘增加新记录修改结束 : z4 n+ B5 Q8 @! k' p! [* n
Header = True 0 U2 Z" b5 M6 l% V" w/ f9 G, M$ ]
End If
1 u7 D- }5 ]8 s2 y2 EEnd If , r& L9 q/ k/ V7 F/ b4 q" k
End With   X0 i1 \9 w6 }, V  c
Next elem
1 V! y' v3 l, W4 `5 X9 xrs. Close ‘关闭记录,释放资源
) l% Z6 {3 T* zdbs.Close ‘关闭数据库,释放资源 1 o* T& {+ b* X# ~( `4 c7 Z' r$ g
End Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot
4 a0 @+ G( O! n# X2 b* l' l: \真是太好了
( A. X- s+ R2 E, ?5 C, R) r這就是我要的 ^^
发表于 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-14 20:32

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

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

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