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()
# o, i# f7 O' f4 ~, O+ b  xDim work As Workspace ( o& T# m7 P" w5 F
Dim new As Database " @- `, O) X: D( g4 q
Dim elem As Object 3 B1 i+ H+ M3 m$ Q( P
Dim rs As Recordset . U0 _% k; E1 u( S! W; }3 R9 N
Dim RowNum As Integer
3 y. g8 O3 Y# ]+ oSet work = DBEngine.Workspaces(0) 5 y  o- r) d1 H
Dim dbs As Database
. l) p, ?3 K3 T& C: }0 X, IDim tdfNew As TableDef . s; G0 V! Z7 J7 ]9 `) j: U& g
Dim tdf As TableDef 1 B7 \6 y+ a: ~* v% K
Dim dbsname As String
" [1 k# j9 _% w( M  ?Dim array1 As Variant & h' C; @0 M4 N: J
Dim array2 As Variant ‘声明所需的变量及类型
* t2 _7 _  k4 T( s( K% S6 r& wdbsname = “D:\材料表.mdb”
$ }3 i) C/ j2 N4 s8 `1 O# z‘声明Access数据库写到哪一个文件
' V- {  @2 j8 N/ H$ e! L6 Z( uOn Error Resume Next + ]: x5 ]2 u% Z5 ^, l* t2 q
Set dbs = work.CreateDatabase(dbsname, _
3 _/ N0 e4 ?  ?/ ]. A$ O+ |; TdbLangGeneral)
. P- [2 ~( B  c; ^- S4 O& f. H' LIf Err Then . @- g+ F# j# k! I
Kill (dbsname) 9 _4 ~1 h) d) l# T7 E
‘发现要写入的Access数据库文件已存在就将其删除
3 T9 F( r% Q/ v- _! o  m% pSet dbs = work.CreateDatabase(dbsname, _
, h: E: S  ~7 Y/ ?0 a7 a  k# fdbLangGeneral)
) G( R. g4 ?) O& Q; w2 C+ s) W) KEnd If 8 {' a8 m/ l9 _
Set tdfNew = dbs.CreateTableDef % m( A/ a+ E0 y
(“电气 _材料明细表”)
$ ?0 \# E# I. W4 m+ Y3 I‘建立一个名为电气材料明细表的表 . u# H* f! F- |0 {/ [
RowNum = 0 . m- P  l3 S+ A# A
Dim Header As Boolean
; j4 c3 A- t! ]# \0 OHeader = False
7 u% Q" \, P3 ?7 a6 b0 p. q- wFor Each elem In ThisDrawing.ModelSpace - N! F/ p: N# A. @3 z9 i+ ~6 \
‘在CAD模型空间,查找所有图形对象 # I# P. A8 S( m( l
With elem
: H8 U9 X! V: T* Z" L' tIf StrComp(.EntityName,_ ; G/ v5 B% o6 q$ C/ ]& X/ m
“AcDbBlockReference”, 1) = 0 Then
) ]1 \2 j+ v) d: r4 ]If .HasAttributes Then
# ?! U8 k  `$ ^) C# X3 |array1 = .GetAttributes 0 G( }9 v) u2 T8 v( i
array2 = .GetConstantAttributes ) Y1 w" i% w8 m% p3 |5 K$ K; I- W: Z
‘设置array1指向图形对象的属性
5 c$ w+ k7 w$ z‘设置array2指向图形对象的固定属性   h2 q0 L. D& O. h5 m
For Count = LBound(array2) To _ ( Z1 d0 I# F2 I& @, r; E
UBound(array2)
7 ~9 }6 A7 I1 H( zIf Header = False Then
4 D( i0 p( F5 }! ~3 w0 V7 g! b: tIf StrComp(array2(Count).EntityName, _
) Y; X- ^3 o# |. @2 r, ~' q5 L“AcDbAttributeDefinition”, 1) = 0 Then 6 _$ N2 A7 n: G: v% T6 C* E
tdfNew.Fields.AppendtdfNew._ 8 n0 }" w! ^5 {; V
CreateField(array2(Count).TagString, dbText) 8 T7 ^& G  Z, _5 J. Q) V6 \
End If . U3 A6 d1 R' P' f5 W
‘读出属性值读出,作为Access数据库表的标题
* W3 ^( g( D6 u  c, nEnd If
5 z$ b9 {4 K9 JNext Count
9 Q+ z( O* A2 I6 W$ gFor Count = LBound(array1) To _ 3 q2 y6 E' ^0 \9 B( N
UBound(array1) ( r$ [4 q9 u; ]0 h7 z
If Header = False Then
8 v; l. B3 q  w' k4 u- |( gIf StrComp(array1(Count).EntityName, _
: U7 Z& r9 V+ L; ~. C( j3 \“AcDbAttribute”, 1) = 0 Then 5 K5 H) O- W3 M0 o' H- l
tdfNew.Fields.Append tdfNew. _ * d; m4 A1 l8 l6 m
CreateField(array1(Count).TagString, dbText) + n; }8 Y3 I4 a+ d* _: W! c
End If ! s. E) N, _; F6 ^) O
End If . T: \" Z: B& C# p+ E4 |
Next Count $ u2 q9 R7 h+ z' g' h; v
If Header = False Then
$ l) K/ e" b9 c( V4 G2 G( L% Idbs.TableDefs.Append tdfNew
2 l% x4 C$ y. U& N6 ^+ `Set rs = dbs.OpenRecordset
8 R1 J5 F5 {3 b- @* |7 o(“电气材料 _明细表”, dbOpenTable) ‘打开记录
& X4 v- |/ N( E- ]' V+ jEnd If 6 I& Q, L1 i  E$ x4 p
RowNum = RowNum + 1
* K1 U0 [2 q9 f+ v$ M( D/ ^rs.AddNew ‘增加一笔新记录 3 z  O% M& }5 J( p9 u
For Count = LBound(array2) _
3 p1 K7 o( d0 m+ t' O% LTo UBound(array2)
, W" i: C2 F' \( \$ V9 W6 D; Mrs(Count).Value = array2(Count).TextString
: |. }" Y) \7 _& ]+ y# |Next Count ‘读固定属性值 & L  l% T: K- M5 j% m2 _
For Count = LBound(array1) To _ ; j7 t! f# m3 Y; n
UBound(array1) ' f1 Z. d3 ?8 F; v3 b  S  [
rs(UBound(array2) + Count + 1).Value = _
0 O% c7 b( C' B. N6 `1 N. f4 P& Aarray1(Count).TextString , ~4 Q0 u& H4 N( L7 o: J+ R
Next Count ‘读输入属性值
  E: ^- ~  g' h  Z- s% ~: `+ grs.Update ‘增加新记录修改结束
! Z7 Z  K' |! ]$ [! V( KHeader = True
- ]* Z  h. G0 b, L/ d  Y" V; \8 \End If
. p" H; G% q; X. LEnd If
/ ~8 |7 X* ]* TEnd With
; q! B2 s, L( x: K) ]7 ?3 vNext elem 9 q7 U: P9 @0 Y6 G0 |" |) M2 M
rs. Close ‘关闭记录,释放资源 1 y/ C0 ^1 a0 ]/ J  G; Z3 |
dbs.Close ‘关闭数据库,释放资源
* b4 X, Z; h- ^( J8 V) n0 TEnd Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot
  p+ f; M& `3 c5 N真是太好了
* [' q5 s8 a2 [! {+ Q7 N這就是我要的 ^^
发表于 2010-5-11 23:13 | 显示全部楼层
好用吗?有谁下载了?
发表于 2010-8-24 19:08 | 显示全部楼层
学习学习!
发表于 2010-10-25 14:37 | 显示全部楼层
先看看看再说
发表于 2011-2-21 05:48 | 显示全部楼层
下来看看先,谢谢了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-2-19 14:10

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

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

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