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() & m+ t; ^) x, I$ r- x& q  C# X6 Y
Dim work As Workspace
7 K, w4 R3 U. t$ O  G5 NDim new As Database ! }" z7 c. C1 j3 j" J# T4 f
Dim elem As Object
3 B3 |+ g; a& i' a4 a( BDim rs As Recordset
! D8 s7 M6 t+ D: {0 x$ H, g) kDim RowNum As Integer # K1 o( |% _! A" W- S; ?0 j
Set work = DBEngine.Workspaces(0) ) ^- f% V0 @& p& _
Dim dbs As Database
+ ~6 P7 N. _5 ^0 XDim tdfNew As TableDef * W& l5 ~* @8 J5 K
Dim tdf As TableDef 1 U9 H3 m) p/ i7 [. h9 g% w
Dim dbsname As String 9 K$ _% {8 T; r) t0 I
Dim array1 As Variant 7 v4 \4 b- K, v8 `) l7 P" N! L
Dim array2 As Variant ‘声明所需的变量及类型
% |+ s( E& i# \8 vdbsname = “D:\材料表.mdb” - j) b' c. I5 d$ ~1 t9 A5 r+ `
‘声明Access数据库写到哪一个文件 . i$ F2 g3 E3 V% [4 e
On Error Resume Next 4 T* c0 p. ~1 X2 ?1 u/ {! f. ^/ L
Set dbs = work.CreateDatabase(dbsname, _
4 k' H- d# n# e! L: N0 pdbLangGeneral) , n: n+ L1 h: P0 j
If Err Then / F( c7 T4 v4 C" ^' s; F% `
Kill (dbsname) . F4 @% _8 B0 I7 f+ L
‘发现要写入的Access数据库文件已存在就将其删除
$ o  m: b4 X/ L' c* B6 pSet dbs = work.CreateDatabase(dbsname, _ 0 Y7 O' ~/ u0 B/ a' t4 j
dbLangGeneral)
9 ]2 [0 p% u! L; A6 w/ A$ eEnd If * Q% E  ~( K/ x( R
Set tdfNew = dbs.CreateTableDef
% a$ E3 \# |. }1 W$ l! j(“电气 _材料明细表”)   z) a6 a0 x: b& G
‘建立一个名为电气材料明细表的表
3 j/ X2 H4 b! T. c% D1 sRowNum = 0 * d; H/ a. e! u  ~% b# Q
Dim Header As Boolean
3 T% H7 ^" y# E* fHeader = False 2 @% k; k/ f7 O6 o; s
For Each elem In ThisDrawing.ModelSpace
0 H; @. X/ h) T; g- T‘在CAD模型空间,查找所有图形对象 ( D, c) t: X: _- \
With elem
  m* Q6 F+ d* q9 iIf StrComp(.EntityName,_
) M1 Y9 I  I" W3 B) Q& T: h“AcDbBlockReference”, 1) = 0 Then   r4 @  [7 Z. O* Z
If .HasAttributes Then
/ p" q' ]. ]& W; k# I& g1 K/ x+ w/ N4 qarray1 = .GetAttributes
) E' l- ~- A7 K5 {array2 = .GetConstantAttributes
! N- j. X" \7 R. h  @; K& b‘设置array1指向图形对象的属性
/ W' }# k- U5 ^& x‘设置array2指向图形对象的固定属性 $ ^( L- }, p: x
For Count = LBound(array2) To _
" k; h) o1 s4 X' d; FUBound(array2) 1 n0 v) m* J* R+ F3 w% b
If Header = False Then # z, U( |7 I' Y0 Y. u& ^
If StrComp(array2(Count).EntityName, _
; Z$ f+ Z6 i( L' `; ]: @* I, m) v“AcDbAttributeDefinition”, 1) = 0 Then 0 O3 N/ z) ?% y3 H( c3 s# d
tdfNew.Fields.AppendtdfNew._
8 e. x# g/ z2 g0 A" w! n% SCreateField(array2(Count).TagString, dbText)
) E, U& m5 L7 c3 zEnd If ; [! p- y5 ?6 _( F! X4 [
‘读出属性值读出,作为Access数据库表的标题 , V! E! ~6 A8 Y9 T$ x( ^8 \/ V% }
End If
. R6 O& v$ |. b6 O& kNext Count $ s" F! w$ T- i& B/ D, I" E$ Z) q
For Count = LBound(array1) To _ 2 x" c$ R2 Q: [3 h$ d) ~8 O+ ^! f
UBound(array1)
' H/ d2 d  S$ V& \8 e! b6 ~, FIf Header = False Then
% l4 H' R9 k0 g$ h; {$ wIf StrComp(array1(Count).EntityName, _ 4 N; f# }/ u6 y5 {$ {
“AcDbAttribute”, 1) = 0 Then 0 t. e. V7 l2 x6 u# w) J1 ^8 w
tdfNew.Fields.Append tdfNew. _
( ^1 c( y/ K+ O! }* O! ICreateField(array1(Count).TagString, dbText)
* n, g3 Z8 X/ uEnd If
* O+ A* ~3 [) GEnd If # r: T# r/ _% C1 P0 x1 n0 n% Y& R* v; o
Next Count , ^& a) ~; Z) y2 y# h/ x1 y
If Header = False Then % B" K5 x/ G. r* r- b+ U( G/ W
dbs.TableDefs.Append tdfNew
' p  W; J5 X3 `) l# H0 I" ?Set rs = dbs.OpenRecordset
, G$ s- Q7 q7 w+ m5 B: _  w(“电气材料 _明细表”, dbOpenTable) ‘打开记录 * J4 z: i; J0 R$ s
End If 1 q2 c% X" G$ Z1 y
RowNum = RowNum + 1
. u* s$ F1 O8 r( Brs.AddNew ‘增加一笔新记录 : N9 o/ G5 O- e. ]9 a
For Count = LBound(array2) _ ; `6 R& {) W' [( z: q
To UBound(array2)
2 ^( v( v) [$ a' Jrs(Count).Value = array2(Count).TextString
: t; R/ k" O2 p; K( |, NNext Count ‘读固定属性值
$ L* P/ V% N: S$ W' i; f. Y1 nFor Count = LBound(array1) To _ , E4 E8 c( a2 g" \# B# H! b
UBound(array1)
( Z9 q" `: L7 ]9 ?/ B6 ^; prs(UBound(array2) + Count + 1).Value = _ 8 V! I! m# {4 L4 M) h
array1(Count).TextString 5 Z! w0 a( q3 l% x" i% ^, j9 ]
Next Count ‘读输入属性值 6 {' B9 w, `6 D3 {$ O# G
rs.Update ‘增加新记录修改结束
" t! x$ {9 w+ H8 _Header = True   t" E( @$ j$ i( q7 C7 d* M
End If $ w# X' R' V, S2 K: q; R
End If
1 L* w% M# u6 Y: p0 V& N6 _9 qEnd With
4 ?) ]: J; F1 c3 `# uNext elem
% `$ M% O8 C# k$ \rs. Close ‘关闭记录,释放资源
  X% P: [) O  H, jdbs.Close ‘关闭数据库,释放资源 4 q7 a# v# h3 E+ L* o4 s4 T
End Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot2 x# k* P" T6 I! W# m- y$ ^
真是太好了
: T6 s/ @% l2 W0 d9 u% I) |這就是我要的 ^^
发表于 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-14 05:11

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

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

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