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 2362 0

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

15757753770 楼主

2016-12-11 15:03:17

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

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

x
c# c++ vb 是可以互相调用的" l1 e) |% j3 y0 p

2 Y, y/ u2 A# Y2 o& avb操作access数据库 的方法! ~3 [% n. a! M  \& K" H6 l

7 Z  `/ B+ h. M! {7 _- w首先要安装  Office2003sp2 * J) G. G" z& C& ~* e: Z

8 [- @7 D$ |9 t* N列子:读写数据库(.mdb)
+ J3 a1 i  q" p. @# ]/ Z
' @7 P% \! _! e* {8 E& L! k1.创建 mdb
3 r5 ]) ]$ X  W8 n, E( K开始->所有程序->Office2003->Access 2003  新建一个空数据库 保存位置C:\report.mdb  
& n, B3 U, S% ~$ R创建一个表格 并重新命名为test          (操作和Excel类似)
. L) Y' f8 V6 o& K4 S: p8 R1 t( V3 I
! x- b9 J: Z# y" o* C注意 表格名称 和源代码要对应* V; E) j' W1 c% r, c2 r, H
8 G! \. K; z! q  W/ W; i, Z. A2 i

) Q7 a9 H; {, @) \+ T% E2.注册数据源(代码中已经注册)和写代码
# u, ^0 N% X) }' ^! F! x0 x( a: P( Y) }( G
- q) W0 D% C3 ^5 f' Y
在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,' e! H$ N4 |6 l1 `, [# a6 Z( f2 y
我们必须点击菜单中的【工程】-【部件】,
8 H) h6 Z1 `" s, L) R  N" A在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和3 d  S: D0 B5 G! F( Z' S1 l
“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,6 p# t1 h+ W' m" y# B! Q& t
最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了
; t& d5 ^' I% H
$ w  E1 x7 H0 Q  a" A; t0 R
8 T# u0 J2 Y; O; n. ]6 k+ B/ n5 S添加4个文本控件  Text1 和 Text2  和 Text3 和 Text4
4 p3 l8 y0 A& c4 N2 @* m添加一个按钮 ID修改成 “保存” * T6 a0 Z3 [* B1 m+ W0 w' c
添加一个 List17 l, T6 n2 t+ q9 b0 C3 {

3 M  W+ ]- z! f代码如下
( y+ X3 V0 P2 g, F4 L9 ~; f# n, `% e/ J1 C* @! k+ l
8 A: ]% V: R: I; r8 {! y
Public conn As New ADODB.Connection     '标记连接对象
" W, R# [& b. V4 E: k4 W2 W( EDim sql As String
" k  W( C$ k* H! G7 UDim rs_maxcut As New ADODB.Recordset
# c3 V% p4 N7 k: J; p3 aDim str As String
# x; _8 n6 A; l( k. V$ WDim aa As Double, bb As Double
: [0 y6 [7 p1 C! D7 BDim mbd As String, o! \  ~# S+ z) e
Dim 总页数 As Integer, 行数 As Integer, 列数 As Integer
, l; Z' v! B3 w- ~4 f% p3 @. _( H& BDim 内容(999, 999) As Double: U4 t4 C7 J4 |& y* [4 P& l
$ n2 X; q" [3 V. c6 x
Public Function cnn() As String
/ ~3 \2 s& K: `; O    cnn = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mbd & "ersist Security Info=True;Jet OLEDBatabase Password=123"
7 u0 X: H, N( s1 E* P) E; }End Function
9 r& \3 K2 g6 c4 X( X$ r8 g% x* p' n) W7 p& r% A! A# u; O
Private Sub 保存_Click()
  [! R& ]0 _0 ]
4 u* e9 _- ~# Q! _3 G+ @0 }; M writeDatabase
% O) J& f$ S- \8 g; C* E0 Y6 B    End
2 t+ m( T& V- o: kEnd Sub" A+ l1 Q9 l  U; V

2 T) j" F* J* @9 ?Private Sub Form_Load()! ^( N  m0 `# M' ~( a3 ]% b! Y

" a4 h9 }( y7 b mbd = "D:\UG_OPEN\ini\数据库.mdb"
* V$ I9 X0 a6 F1 s5 @& W3 a+ a- j# q5 D5 M! b+ @2 @
    conn.Open cnn '连接数据库
- |; C! W5 I& g) r    readdatabase
2 }( d( t% T8 h) Z5 G    Me.Text1.Text = "行数" & 行数0 w2 |# n; [. `- |" j
    Me.Text2.Text = "列数" & 列数
* G1 E  Q6 b- H; sMe.Text3.Text = aa  x) ^0 O( A) z# Q
Me.Text4.Text = bb
2 N6 Q* f; O$ @  i% |0 SEnd Sub* E! h* ~: j: L  J6 l
5 r2 @8 C3 u. g5 I
Public Sub readdatabase() '读数据 (读数据和保存数据实际上是一样的操作方法)9 G, _) C6 P& y" [- o
    Dim i As Long
9 C( B7 t7 N$ Y3 G  G# N# m    sql = "select * from test"5 n" x/ }! d6 _0 H" A2 t+ Q; {, d: V
    rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集2 x6 L- F0 j! n( A; r# ^/ \9 z
' @  I4 \; T; V6 D  @3 B5 P
, g# ^9 ?  ]% m( K; ^
总页数 = rs_maxcut.PageCount  '页大小rs_maxcut.PageSize
& H* }. q& n  s4 }行数 = rs_maxcut.RecordCount  '行数 (排除标题)
! f5 ]+ d( B# D" C列数 = rs_maxcut.Fields.Count - 1 '列数 (排除标题)
, U: \) M( b  n1 ]9 Z9 z7 y' _, B6 x$ K0 q* {& F0 c/ Z
    If rs_maxcut.EOF = False Then7 t! D& W5 o& f/ V5 `
        i = 05 p" G9 G, {( l7 v
        Do While rs_maxcut.EOF = False) C6 b  L+ D* I' h* K3 ^
           i = i + 1
" W9 V$ u* w) ~) u* z* O
: O4 ?5 z" f" f5 S3 W; o1 s. e           ' If i = 0 Then str = rs_maxcut.Fields(0).Name & rs_maxcut.Fields(1).Name '读标3 u, H8 b/ O2 x& u8 j
* u0 o& N/ u" j. C( g. [
            '第一行  或者  第一列的内容 他们属于标题 所以不管是行列我们都是重第二行或列开始的; [9 \/ P% E' C  M# C$ \

' V) g) D  S& |0 q
# M" x9 i* F3 V       If i = 1 Then aa = rs_maxcut.Fields(1).Value '除去标题后的,第1行第1列- [4 ?1 @3 M8 d. O1 E3 k
        If i = 2 Then bb = rs_maxcut.Fields(1).Value  '除去标题后的,第1行第2列4 d" E; y3 x- i  W
% z# c) o) W) N; x
        '读所有内容到数组* Z/ ~& L+ Q( }  F8 R) G- Y
        For j = 1 To 列数) ^  n" N! T6 b3 B; W% T
        内容(i, j) = rs_maxcut.Fields(j).Value
( Y2 U% ?0 W+ A( _+ W& x4 j* D; r        Next
6 I3 \0 r; K; p1 k# @& x0 G
) e- @* Q% g) ^* `4 u! `! Y; ^- o        rs_maxcut.MoveNext '下一行
$ {& n. f7 r- H        Loop# [$ B# C& E: Q9 }& X0 G
       rs_maxcut.Close '关闭' b6 T" e& E7 a6 Y3 t- h- I4 V
! M' C! _" s9 I3 V4 O" i  q+ A

; i9 z6 f. a; S( O& D        List1.Clear4 O) u6 U' f- y) T% m$ i
        For i = 1 To 行数
2 O$ p& ^* P: x( {        For j = 1 To 列数5 e* ^( `. ^9 e) `' X0 }
        If j = 1 Then, [0 G8 X1 I! Q- O+ }4 z- J
        str = 内容(i, j)! K& I5 J6 J3 d1 |+ k0 g" p4 T
        Else
! |0 h& \& t4 c        str = str & " , " & 内容(i, j)
" |6 q6 I7 `; I8 n" j' q8 O# f( _        End If
. Y+ v0 ]& ?* l2 i% z7 H& j        Next
( D$ A: T% l) ~- W/ E* M        List1.AddItem str
3 i8 n; k2 U! A# g        Next5 x3 `0 C2 t7 T" j! r3 Z& i

9 C, c8 z' A, K2 F" W2 e: O    End If
" T/ `8 l2 [& _# A* k" Q
# B! \/ r) E+ l+ \, M1 H8 H8 o, k! ]0 f' v& @& A2 {: d
End Sub
) n( O6 X  E6 b6 P7 ~) {$ i7 N  h5 U8 X; _: O3 s4 |
Public Sub writeDatabase() '保存数据(读数据和保存数据实际上是一样的操作方法)
2 `. p* \% L( ^    On Error Resume Next
- H: B; s$ z  Z2 R9 \. e. J    Dim i As Long) J! a1 R/ t) C& O4 [7 N
    i = 07 }( `- ^/ ~& H* e8 e+ H
( x, Y) E% e1 Z. S+ P& p& ]9 C4 b3 j# Z
conn.Open cnn '连接数据库
9 @# c; C8 a  _
- y1 {% O0 Y, Q3 y'sql = "select * from test"( y9 x% y% M8 H6 u& s5 V

7 D( s2 A! I9 w' b  rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集& t' {6 {9 u- m8 ~% {
! ?# ?. c. G3 G/ d( I. c
    If rs_maxcut.EOF = False Then
( r& H* Z2 ~% w1 P& g
( u8 B6 }1 ~' v% o        Do While rs_maxcut.EOF = False
4 i8 U: z  ~1 @# A          i = i + 10 B/ a: d! I7 r( i: q3 Q0 K$ e4 v: I
  L4 \" f( J9 m+ p( U
            '不要去修改 第一行  或者  第一列的内容  因为他们属于标题$ h: i, F  t: z: f. |1 n9 b" I. q

! ^1 _5 W" x9 g, j; \5 `+ c; }/ m            If i = 1 Then rs_maxcut.Fields(1).Value = Val(Text3.Text) '编辑第2行第1列: e5 e$ x+ J, N* ^6 g; t
; D$ [4 ^& _) x" V4 \, Y6 _# V
            If i = 2 Then rs_maxcut.Fields(1).Value = Val(Text4.Text) '编辑第2行第2列
8 t& g5 s* r8 T1 z7 ^3 y" A3 v# w8 |0 @9 L
              rs_maxcut.MoveNext
: f" a5 r/ b# D$ I2 n* x
3 v# F. ~4 w5 M! `        Loop$ b& U$ s3 V: r3 k) ^, l
! J% p6 F2 u: m" f) s( H
       rs_maxcut.Update
$ Z* v& q1 N# k6 O    rs_maxcut.Close
, ?/ V% y( v6 H( i7 @
2 L/ G) p. k* w0 Q; r! \9 }    End If
. C1 V0 j* r% I
9 L  N  [3 i; {( f9 }End Sub
. o) m0 ~8 f9 Q9 x
2 Y/ n. Z1 x+ J# c( {. j
# d; p- W2 y$ ^- e5 i: n/ ~% V( R$ F. N5 Z/ z
' N/ H7 ^8 {$ C8 N3 c$ g* l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了