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()
1 ?/ m' i  Z& G; CDim work As Workspace
0 L  b: j! g$ x5 `! P5 i/ ^5 SDim new As Database
$ L, I3 [7 j$ _4 W+ ]/ v5 P3 wDim elem As Object 0 c# x+ x( y7 ~, G) o3 a
Dim rs As Recordset
5 U% _. r- g. I/ {* g* N5 `, C  ~Dim RowNum As Integer 0 d, l8 a; f1 L
Set work = DBEngine.Workspaces(0)   X& u8 E" T7 K% T3 Q
Dim dbs As Database 1 p8 t! B, F$ }, \' |2 P
Dim tdfNew As TableDef 2 o1 F  j* H' E7 Z
Dim tdf As TableDef
6 @5 ?. n9 j. X# G, f8 q+ a; GDim dbsname As String ) `9 |( m: c/ U5 B! O! \& n
Dim array1 As Variant # P' ^2 x3 I: A/ S7 u" k- U7 K
Dim array2 As Variant ‘声明所需的变量及类型
' c; Y  B0 A; v1 h3 K2 X7 C5 Xdbsname = “D:\材料表.mdb”
- p6 D" q5 ]/ o/ T5 Z& I! N) P‘声明Access数据库写到哪一个文件
9 s  k$ l& ?- W+ u( [) q. Q6 U. xOn Error Resume Next 2 T: ?. ~! `6 U% q, k
Set dbs = work.CreateDatabase(dbsname, _
# f, i: ^9 @+ k% ~9 ydbLangGeneral)
: D3 U& m4 O8 f7 n: n' X. EIf Err Then : M% C- h% t0 n2 x0 n. Z1 b- r
Kill (dbsname) - L4 o/ M% M$ m+ L; w( {; ~7 I% t
‘发现要写入的Access数据库文件已存在就将其删除
3 O- V$ N( X2 ]' [7 eSet dbs = work.CreateDatabase(dbsname, _ 0 t6 f, o" N5 |. B* }
dbLangGeneral) 0 \) {4 K" V. Y2 t
End If 5 L- t# c, o4 u, u1 f, p
Set tdfNew = dbs.CreateTableDef
7 W/ b% j, j4 k, B9 |(“电气 _材料明细表”)
) R: m7 W/ S; R' g, O  d& x( g9 c( z‘建立一个名为电气材料明细表的表 ' c! I' u% y' B  Q
RowNum = 0
& ^8 s4 S: Q. f  jDim Header As Boolean / b, i& e, l) b! G+ A+ e
Header = False ) r1 g" P* A8 }% {" U2 R5 Y
For Each elem In ThisDrawing.ModelSpace
) F4 H( J6 r4 {; M$ ?& j- p/ T‘在CAD模型空间,查找所有图形对象
0 N) S! ~: {- hWith elem
1 Q8 T$ l( Z3 F6 kIf StrComp(.EntityName,_ 7 L8 T' H) b. C( `2 ?( r
“AcDbBlockReference”, 1) = 0 Then
/ {9 ~% A; Q/ Z! [# e/ n6 U" P* fIf .HasAttributes Then
7 ^* @' I# p# C" varray1 = .GetAttributes 1 h/ {2 y6 Q+ g$ K; Q$ T  z- Q
array2 = .GetConstantAttributes
0 w2 o0 p4 A5 |7 N- d‘设置array1指向图形对象的属性
0 ~9 r8 S. t0 u$ D‘设置array2指向图形对象的固定属性
( b4 Q, t( P; L( G4 zFor Count = LBound(array2) To _
: ^1 a9 p8 q' \7 E  uUBound(array2) 2 D. W9 N" J- _4 K, b0 A, A6 A8 ]0 F
If Header = False Then
& S, R8 g( g5 @9 Y+ w: k7 kIf StrComp(array2(Count).EntityName, _ 7 P) M& U. X. M0 Y3 H* L5 A
“AcDbAttributeDefinition”, 1) = 0 Then
2 C7 h: T$ ]5 N0 p" L* K, U- LtdfNew.Fields.AppendtdfNew._ 1 `# l) Q0 \( F0 ?% W& K
CreateField(array2(Count).TagString, dbText) 8 `" I9 ^* ], Y7 C: Y2 `. H
End If ( v* G# `/ l* [* f2 P
‘读出属性值读出,作为Access数据库表的标题 " v. \9 m/ \% Y8 K- m
End If
4 _* I  w- X2 Q: t2 J: h( M; ~! [Next Count
! Z4 |  P9 g! Z0 x. fFor Count = LBound(array1) To _ ; W. ~( f6 u+ d* o$ y" J' t
UBound(array1) ! S/ k6 o5 z  {2 B; j. `$ C& I+ l4 k
If Header = False Then
. D3 R; j, W$ y8 S/ l: qIf StrComp(array1(Count).EntityName, _ # H1 f4 A! q8 x* M! s3 M0 l
“AcDbAttribute”, 1) = 0 Then 7 P( x2 m0 k6 H0 V
tdfNew.Fields.Append tdfNew. _
' {7 Z* ^6 b5 e3 oCreateField(array1(Count).TagString, dbText) 7 \$ Y* L" t9 Z( Y( {7 M/ s7 B' {
End If
6 P9 {( R/ p1 N, @4 t* GEnd If
( B, a6 T0 K. M& Q, DNext Count
/ F" r7 t8 t6 R! Z) _If Header = False Then
- J. s8 ?, Q+ d" ~dbs.TableDefs.Append tdfNew
9 {9 o5 H: O: N9 ~: o. d% RSet rs = dbs.OpenRecordset # @9 ]  @# T" t- `. A
(“电气材料 _明细表”, dbOpenTable) ‘打开记录 9 D5 y) i' s& H: Z8 h
End If 7 l: a9 q+ j- {$ E4 f
RowNum = RowNum + 1 9 i& K! m" H( k) @
rs.AddNew ‘增加一笔新记录 7 W8 v0 p5 Z# X  R, [& z
For Count = LBound(array2) _ " _% K6 m4 W+ `) s. X
To UBound(array2) + u' v; L! D3 v" x  `0 {
rs(Count).Value = array2(Count).TextString
+ ^" f4 _7 W" b* w1 |6 Z5 {Next Count ‘读固定属性值
1 e  l4 q! i: L* K' d# P+ C. mFor Count = LBound(array1) To _
  j) ?' j( D3 j6 Q+ L- e- C+ qUBound(array1)
" s6 {2 f8 `0 }4 w5 a; irs(UBound(array2) + Count + 1).Value = _ $ w" u. U7 p$ C0 [
array1(Count).TextString
, E( Z; @9 L5 c2 F% M4 X9 cNext Count ‘读输入属性值
9 O( P% o! o5 e7 L/ q5 _8 hrs.Update ‘增加新记录修改结束 0 t: |2 r0 L4 R. p" A0 T
Header = True 1 Q8 }0 Z, ]# Q9 H+ f
End If
) N( j7 p; h/ @  i# C. y2 |& O( ?End If
1 ^) x; ^% Y, Y  s+ H3 W- F$ FEnd With
' \/ P) a" P* T. h$ [  R& SNext elem   s! B! R1 ]1 @4 [: `& @/ l; E
rs. Close ‘关闭记录,释放资源
! k6 w5 f& Z1 T- X4 n) h' V2 o9 p! }dbs.Close ‘关闭数据库,释放资源
, A  p: Q! o+ N/ j1 i  AEnd Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot4 ^0 z2 [8 Y' C. c$ Q: M. r
真是太好了 0 z% N+ ~6 q$ u7 U3 M
這就是我要的 ^^
发表于 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-29 10:17

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

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

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