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

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

15757753770 楼主

2016-12-11 15:03:17

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

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

x
c# c++ vb 是可以互相调用的) L4 w- X! w3 ]

% P4 i! N! i+ tvb操作access数据库 的方法
. m& ~0 ~- j9 H, Y( ^0 R+ n+ c
! p) t9 F/ [+ _  {" _: O/ f首先要安装  Office2003sp2
9 b- G  C" E" A% F0 j8 s9 x& l0 P' E1 Q$ J0 |8 U* a% E* Z
列子:读写数据库(.mdb)( Y+ M5 ?) P" E3 e4 g

( ^# K0 v: z: P$ q2 Y$ j0 i. w1.创建 mdb6 r3 `4 F: S% p4 a
开始->所有程序->Office2003->Access 2003  新建一个空数据库 保存位置C:\report.mdb  
! }0 {" _; K0 X5 i2 Q创建一个表格 并重新命名为test          (操作和Excel类似)
; P3 M0 @2 X1 |6 E& `( P, U9 @# i5 z$ ^, s% v
注意 表格名称 和源代码要对应
! L* o3 ?& _3 ]2 Z* H0 w7 s: x3 Z) p; h1 N: }) U

3 `  r5 C6 r/ n& R2.注册数据源(代码中已经注册)和写代码
: [0 P. x! m) H& s+ H7 d; `8 [" ~, B- O
9 O# e; q* p' J1 B6 A- R" m' T% k
在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,
$ p* x4 z% L8 s5 t9 ^  D我们必须点击菜单中的【工程】-【部件】,+ _7 S2 ?+ C5 T* t- L7 w0 @9 `( W
在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和# o. L# `3 N+ @, w, P) V2 v, e% Y
“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,
. F6 s2 c+ ]$ m: _9 u; G$ j$ M! _9 b最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了
0 i; q$ g& V4 m: n! k
7 c# O& V& D  ]; u
8 }# o" I% K7 B, b7 N  t添加4个文本控件  Text1 和 Text2  和 Text3 和 Text4 ) }% m$ C, E* x/ e) e
添加一个按钮 ID修改成 “保存”
% \  k/ {# ]9 Q* q% ?8 h  z添加一个 List1( D! M' f2 \6 P4 a7 ]

, M: e; J4 ~9 h7 a& |2 W" \代码如下
, f. v7 e( I% U6 y! _, U1 M
6 x3 h7 w! R) q! ~) r$ Y, |  d* A2 ?" L
Public conn As New ADODB.Connection     '标记连接对象# O  Q2 V% o7 z9 _3 a1 S
Dim sql As String
# {* \0 L6 H$ \" ]" z5 q9 ^4 oDim rs_maxcut As New ADODB.Recordset8 ]/ V9 s  m! v4 T7 g0 g( u$ Z+ O
Dim str As String
" u9 S- @  Z+ o: F! _! I# uDim aa As Double, bb As Double* J: R0 f  Z/ h2 B' @; a
Dim mbd As String
, F( |' ~8 c# IDim 总页数 As Integer, 行数 As Integer, 列数 As Integer, r( H4 X5 A! J3 z) X! z
Dim 内容(999, 999) As Double
) d' l6 |1 t% s: r  y6 J7 ^# Q" A
, S  R# j9 |- x, E" fPublic Function cnn() As String
, D% t: T( H8 T6 p+ L; C" `8 F7 [    cnn = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mbd & "ersist Security Info=True;Jet OLEDBatabase Password=123"
* z, o+ ^8 L/ K, VEnd Function) J- y+ X% z* g- W

& m) A- p9 ?  Z. q/ TPrivate Sub 保存_Click()
7 E9 P4 Y) D: n: o( r
( A$ F% L$ t! w6 L9 b# a writeDatabase
# ~: F6 L4 R, m1 m  j/ c1 q    End
3 r+ }5 X$ L0 d; z5 ?. ]& O* CEnd Sub
- B; c2 X7 q/ N- A0 p0 `
( m5 X  J$ g; NPrivate Sub Form_Load()
$ D; v) M" H5 S0 G6 p/ \$ h' i' o8 q
mbd = "D:\UG_OPEN\ini\数据库.mdb"
- N* u: w* l& t2 z* O# p6 l! x! z2 `) C" Y5 q. w0 i
    conn.Open cnn '连接数据库* X, m+ S- B, i* z( @
    readdatabase# L- K1 O5 k" I3 L9 j4 u# b  `; W6 R
    Me.Text1.Text = "行数" & 行数
  n( A6 c( c8 X    Me.Text2.Text = "列数" & 列数% O7 _7 y$ \, k9 T* g1 i  X7 A3 c2 ?
Me.Text3.Text = aa& \; C7 \, v* A& F# z0 m8 p) [
Me.Text4.Text = bb
5 ?% B# N5 d# mEnd Sub
, y- w! y: i3 ?+ y% v% P; o! u! B& n0 h, _) A) ?! o3 b% v
Public Sub readdatabase() '读数据 (读数据和保存数据实际上是一样的操作方法)
+ x* H" \' X  s1 C# P    Dim i As Long+ [" ]+ K5 |6 z5 Z
    sql = "select * from test"# E4 v- Z7 ^; O- M$ x8 k1 n+ n
    rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集" O: z; N) N( C
1 d( `2 a; c, q. {3 a, G9 _

1 |6 G2 h7 _3 W6 U总页数 = rs_maxcut.PageCount  '页大小rs_maxcut.PageSize& t% W9 ^8 E! M! ~6 v
行数 = rs_maxcut.RecordCount  '行数 (排除标题)
( O! w: @. g  o- H" l, V6 D; D列数 = rs_maxcut.Fields.Count - 1 '列数 (排除标题)3 h: k- t6 B, D

" z, [, ^7 ~- e7 f  R    If rs_maxcut.EOF = False Then( \$ S1 i+ q8 Y# @6 i
        i = 0
; c' y, z: |/ h5 v2 L! v        Do While rs_maxcut.EOF = False
/ X% h. p& d: _, {' g; R2 ?           i = i + 1
6 {5 k5 m4 `0 w$ B* V. J# q
/ T  f; C9 Y5 P* f; x: @  ?4 t! C           ' If i = 0 Then str = rs_maxcut.Fields(0).Name & rs_maxcut.Fields(1).Name '读标
# t3 j$ D- T* _2 V, W; A. k0 q, C
            '第一行  或者  第一列的内容 他们属于标题 所以不管是行列我们都是重第二行或列开始的1 L( `4 E% q. O- @( d4 H( A, j$ I

' i" r7 z( [! |6 ]3 R$ [( t) @6 @  }+ g
       If i = 1 Then aa = rs_maxcut.Fields(1).Value '除去标题后的,第1行第1列3 g! r( L* \  I& }0 [" M+ c& H
        If i = 2 Then bb = rs_maxcut.Fields(1).Value  '除去标题后的,第1行第2列0 M, Q  D1 t0 O/ ]5 m
& \! w' z; z6 N0 Z2 B
        '读所有内容到数组
" h+ B6 S6 o) O! ]        For j = 1 To 列数- d0 j0 q$ x  }; E9 X- S. N
        内容(i, j) = rs_maxcut.Fields(j).Value# y" s  G2 W6 D. _7 [
        Next
  M9 X0 X$ S; T
' {& g( x3 d* }7 z- T9 d" f* _        rs_maxcut.MoveNext '下一行
! E7 k8 Q. t; z2 [" j/ m        Loop
+ ]/ @+ c; @3 P$ z$ P9 B; e       rs_maxcut.Close '关闭
. e1 S9 J- w+ p6 _! ]* m
  m- f: {7 h' _0 c4 s: r3 i* _$ L( q4 V5 \
        List1.Clear
) F0 P- {$ V3 n7 i. p( P        For i = 1 To 行数3 H' v* Z0 i5 L. ]1 r
        For j = 1 To 列数
. k5 e' Y6 T) K% d+ R5 L, a; p        If j = 1 Then: q6 A' C3 g& X
        str = 内容(i, j)
; r/ R9 x' q/ D6 n9 K        Else, q+ q1 Y8 [5 y" s$ e. ]
        str = str & " , " & 内容(i, j)
0 }) E) {8 r! S) Y- R: e) }        End If
3 n, z6 T/ @% ~' U. k' Y        Next3 K( }/ Q" g8 `9 t& i6 {" {
        List1.AddItem str
0 L9 Q8 [; \5 F+ M8 F7 Z+ t        Next
& \5 E. _! o0 u& G( l8 _! H+ W( v7 z
    End If
. q' q6 y+ U8 O5 q3 i4 y* Q# |
( }. U) A% w  f9 l  \% X: W# h0 b+ o4 Z
End Sub
( p! O; D" q. x* }4 d) ?7 u! p  J" K- `( e) S+ @4 R
Public Sub writeDatabase() '保存数据(读数据和保存数据实际上是一样的操作方法)* \6 d( k& l( k7 p
    On Error Resume Next
$ t- D" _7 i* Y    Dim i As Long
9 K% G6 g) N7 J- F6 T0 O: K8 Y2 d3 X. [4 m    i = 0
: D' A" [1 ?6 U" y9 o' j, ~6 |; [* c& k4 }3 H
conn.Open cnn '连接数据库
, B- W5 h% k8 p, [" p- T) A
# a7 ?& [' i5 \'sql = "select * from test"8 y4 m" e- F8 C8 ^+ w8 t4 I+ T

& E. C, o- @+ m/ J8 l# s3 u. D  rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集
& A* I3 @/ G3 q
, ~  q: j' G- p* g( K: B% G    If rs_maxcut.EOF = False Then
0 o% G- s* N4 H: j! u; y4 [* s8 \' i3 U
        Do While rs_maxcut.EOF = False2 i/ _5 E  O$ y/ v- n% {
          i = i + 1& O1 H: T" V6 c( x9 {$ k3 f) _

: O4 L/ k' @! \8 |; K- n% q! L            '不要去修改 第一行  或者  第一列的内容  因为他们属于标题1 _# }) x2 D3 B7 `% d* Y

9 I, f& v% f/ c; ?9 O. `) j            If i = 1 Then rs_maxcut.Fields(1).Value = Val(Text3.Text) '编辑第2行第1列
: b' r+ f$ `' B  Q8 @
7 B5 b, Q! x" j/ d( Q' }: i            If i = 2 Then rs_maxcut.Fields(1).Value = Val(Text4.Text) '编辑第2行第2列( H9 g$ G  O$ o! g+ `7 x% Q
4 p& ^5 z! l( E
              rs_maxcut.MoveNext7 L* N/ F$ y4 c& C6 n5 e7 {
  a2 j, K6 T) w
        Loop4 s8 z0 _. e9 ~  N9 f. N
6 D0 [" k' b1 P5 I) K
       rs_maxcut.Update. A/ Q) ]9 _$ J# |- i! m) i3 F
    rs_maxcut.Close2 O& X7 G# I' T. h; q

. r7 c! S7 @( @" a2 l5 d    End If
7 O/ [9 q7 t( e# R5 D8 |* a0 n4 i* t6 H2 ?  `) I
End Sub& \2 ~' M& K- I2 x2 z: w1 U

% C0 {( u0 B3 v% ?+ G
- j' r+ g( k- b+ t3 R. b, M
0 d( R. j4 {* Z% ^# J  m
5 D' B6 i0 y+ K, G# f& B
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了