PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

[原创] vb操作access数据库

[复制链接]

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

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

15757753770 楼主

2016-12-11 15:03:17

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

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

x
c# c++ vb 是可以互相调用的2 s" F* D: t4 s; f

* E* s2 T5 D, hvb操作access数据库 的方法2 F( ^" W: G7 h0 r: j7 @

; e# n: c5 v) @; l首先要安装  Office2003sp2
9 s* Q' E2 f4 H! ]7 ^1 ?1 X8 C+ q& l2 L/ a, |
列子:读写数据库(.mdb)1 d" i9 n! B: f$ G; u% B" z
7 Y, X. w: e) m3 X+ Z( b; _5 n
1.创建 mdb
! ~8 G2 G8 S/ b. Y' ]: U, D开始->所有程序->Office2003->Access 2003  新建一个空数据库 保存位置C:\report.mdb  - q1 q9 c6 A6 [+ {& n
创建一个表格 并重新命名为test          (操作和Excel类似)
( g& M8 m: t6 [9 r3 p1 }
& h- _+ \5 o$ L* ^* g9 ]2 B- E, M注意 表格名称 和源代码要对应( @+ w6 e1 R. w3 Y9 y. c0 j4 W% G+ I

+ P; g# Z3 ^' b! ~. {4 c/ R
: Y: I- N& g9 T. {# _2.注册数据源(代码中已经注册)和写代码* d8 [) y8 E2 v& B2 \2 P

6 J: \1 [6 U2 W& e2 g) b$ s2 \' N: F( P/ f2 ~; ~$ `) J
在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,3 b' l$ D' _! M, W, }- T
我们必须点击菜单中的【工程】-【部件】,
: m0 u: v5 ?) b8 M7 _9 p- p* a在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和
) g  j, }3 g' N“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,
9 V, A+ R% g3 Q3 C7 x+ c, i最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了0 D; D* M0 Q+ X: H( ]
- u6 s/ V6 ?# P  c6 p% l. V

' q9 `/ w- o* B6 x1 h添加4个文本控件  Text1 和 Text2  和 Text3 和 Text4
* T5 B* B; S% q5 H+ t8 t添加一个按钮 ID修改成 “保存”
+ g1 V/ B' ]1 c' z7 Q! g* v添加一个 List17 S3 Q0 s/ Y2 }% P+ p

, t3 ~+ L& B3 ^代码如下
1 y. _' I) |) P
6 h& x1 _1 Y+ ?% R+ S* Q' a; L8 q0 B& \& T
Public conn As New ADODB.Connection     '标记连接对象5 A/ {3 i6 H8 T' |6 v
Dim sql As String
, \/ i" ~- B# {, j0 ~3 b7 eDim rs_maxcut As New ADODB.Recordset7 `; I3 {( K5 \1 o( O2 v
Dim str As String
% I+ L8 C: x* M3 L: {% vDim aa As Double, bb As Double
6 y+ f. i5 l& Q) MDim mbd As String
9 o: h( e$ h0 ]* LDim 总页数 As Integer, 行数 As Integer, 列数 As Integer) Q$ W5 b2 i" m8 D3 k' _
Dim 内容(999, 999) As Double* \+ p7 K( P! _# E2 D
* Y8 q5 Y& W7 t2 [2 E8 y% `
Public Function cnn() As String: q. b  Y2 x# r' y9 l
    cnn = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mbd & "ersist Security Info=True;Jet OLEDBatabase Password=123"0 U( E( a1 H! U1 s8 [% q0 w9 q
End Function
+ ^% p4 l& Z( ]
9 @* `* B( y2 {+ Z2 WPrivate Sub 保存_Click()
6 ], U/ x0 H! \0 }) I( }2 w! z7 s0 ^/ f( \  \. n5 z
writeDatabase
$ D8 H* |$ s3 {1 H% x4 F2 V) j# k    End
$ {4 ]% I2 _9 a$ m5 e9 rEnd Sub
8 q2 c5 |% g" h) S( e1 F' O, s) r2 ~0 X8 h# r! S( n& s; y
Private Sub Form_Load(): J9 x7 ^8 m% D  i+ w

. H) z2 d  b5 k4 `( `$ m  m mbd = "D:\UG_OPEN\ini\数据库.mdb"
) x/ B5 r6 v" L, o" Q  F9 `$ M7 j9 @
    conn.Open cnn '连接数据库
$ ]) V, `, V$ K( @' L    readdatabase
$ `7 n$ @, x. N1 r, ~/ W    Me.Text1.Text = "行数" & 行数
% {! X% n" V* ?  X1 o( ?    Me.Text2.Text = "列数" & 列数
$ l$ @$ t  p) DMe.Text3.Text = aa
2 k/ L+ [( l" e" }8 `1 |' h* W0 a& ^, O1 hMe.Text4.Text = bb
; r& S$ b2 `- [! S+ z0 g, h# t) r7 JEnd Sub5 |# |; ~* a6 R7 S! e! }
; Y5 H, A+ Y- g) y2 s( B5 V
Public Sub readdatabase() '读数据 (读数据和保存数据实际上是一样的操作方法)/ }* W, I+ b! b, {+ Q& }4 w9 y+ ]% \
    Dim i As Long
% A* a* ~! d# f4 W  P    sql = "select * from test"
. Y7 c& A2 w1 L. u    rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集
6 p* f& G+ @# j$ T1 ^3 {5 i
, ^0 W) d% y: J# t+ S) Z& `/ z
1 |6 c. O  }6 Z* H$ D, O4 z. A总页数 = rs_maxcut.PageCount  '页大小rs_maxcut.PageSize
  {1 O/ ]1 S: l, p行数 = rs_maxcut.RecordCount  '行数 (排除标题); ?( A" z7 \/ S0 Z8 S/ a
列数 = rs_maxcut.Fields.Count - 1 '列数 (排除标题)* t" ?' [# ]+ ?& |$ r

$ ?/ o& U1 S' o/ O* v( J. j) f    If rs_maxcut.EOF = False Then) L8 ?1 y" M- B# H: ~9 o# T) P
        i = 0+ n' W6 X& z0 r9 R" J
        Do While rs_maxcut.EOF = False2 s7 U* F& Z' B, X7 Z: z6 X2 x. q
           i = i + 1
3 [9 y: f6 l) J- ^  u* }/ O4 @+ q
           ' If i = 0 Then str = rs_maxcut.Fields(0).Name & rs_maxcut.Fields(1).Name '读标6 k" Y6 W3 N  Y+ C

" B6 G2 ^) b4 M- M            '第一行  或者  第一列的内容 他们属于标题 所以不管是行列我们都是重第二行或列开始的8 }+ R9 M: B6 Y0 f1 J
; Q, V4 j) b+ ^. T4 Q- C0 |
' h7 F, Z0 i( z9 K
       If i = 1 Then aa = rs_maxcut.Fields(1).Value '除去标题后的,第1行第1列
! I! X! f% I. \        If i = 2 Then bb = rs_maxcut.Fields(1).Value  '除去标题后的,第1行第2列
* R1 x  _- Z5 m# z
6 k; k+ m. `1 z% _1 K- j        '读所有内容到数组* r- ?% j! o- }' V9 G
        For j = 1 To 列数' j/ s! x" Q$ X1 L. O) |) F7 k
        内容(i, j) = rs_maxcut.Fields(j).Value) f5 r1 @% o+ O' O* H) h3 D
        Next1 f5 o& n& y8 k$ U& U+ _  T

* M( i# x6 d3 d. G0 c+ H/ I5 g4 U        rs_maxcut.MoveNext '下一行9 u/ l, i9 d& N3 e# c- x
        Loop
# {! K  {8 p$ a: e' U       rs_maxcut.Close '关闭+ J! J/ g0 D& H7 Z+ G% [: M- M
' j, x9 I0 ~, e5 P3 \" V/ Y3 X
0 H: p* E6 L+ j7 N' j8 U1 D3 A
        List1.Clear
; I$ C. t' M! @2 m1 w# T        For i = 1 To 行数
* D1 x/ C% g3 w% `" H* ]) [0 c        For j = 1 To 列数
* @+ l* |) w% s3 K& c$ [% W        If j = 1 Then
+ u5 Y$ H0 g8 g        str = 内容(i, j)
8 [* K; {0 ~3 ~& H+ U$ h! _        Else
) ~( z) u9 c; D  h# Y# i0 i8 ?: V        str = str & " , " & 内容(i, j)
1 f6 ?$ n. x) b  c        End If1 H+ ?: P) F& {' _: w+ }
        Next' M0 N4 S! d& l
        List1.AddItem str
4 p) R9 u# M# R2 E! E        Next
( a/ }& |+ @5 A0 E( ]& I6 q' h( F* H8 U7 p0 I6 U
    End If* [, a) b6 K& l

1 L' q: a% P* @2 f
" u/ S* m. E3 A8 S, h; eEnd Sub
1 @. r0 Q: ~4 j  T- j2 W: X) w4 v5 w0 p. p
Public Sub writeDatabase() '保存数据(读数据和保存数据实际上是一样的操作方法)* U9 N8 Y. C9 P. Q3 }. O
    On Error Resume Next
8 O% F6 f& J) W% M# K% R    Dim i As Long" i; X  W1 v! a5 G, L
    i = 0
+ s/ @, J+ }1 \& e4 R
2 z% g# C4 H3 Z/ V# bconn.Open cnn '连接数据库: y) y2 G  V+ g" Z$ n
; \( e5 U0 }! p4 T' J- G3 `
'sql = "select * from test"
4 V2 m. ~( h) m. P+ w6 i2 J( u! c$ e7 S* A% _: R. m$ f
  rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集* n' K/ k, _- a) e5 P* Y

0 A5 f2 a" i; N1 M    If rs_maxcut.EOF = False Then0 [) O, |2 G" ?
7 J* U- J8 ^9 f6 V4 d6 [
        Do While rs_maxcut.EOF = False
) b- @+ M# R6 y          i = i + 1
& f+ U. X& Y  u% s; w8 x' I$ M0 v' S4 o. H: E) ]$ x) g; _0 X
            '不要去修改 第一行  或者  第一列的内容  因为他们属于标题
. B  S5 @- B, a& A
0 C# L9 k- |- i, m            If i = 1 Then rs_maxcut.Fields(1).Value = Val(Text3.Text) '编辑第2行第1列1 Z8 m; }2 a! u1 I. n
& c: b9 k7 o; N& r: J5 h  V
            If i = 2 Then rs_maxcut.Fields(1).Value = Val(Text4.Text) '编辑第2行第2列
3 N- r  L' r' R: N7 S1 |  Q% w0 J* w* b) E7 I
              rs_maxcut.MoveNext
5 m6 u7 M# d$ H8 k# S$ b7 V% h  W6 C( @" m$ p6 y' k+ p, C6 l
        Loop
( Q: S. ~" V1 {; O% m% Z& Y
$ p* a# l1 E0 n( |. O/ n       rs_maxcut.Update
5 J. f# A$ T% r8 C9 D    rs_maxcut.Close. K' y3 W) c8 S: _5 G! f) i- m
5 g5 L! v* @3 `% h5 \
    End If7 x, P6 j7 T: k# D" F

& v$ k& z. `/ T( \$ S1 gEnd Sub
; J. t* I/ R' T& {
: j# d5 M2 M4 x( E2 V% J1 @7 a% a+ ?

$ n: K' {! b" c2 v1 V
, }' c1 G2 l. C7 m
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了