PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

[原创] vb操作access数据库

[复制链接]

2016-12-11 15:03:17 2427 0

15757753770 发表于 2016-12-11 15:03:17 |阅读模式

15757753770 楼主

2016-12-11 15:03:17

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
c# c++ vb 是可以互相调用的6 R3 @3 H6 A& ~4 W7 d; X& W; X

; S4 k2 t. Y0 W3 }2 L8 q; s6 d+ E  Zvb操作access数据库 的方法
4 G* C1 w# v, I6 T! _- e1 H
0 D" b) ~- P- [首先要安装  Office2003sp2 % s7 [( E; y" o& ?, I
( d$ S. M! W" a8 o. f
列子:读写数据库(.mdb)
$ Y7 W  T* i+ r7 z
) X0 m( ~* L# `% o* H# C9 G1.创建 mdb
& _) M* H& _& m' K开始->所有程序->Office2003->Access 2003  新建一个空数据库 保存位置C:\report.mdb  
1 o6 s% [$ y; E4 A创建一个表格 并重新命名为test          (操作和Excel类似)
+ Y" r- |0 o+ Z
) A# Z! W& r8 D" ~, I注意 表格名称 和源代码要对应5 P1 `- R- s6 `: G7 `( c

# [1 J* R! z! E4 _* q* d) X$ `: U+ E9 G
2.注册数据源(代码中已经注册)和写代码
9 f; k) j: [' T& p" N/ B0 N9 T  \# ?
. O* q- k- j& f& w- L8 Y; K
在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,
5 p) b& S9 i' g) }! A  z我们必须点击菜单中的【工程】-【部件】,
* a/ z9 v4 Q9 w7 f在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和
4 H* y& I9 A1 e+ A3 T1 ]: r9 |“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,( {2 @! Z5 M. F9 A0 ~5 K$ h  @9 |
最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了9 l- A7 x% h+ E% G
7 }# r, y5 U& E6 }7 a- m" `4 c

4 R: W1 L, E6 g8 ?( `% @添加4个文本控件  Text1 和 Text2  和 Text3 和 Text4
( e# z) i0 H' T3 E) U: ~添加一个按钮 ID修改成 “保存”
* q8 O( b/ g8 F& t& d添加一个 List1' ]+ f+ x) [; ~% s1 ]
; a6 @& p+ Y. Y4 r) K
代码如下
7 X# W" T, |7 @; i4 ~# d+ F5 i( M

2 A. ]* x9 I  f3 r6 O% L) fPublic conn As New ADODB.Connection     '标记连接对象5 t. ?$ h5 V# I! M  _- N0 ]2 `
Dim sql As String1 x+ P: c2 E; g+ ^! F, o2 s
Dim rs_maxcut As New ADODB.Recordset& Q( Z. d' M+ ~% R% ]4 k& ]
Dim str As String( d2 T5 ^. P' I$ [% B
Dim aa As Double, bb As Double9 r9 F& z; C6 h" U4 i5 }; ^/ k
Dim mbd As String/ N8 X" x: n( Y) B$ e& B# W' _  g
Dim 总页数 As Integer, 行数 As Integer, 列数 As Integer
+ d* Z  A' P+ U6 [4 L( |' d; _Dim 内容(999, 999) As Double
, d9 {: R8 Z4 H0 i+ L( T- x# \4 n2 w, l5 K- N
Public Function cnn() As String
* {) B; m8 |0 u) v0 P    cnn = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mbd & "ersist Security Info=True;Jet OLEDBatabase Password=123"
/ ?, I1 y( ~7 x/ G0 d6 UEnd Function6 U1 Z  ~  c+ Q6 k7 }
' f' ^1 w* E5 }, D
Private Sub 保存_Click()
% [$ L$ F& O3 c* R, I: V0 d2 s& }  ^6 P: S
writeDatabase
( q0 F% P4 t: q5 n2 N4 d1 ?7 ~+ Y+ y    End! X# J- w6 c3 K( b6 o+ @
End Sub4 L) @9 _2 Z8 `# M! p2 J
, E3 y( h" D6 |- S+ s+ k
Private Sub Form_Load()4 I" d5 }( \$ b# k+ Z% E% L

# _  h) K% S: J' @5 Y- K+ g mbd = "D:\UG_OPEN\ini\数据库.mdb"( W$ }; Z. i! S! e

: W- U+ M. z0 H3 p+ F: N    conn.Open cnn '连接数据库
& X% V, c3 z- p( n/ Q    readdatabase
  x& K2 Q0 u: @1 i: U    Me.Text1.Text = "行数" & 行数
  {6 q* H. F0 q: X$ g    Me.Text2.Text = "列数" & 列数
2 S6 j5 I% a. u+ U, e. UMe.Text3.Text = aa2 P; Y9 }, }8 \8 s+ ]; v5 E, ~
Me.Text4.Text = bb; }0 M2 x1 a' {2 y
End Sub
, r5 Y2 d  y, d9 E) j3 G& s- P0 M: c+ O/ C% g$ j
Public Sub readdatabase() '读数据 (读数据和保存数据实际上是一样的操作方法): ?9 i) G1 N( _! Q) d
    Dim i As Long
' g2 t9 j- i; g, Z1 s3 R' Z8 P* ^  d    sql = "select * from test"
$ I: P* x- ^" ]# A8 b    rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集
, a! q1 @0 u( c: [+ l) Y2 S# ^, n( b8 Y
/ f2 m0 C' ~4 w7 p  W  }4 n) T/ N/ j% G; C3 B
总页数 = rs_maxcut.PageCount  '页大小rs_maxcut.PageSize5 [% ?1 n6 Y* q6 c
行数 = rs_maxcut.RecordCount  '行数 (排除标题)8 u* ?2 U5 @2 `% j# V# |
列数 = rs_maxcut.Fields.Count - 1 '列数 (排除标题)
; C( L0 E' `4 V5 D# M9 U3 v$ l/ A" Q
    If rs_maxcut.EOF = False Then" N* m" }' a4 H. @
        i = 07 m3 D7 T# G  B; M
        Do While rs_maxcut.EOF = False, T' }' i! l! B! ]& Q
           i = i + 1
3 ]2 z0 w- a: J. i* J4 ?$ E) b2 i2 \4 E/ q
           ' If i = 0 Then str = rs_maxcut.Fields(0).Name & rs_maxcut.Fields(1).Name '读标
9 {0 u& U" f3 k" R) S1 l' p! ^
4 s* F1 S  j1 t& ?2 r            '第一行  或者  第一列的内容 他们属于标题 所以不管是行列我们都是重第二行或列开始的$ x6 L6 {: X7 J6 t

) O! c* ~) A! b
. k" C; H7 _# \% L       If i = 1 Then aa = rs_maxcut.Fields(1).Value '除去标题后的,第1行第1列& t1 [) t8 m4 ]. C' r
        If i = 2 Then bb = rs_maxcut.Fields(1).Value  '除去标题后的,第1行第2列
6 {3 v3 p7 _& c, A
% c! |7 F6 k* X5 f, I* U( Q% p        '读所有内容到数组
7 O/ o- L0 @: f; I# o3 Q. M        For j = 1 To 列数1 T2 [% L4 E2 L2 ~+ ]
        内容(i, j) = rs_maxcut.Fields(j).Value. I9 Q+ n6 I7 Y3 a! h5 s# }
        Next# \& _& m5 L. u

+ L6 n& h. Q! m1 J! ?# J        rs_maxcut.MoveNext '下一行& I5 X# z& n1 Y" Q+ j) c/ ~( D5 n
        Loop% g# o! H* Y* _& ^' L8 \6 U- M4 O' C
       rs_maxcut.Close '关闭
1 M) u% |( s" K9 j  C: g- A  t; g: j7 o3 q  \

6 e) a8 }" f: V# E        List1.Clear0 O+ [; z  p4 k8 H. v3 ^7 ]4 J
        For i = 1 To 行数
0 A9 N# l9 ^- ^8 |$ N        For j = 1 To 列数; z. s) [7 V& h2 o0 ~7 X
        If j = 1 Then( a% I$ K1 Q5 h/ x: E9 l: L( Q
        str = 内容(i, j)$ U* r( i& S, p, P4 f4 H
        Else
" ]1 Q* t, H& ^$ U) f* b& E; T        str = str & " , " & 内容(i, j)7 m% Y% V3 |$ \' r$ F+ |
        End If
! T/ z  y. c4 s: E        Next
+ z& p) f) K6 H& y        List1.AddItem str
0 C2 c0 s' R7 r( I/ Y3 l4 H9 n        Next! w2 {* Z: T! J% `" [
1 j2 ?; H8 Z2 @4 c# c4 c3 q
    End If! P) q  z( J5 ?* F) F

1 v2 V- V( }4 C6 B# k0 J) w" u: I2 Z. e) G$ q- I; n0 T8 i
End Sub! p; @2 Z$ k  E% \. ~
- n3 D  G& Y8 b6 g" A
Public Sub writeDatabase() '保存数据(读数据和保存数据实际上是一样的操作方法)
6 i( z( Y( `5 U  T& K    On Error Resume Next
- ], l( W3 W: ?& n% u7 e5 I    Dim i As Long
3 r, A- E& _% h/ \( ~    i = 08 M4 u9 h9 i$ i, T* E# F

9 @7 M; a- q" Q5 a' |conn.Open cnn '连接数据库- v- E9 z/ n' v3 @; P! {! I8 A

: D) J- M) Y5 A: A'sql = "select * from test"8 m, V. [, |8 J4 {5 p/ W3 \; _) g
% n  B  \* a# F) p6 p: C. o
  rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集  K7 N/ }. n5 H" G6 e: A$ s7 ]4 s
. L1 I/ {9 D# P7 @  w
    If rs_maxcut.EOF = False Then/ R$ V5 H6 Q" g2 z7 o

) V! p% C5 ]" n& z2 u* [- e5 K        Do While rs_maxcut.EOF = False9 N8 z) {6 M, @& H& U. H' D
          i = i + 1
1 e# F: x% T2 A' m+ [( d2 @: r4 N" f% J) g
            '不要去修改 第一行  或者  第一列的内容  因为他们属于标题7 F$ k3 \1 P3 I) ^% W) Z

3 }( b8 {, ^- _% S- e7 Z$ q            If i = 1 Then rs_maxcut.Fields(1).Value = Val(Text3.Text) '编辑第2行第1列% L* |1 H% T6 Z+ F" c6 {

0 \3 h7 a! ~- x; u7 Z( A; b: s  |            If i = 2 Then rs_maxcut.Fields(1).Value = Val(Text4.Text) '编辑第2行第2列
1 W+ W( k+ s4 n  h8 N; ^
4 D; I7 @2 R9 ~6 [4 j, @              rs_maxcut.MoveNext6 b- j% n( c) S1 m( Q6 @) g% ]
7 r4 u: G% [: b. f
        Loop3 e5 c* L( k. f
" s4 O1 a' r+ v  Z
       rs_maxcut.Update
6 T- j# S1 ~; e' P5 m: f% J: o    rs_maxcut.Close# R5 F* ]" h3 O+ T0 i

3 L+ [9 x2 A1 K6 V% Y4 U- S1 T    End If9 C: q) G8 w% ^( G) C

; E% D  K2 P8 r8 ]* |# NEnd Sub
; Y: Q, W" p- W9 k- M$ v5 d
9 D' {9 S: c4 p5 b5 _* v. |, m
" ]& d4 X: c" A. N9 Z1 v  D1 I& i6 m5 o- J: U
% E/ k: `6 l8 X7 _
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了