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

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

15757753770 楼主

2016-12-11 15:03:17

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

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

x
c# c++ vb 是可以互相调用的
# m8 O5 F7 l+ T% X0 W# j4 }. |2 l/ Q3 W% K2 s8 v- {
vb操作access数据库 的方法
7 A9 a5 S+ @8 ^; s0 ]  [2 E
3 r! d5 [# p( C首先要安装  Office2003sp2
5 |' r5 H4 e, i, g0 V0 l6 p8 D( O, o7 c- Y) N$ B) Q
列子:读写数据库(.mdb)
; ]) }9 I  ~8 p2 U7 x
& W) V& Z) N! ]7 W1.创建 mdb* L0 }" p$ M# _+ W' a' z# H
开始->所有程序->Office2003->Access 2003  新建一个空数据库 保存位置C:\report.mdb  
6 j4 k+ c$ |, Z2 }0 r3 F创建一个表格 并重新命名为test          (操作和Excel类似)  k1 E0 _: b8 I% E+ S

- q7 E. f9 M! n9 q  t注意 表格名称 和源代码要对应3 L4 b  }. U" T" l2 T3 A

: e. i5 g1 x  ^2 P" y* [
: x2 d* {/ K' l! A2.注册数据源(代码中已经注册)和写代码5 @5 c2 w# ~: I- j
9 p/ C' U( q8 R$ O, e( v
4 {0 ]8 U; m  H. k! ^8 Q: ]& H
在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,
) U7 F7 a; F7 ^0 e) ^* D, v我们必须点击菜单中的【工程】-【部件】,2 i5 E; O0 b% S
在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和
3 }$ K* j# x- @7 E/ N“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,7 W0 @9 K/ _) p2 y5 v$ T
最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了
4 |3 c3 w: x3 ?) t. T8 ~% t$ h. x% u$ \  `, Y

. c: t! G& @; V  z- k添加4个文本控件  Text1 和 Text2  和 Text3 和 Text4
: c: E! r5 W! _. ~添加一个按钮 ID修改成 “保存”   i1 ^- \9 N5 k5 e: B. d
添加一个 List1
0 o' \9 }7 @9 J# B/ N" m
" n& f: O! ?  I0 t/ V( D3 I& F0 f" r: |代码如下% b9 {" V+ @* d8 ]0 i* ?
/ m$ u; ]$ f8 u  V; m$ _. v
4 S% `+ ?) M' o
Public conn As New ADODB.Connection     '标记连接对象0 |6 @7 ~7 [9 ^5 q0 [
Dim sql As String% i9 s" J6 K( X
Dim rs_maxcut As New ADODB.Recordset
# d& E* e: r% i; ~* w0 ?8 T6 r, GDim str As String
: @; h  @+ j; G$ w) EDim aa As Double, bb As Double- X# r& w% k: n1 }
Dim mbd As String
3 q) a( H) t  T8 t2 G1 w! mDim 总页数 As Integer, 行数 As Integer, 列数 As Integer0 Q% M* q: {: v# k6 B* z) y
Dim 内容(999, 999) As Double+ |0 I& S+ C  L5 q% v/ h! g! |: _
' y2 Y2 ?3 \! m. O/ r* j
Public Function cnn() As String
; z7 P* T# q; {    cnn = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mbd & "ersist Security Info=True;Jet OLEDBatabase Password=123"
5 n0 |7 S0 L4 H; y" g; H: l5 sEnd Function/ L0 X7 X1 H  H7 k$ W
7 s. k, _5 |4 Y* o7 n7 d2 e
Private Sub 保存_Click()
+ V5 U% s5 \/ x" d# ^0 Z1 {# j, E' z5 u: f$ O/ X
writeDatabase
) O/ m9 Y, W. m    End1 V. x( j" I* S: R
End Sub
- [9 m2 v9 L% G8 b5 f8 ~! G- D, T8 D# X7 m; X/ ~2 d
Private Sub Form_Load()
' ^2 d5 ^9 M" Z) {
4 B5 a. x3 O/ P9 u* o8 s0 y mbd = "D:\UG_OPEN\ini\数据库.mdb"; t+ ~; g- W2 a) j9 \+ G" r

2 J: @* `( c( Y    conn.Open cnn '连接数据库7 l4 B3 z0 M% Z/ q; P
    readdatabase
4 ?# u+ [% E8 D! ~1 {. ]    Me.Text1.Text = "行数" & 行数
6 V* N5 N& p- M2 z8 q    Me.Text2.Text = "列数" & 列数" }7 Y4 q/ N8 Y5 x% _! q
Me.Text3.Text = aa
) O6 _# Q7 t4 sMe.Text4.Text = bb
, I! s$ I# h) u3 wEnd Sub; W" Y. c8 c, l
  f) b1 @" ]* c3 d9 K8 O
Public Sub readdatabase() '读数据 (读数据和保存数据实际上是一样的操作方法)
6 ~; `- E4 n, h' |; j    Dim i As Long
7 ~0 J1 i, s3 m. l0 r* ]# I    sql = "select * from test"
# t: Y5 A% s, E; p* i    rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集
% r. A  t3 K/ ~! N+ Q2 N
8 z, e  {9 P4 D8 Y" U4 f) ^
  a3 D4 s0 B5 V' X$ O# J) J8 o总页数 = rs_maxcut.PageCount  '页大小rs_maxcut.PageSize
/ P0 r: i) T, _8 c7 n) s行数 = rs_maxcut.RecordCount  '行数 (排除标题)
2 o2 _1 m6 v; I; f- `! {列数 = rs_maxcut.Fields.Count - 1 '列数 (排除标题)  ?9 Z" E" E- }3 B2 M8 S
! ]( f% E& b# g
    If rs_maxcut.EOF = False Then- z5 h  B' V& n! z( H/ h
        i = 0
0 b- d) E4 G2 ?        Do While rs_maxcut.EOF = False
& h3 {3 v; W* w% r9 G" g2 S           i = i + 1
% d- `7 J4 i2 C& X7 ], H2 c: r( m6 p; ?$ w
           ' If i = 0 Then str = rs_maxcut.Fields(0).Name & rs_maxcut.Fields(1).Name '读标
6 k5 ]: W! ?; m+ F# B
, v, ^, ]- n' P& [) s. c            '第一行  或者  第一列的内容 他们属于标题 所以不管是行列我们都是重第二行或列开始的
8 p0 ^. f, B! [% v( }6 B, w+ ?! j+ c, U: S$ c
& L/ T9 S8 y3 s/ b8 [
       If i = 1 Then aa = rs_maxcut.Fields(1).Value '除去标题后的,第1行第1列
' F7 ~1 @2 N* r- ?' m- C5 x5 d% l        If i = 2 Then bb = rs_maxcut.Fields(1).Value  '除去标题后的,第1行第2列2 I+ {) x/ m1 l' l3 J" P
) v* J/ g0 j& G. d$ y4 e' Y
        '读所有内容到数组7 V. |  e6 w- m
        For j = 1 To 列数
$ Q$ m/ O% U! x6 g. O# B        内容(i, j) = rs_maxcut.Fields(j).Value2 m! S$ }1 x; }( n& U+ Z
        Next
1 i1 ~# M+ L  H( E4 I2 b  `& G7 D- L7 i7 R1 g
        rs_maxcut.MoveNext '下一行- |& N) i& O; r# E- o
        Loop
0 a9 x4 z: ?. n" o% J7 r       rs_maxcut.Close '关闭
: ^& D9 `" D" t
$ I. B% R9 A& I( O3 p( P# \) b4 ]: n3 _& x! L$ o
        List1.Clear
& _6 X5 n5 [% ~' ]        For i = 1 To 行数
+ w& r8 O) o6 m+ B' c. G, [        For j = 1 To 列数; v- B0 z3 z- ?6 Z  U
        If j = 1 Then; {  X& ^+ _% _& k5 ^0 o0 V% B% W
        str = 内容(i, j)% G8 m* f. P/ ~/ Q
        Else8 s- q5 V9 T5 P; O2 `. {- m" s* A0 i) g
        str = str & " , " & 内容(i, j)
6 b  J3 W+ p! H        End If
  k" T1 Y, ]' h- |        Next
& j5 ^$ q1 p) m# ~        List1.AddItem str  f% e1 [/ a4 @" }( d& I. }/ s
        Next
  T2 o0 ]! [+ D6 c' H# e" l5 }# `4 U' \- v# L1 D
    End If
6 v" c& V% d9 J& ], l3 M
4 k  @" C5 q6 \
" |; X/ f3 e3 UEnd Sub
: ]$ t1 M  h& C4 n
# P" d& U0 f2 n0 J  K: |2 oPublic Sub writeDatabase() '保存数据(读数据和保存数据实际上是一样的操作方法)
+ J: h/ b' R  m  `# b+ s5 ]6 z    On Error Resume Next
% T3 B( Q! b: v8 a4 l3 R6 z    Dim i As Long7 c2 U6 G8 n+ @6 d8 a8 v/ M/ Y2 E
    i = 05 Q  a( ]- Z! I, c4 G; o% q

, }8 W7 |2 t- o2 F" S, _7 M- `% z& a4 cconn.Open cnn '连接数据库* x* e2 q/ ^4 `0 F

6 G2 ~, Y6 g2 O+ G6 ]'sql = "select * from test"
$ j4 N) h0 J! q
' L/ O9 l+ c3 _  k0 w  ?  rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集$ H, m+ |  ]% c; X( }2 W9 p
% C% A& X  J5 y" u" t& R9 N: ~
    If rs_maxcut.EOF = False Then
1 F9 O* m3 k/ j5 ~2 r/ p/ s: T5 m
        Do While rs_maxcut.EOF = False
$ A/ ]( r3 E% E7 U* z% h1 P: R          i = i + 1
( r1 {9 u/ H0 K2 f' P: C' C# a% K. h2 B
, k0 I: @3 Y% }( Y' e            '不要去修改 第一行  或者  第一列的内容  因为他们属于标题
* Y1 H: L5 `' B& X6 m
8 s2 T# C3 n: }% d9 {8 o- S3 g            If i = 1 Then rs_maxcut.Fields(1).Value = Val(Text3.Text) '编辑第2行第1列
2 J4 k, x0 A: z9 _* ]+ n" d" _/ L
+ ?, ?+ S+ o) P) q. C1 L* _            If i = 2 Then rs_maxcut.Fields(1).Value = Val(Text4.Text) '编辑第2行第2列2 b* g& A/ R' \* D0 k4 w
  C. S3 z8 |5 V7 M+ }! T$ Q
              rs_maxcut.MoveNext- S, m% n  u4 I
0 S. Y% G$ N/ u, V  m
        Loop1 M# P8 Z0 G  J, O4 k

& j* y) G1 m0 o- S, v! h. m' u       rs_maxcut.Update
+ H% R6 [4 x0 q6 P) t* l    rs_maxcut.Close
+ v7 e$ f. `8 G
# H: z2 X9 ^; d3 L2 w& v9 P' c    End If
9 ?. F' _) u5 _' o2 r& G7 E0 b5 u: @- }
End Sub6 |# ?! S( Q5 D. r: b. q

+ {4 e7 C- ~  n2 o! u3 _; d) r2 t# n( U- F

. g; {% J5 ~" M' Z- c  b  a* X
" k4 }  D( U, a" _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了