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()
, z& ]4 M" I/ A8 g& T6 SDim work As Workspace
+ K* `# m0 f1 W' K- ODim new As Database
) |' Q$ S; |" e8 [4 @0 O: w. S3 N; g' sDim elem As Object , M& C; `$ }8 F
Dim rs As Recordset ; b9 {% K; l' g! B
Dim RowNum As Integer
( R, S" q* @! e# \4 o) LSet work = DBEngine.Workspaces(0)
3 ]; F! _- B) R' EDim dbs As Database
/ C! I0 q8 X1 Q- SDim tdfNew As TableDef & x" E; S) k& @0 A4 x
Dim tdf As TableDef
& ^0 {$ ?, p/ }6 B3 Q2 l& w% n& B, U& ?Dim dbsname As String ( x4 j8 w" N: m2 P7 v+ t. p
Dim array1 As Variant : M6 I2 L6 F0 ]* T$ H/ w& W
Dim array2 As Variant ‘声明所需的变量及类型 $ a8 K& G' ~. s9 ?/ H2 v4 J
dbsname = “D:\材料表.mdb” 8 ]- R; j  R# p; I0 f% e$ W- x1 G% l
‘声明Access数据库写到哪一个文件 0 M, L5 ~% q) r2 D6 i0 {
On Error Resume Next : o' ]7 _  F' }' B5 \- X
Set dbs = work.CreateDatabase(dbsname, _
; q2 A; W: d' v. A8 a+ RdbLangGeneral) % ~3 q: E& q4 L( i. Q) A, W8 i1 G
If Err Then
6 b$ w( B' X8 i' O7 @0 i* b4 QKill (dbsname)
" x, C5 n. j# ?3 a2 N  L9 u‘发现要写入的Access数据库文件已存在就将其删除 1 e! X8 ^/ }& F: ?! M' [+ h+ G
Set dbs = work.CreateDatabase(dbsname, _
# \4 z+ d. b1 k" A! ~4 JdbLangGeneral)
8 {  H9 _. _. J" g5 g+ ~$ ?! XEnd If : b: L/ y) [1 i1 O7 s" H. f4 ^
Set tdfNew = dbs.CreateTableDef 9 N; E1 Z, s4 A- l; o
(“电气 _材料明细表”) 4 H" @0 i) L' J; [! D
‘建立一个名为电气材料明细表的表
, q" o9 i  d7 ~" y7 j" ?RowNum = 0
+ h3 w" r% \  u( {# m% f: bDim Header As Boolean 4 D% A0 i* l+ o
Header = False
: v; a- m0 N$ mFor Each elem In ThisDrawing.ModelSpace ' p0 M! s! }" f
‘在CAD模型空间,查找所有图形对象
' k( d, U; N4 @2 K3 W; g' |2 ]( w! ZWith elem
. f( x  r+ L* a* I9 c- nIf StrComp(.EntityName,_ % o0 C& c, r  M" W$ s$ G: U, y
“AcDbBlockReference”, 1) = 0 Then ) z/ K9 N5 P3 w
If .HasAttributes Then
/ R! D0 e1 W- \; Y9 Z2 Carray1 = .GetAttributes
/ m! Q+ q+ Z, karray2 = .GetConstantAttributes
! M; s! R% V) ?1 K/ v& M( G# K; Z: D) ?‘设置array1指向图形对象的属性 # U* E- \5 N# ~9 J+ X; |  R
‘设置array2指向图形对象的固定属性
9 T) R4 @2 {7 Z# H+ ?! ]For Count = LBound(array2) To _ 4 y% t) H9 _1 X# Q8 {  |4 s9 l
UBound(array2)
* Z; Z: p" b: f# k8 MIf Header = False Then
0 v) R, P: q, k# u- @; eIf StrComp(array2(Count).EntityName, _
1 {4 [0 U2 e$ ^! m' P! v( f) [' Y“AcDbAttributeDefinition”, 1) = 0 Then - {' h+ b  [! w& f2 M
tdfNew.Fields.AppendtdfNew._
2 W9 U0 z, {9 P+ nCreateField(array2(Count).TagString, dbText)
" Z7 h: |! W( [1 u/ [& S) qEnd If
7 T2 l" r: R5 K* w' `& c‘读出属性值读出,作为Access数据库表的标题
7 b; B5 W; J* b6 o& JEnd If
% M. f* [# h/ f6 Q4 `Next Count 1 f; a! |% M; ]- C: {* U, y7 ?0 j
For Count = LBound(array1) To _ , |( `. @4 |/ P1 c% Z" h
UBound(array1) 6 s$ N2 j) A# @2 R
If Header = False Then 8 k% P7 m+ A- P) Y) C; Y
If StrComp(array1(Count).EntityName, _
% p! G0 M1 ~" x# R“AcDbAttribute”, 1) = 0 Then
+ Q6 c2 B3 S5 n+ _tdfNew.Fields.Append tdfNew. _ & T! Y5 p. W: Q" J. N+ P. i
CreateField(array1(Count).TagString, dbText) 4 r! A# ]5 H) i" G, v3 n' @/ `/ f
End If
6 a; U5 C; L: h6 R/ n# zEnd If ( Y) v- T6 n9 P
Next Count
9 p% L9 ]# C+ N, iIf Header = False Then
/ d3 w) ]# S: e4 |dbs.TableDefs.Append tdfNew
% i  I; {% y, ]3 |Set rs = dbs.OpenRecordset
. z6 x, I: o  K( s(“电气材料 _明细表”, dbOpenTable) ‘打开记录 ! T5 I9 |+ Y, b" ^
End If - J5 D7 ~; L' q2 V. x' [) V" L
RowNum = RowNum + 1
% x) j2 M, H/ I( {0 V. `0 Xrs.AddNew ‘增加一笔新记录
1 _  [- j$ I* n( C0 W4 b" L- [For Count = LBound(array2) _
/ @$ e9 y! ^" c3 I# f* MTo UBound(array2) 8 l+ }. e, S$ J# E7 d
rs(Count).Value = array2(Count).TextString ) W5 ]) f. U  A3 D
Next Count ‘读固定属性值
; ^- M6 n1 C3 C1 x8 \, \For Count = LBound(array1) To _
7 ]0 N/ Y3 O4 k& x' H2 z  tUBound(array1)
6 V- j7 R' Y0 i  l5 L+ f% R( d/ yrs(UBound(array2) + Count + 1).Value = _
1 J4 s0 e3 o  e2 k2 D, F$ Rarray1(Count).TextString " U8 [$ b6 N( L  e* _
Next Count ‘读输入属性值
7 _: N, }8 c' Drs.Update ‘增加新记录修改结束 - a$ G% N1 p+ S3 H" b
Header = True # l+ l; q% N+ U
End If ) Y7 P/ ?! d9 U) A& t5 L
End If
) B, W5 x9 E4 o  n" REnd With
0 X$ E' t0 u; p$ jNext elem 1 ^: T0 X* p- Q$ L4 a$ M6 F
rs. Close ‘关闭记录,释放资源 % `% K+ X7 ^1 x. s) |- c. z4 O
dbs.Close ‘关闭数据库,释放资源
: g. x9 g& M3 h1 W8 G" y1 FEnd Sub
发表于 2009-1-6 13:50 | 显示全部楼层
赚钱中
发表于 2009-1-6 21:17 | 显示全部楼层
thank a lot8 {+ a3 b7 H& s2 L) U* U7 H/ l/ |6 Y
真是太好了 7 P+ X8 [! g$ G% W
這就是我要的 ^^
发表于 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-2 00:05

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

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

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