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

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

15757753770 楼主

2016-12-11 15:03:17

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

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

x
c# c++ vb 是可以互相调用的
. m# G$ ]; d- y7 W& M/ z, B8 _$ K! t" X) W9 }" u9 j% I, Q( o- J
vb操作access数据库 的方法
, n' X) c9 ?5 N2 Z, u# N+ \
" p4 X- w/ C$ E% M5 R首先要安装  Office2003sp2 7 b, N* W( R3 I+ `5 x* l

7 P6 |5 D" t5 @% m# V5 s8 C, f7 T% D列子:读写数据库(.mdb)" Z6 K  R" s7 a, i# @: e, V

* ~% g/ u4 H9 Y; M1.创建 mdb( u+ \" Y" H* l
开始->所有程序->Office2003->Access 2003  新建一个空数据库 保存位置C:\report.mdb  0 P1 i( G7 F9 X* A. Q$ I6 S
创建一个表格 并重新命名为test          (操作和Excel类似)) X2 ^1 O) T( G9 J4 `! I+ Z+ c

/ m% {. m' O. n2 s" S, p注意 表格名称 和源代码要对应
4 e! I0 _& q* r$ u8 y+ b! w6 w& B6 t
; F$ D3 v9 U* D+ J# s# ~0 |3 i8 n. C* w1 }5 m% v
2.注册数据源(代码中已经注册)和写代码; k8 W: I/ f% ^3 |: X" S2 m

2 \. n* a" I9 X- ?( s7 V% c% _) j! P/ j- f' ^' q% ~9 Y1 j/ @. n
在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,
- D* ?* b6 d# B$ H" o! R我们必须点击菜单中的【工程】-【部件】,
5 G3 ?& O( F5 B$ F0 c' H在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和
, N& p7 Y5 ~$ ^) C# D“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,. W4 I/ O% r) c6 D* S+ O3 m
最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了# p- L) Y! s: E0 n. \  E! H5 D/ k
! I0 \8 \& p% N! l% b
& m# e+ j$ A+ T% r0 D
添加4个文本控件  Text1 和 Text2  和 Text3 和 Text4 2 M2 d8 F  }0 V4 |
添加一个按钮 ID修改成 “保存” ' ^, J6 Y& ^' Y. E8 v
添加一个 List1
5 B; X$ ~1 w" v7 ], V* M9 X5 E
% |0 d4 U6 S; }% ^" G代码如下  O: Z9 U& L- ^( ]+ \) w! B/ M
/ J) B' q$ M* O" x' T! K- l
9 {+ v+ y# m( F: ]) ?2 q
Public conn As New ADODB.Connection     '标记连接对象+ k9 f9 f3 _9 g. W# h
Dim sql As String
% I! P4 ?$ [7 z9 D  c, J+ L* aDim rs_maxcut As New ADODB.Recordset  ?! ]: R3 `8 U0 O5 w6 L' o$ p( A
Dim str As String& z+ X# C( A5 Z" \3 w1 ?1 E# H
Dim aa As Double, bb As Double
' S5 g$ `0 J9 c1 E, q3 GDim mbd As String
: ~- A" u$ q' }; a1 a8 M) d7 C8 ^Dim 总页数 As Integer, 行数 As Integer, 列数 As Integer. |5 s" w' G" M$ [$ G  o: N" y
Dim 内容(999, 999) As Double
8 d2 @( X, G8 |
; {& ]( i  K1 ]# s: |: M. k3 PPublic Function cnn() As String
) L; p3 ?( w3 e9 A, s    cnn = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mbd & "ersist Security Info=True;Jet OLEDBatabase Password=123"
' s* ^! t3 j. Q+ [: ^, `End Function
7 f9 @7 y  g, ~& e% u; M' y2 P# C, j8 i3 I2 d# W
Private Sub 保存_Click(), _" T5 r" p7 x9 Q/ J

! a9 ?0 ^3 A9 ~4 z. F4 i writeDatabase7 B+ w- V4 g) @" l" o7 ?
    End
2 U/ ^7 h! o, E$ V9 W3 O- ~) s% pEnd Sub( e$ L9 T, R( d- F
: T- J; U/ k' P  J
Private Sub Form_Load()$ ~$ v: y/ U  d1 A: c4 I

0 `! d7 d* J( l' p& S. a& ^ mbd = "D:\UG_OPEN\ini\数据库.mdb"
$ Z, z# P  w# N  s* Y
  M9 c9 r, W4 S4 P# T  ^3 f    conn.Open cnn '连接数据库5 t! p; A. C' d3 C" l. z( M6 y
    readdatabase2 X. _: |. @7 d& I, L% T/ y
    Me.Text1.Text = "行数" & 行数5 m% h0 @+ j, ]( {% m6 @  u
    Me.Text2.Text = "列数" & 列数
/ f; t( {* h1 ?6 W4 lMe.Text3.Text = aa
5 s2 V6 O7 z) _+ NMe.Text4.Text = bb' E& b4 C/ l1 N, \  s5 R8 w% B4 z
End Sub+ Q# ]* M! c6 \, t3 U/ A) d+ c
  L- a5 ]! R2 T* f; u5 ?
Public Sub readdatabase() '读数据 (读数据和保存数据实际上是一样的操作方法)
- l4 M8 B2 k; v; X. I' z    Dim i As Long
. h' |0 c7 O6 S# e; ], _    sql = "select * from test"
8 r$ C# U' e. z/ |" @9 w3 q    rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集
2 W, {7 K$ i3 H/ S6 k$ n4 M5 v- X" j' q6 w# s
( P( q: b# k) T5 ~
总页数 = rs_maxcut.PageCount  '页大小rs_maxcut.PageSize
( O# F" Q' |) W# [7 u行数 = rs_maxcut.RecordCount  '行数 (排除标题)
: Y* K0 t1 x4 e2 K% u! s列数 = rs_maxcut.Fields.Count - 1 '列数 (排除标题)  K; P5 w0 Z, f8 X( O/ x+ l9 {/ W
4 _! X6 Y2 D% @3 @
    If rs_maxcut.EOF = False Then
# v0 N# y$ G$ D4 N( {, Z        i = 00 ^4 M; y$ f  `! v& |5 d1 \2 D) b2 v. A2 I
        Do While rs_maxcut.EOF = False9 v7 F4 |; k; l! ]" V3 _
           i = i + 1
. d, j, C1 X5 l' Q  a( @% N( S) l" Y4 K! @6 t. v" R
           ' If i = 0 Then str = rs_maxcut.Fields(0).Name & rs_maxcut.Fields(1).Name '读标9 P9 M0 r3 W, x3 ]* |1 i' [
5 d2 A. r; v; @8 y% d" e: H0 X
            '第一行  或者  第一列的内容 他们属于标题 所以不管是行列我们都是重第二行或列开始的3 X+ G' }0 K! s0 b- A( d8 p. q
8 I) W/ h7 c& e0 ~$ j& ]  H1 O
, q8 Q( V& \" ~3 X
       If i = 1 Then aa = rs_maxcut.Fields(1).Value '除去标题后的,第1行第1列
# w1 W) t% Q& k9 q/ C; s2 b* w        If i = 2 Then bb = rs_maxcut.Fields(1).Value  '除去标题后的,第1行第2列5 N( X  a  s. q2 E; T9 D$ v+ v
4 k* W4 i" f/ L! k% S
        '读所有内容到数组
0 e0 Y7 x  |" q' Z3 ?        For j = 1 To 列数/ Q- p' O; h- N2 D6 O7 f
        内容(i, j) = rs_maxcut.Fields(j).Value
: }/ }. [: x  Q) c8 `. }        Next5 V3 w# g( W1 X+ I  W, S
: }% I& @1 v$ ?  K
        rs_maxcut.MoveNext '下一行3 K2 ]/ B% w( a3 K/ \
        Loop4 ?7 f) g: E8 V/ D% m9 `0 r
       rs_maxcut.Close '关闭$ w3 T  f8 A3 w! r2 k

1 Y1 o* W" Q. T5 u8 g! m# T( E8 u
        List1.Clear. Q. t+ p$ m. J( R. Q$ q5 \
        For i = 1 To 行数
& d, R' q8 Q% M9 |* r% w+ x4 c" g        For j = 1 To 列数
0 K! G, s9 _2 ?* X8 F9 C        If j = 1 Then
. M& D2 b- l  A3 Q        str = 内容(i, j): u6 r+ Q$ F) j: C2 V6 e
        Else$ Z* f" o3 s0 E' f# K
        str = str & " , " & 内容(i, j)( B* k! d' Q5 }1 b! V
        End If5 ^5 w' @; N, ~  ]  x
        Next
* [0 V: m& ^/ ~; h9 k; G        List1.AddItem str
& y, |' H4 y% W! y! s) O        Next3 D& X4 T" ]& \) y4 @; T

  h- c4 e5 R& X/ M    End If
" d8 z' o1 B: ~
0 U2 A1 W4 [" Q# H. w& ?9 O, ]1 F* N* q2 Z6 q  o- b
End Sub
: O# D) n2 \5 n. o: n! ^
( Z/ h# E: Y* v, d/ LPublic Sub writeDatabase() '保存数据(读数据和保存数据实际上是一样的操作方法)
- W, t9 ^# v) X* ^    On Error Resume Next
, V& L  R8 F9 v; F# C    Dim i As Long2 ^$ b+ ]+ K+ W. x
    i = 0
2 e. q- l4 R6 P' V7 f& R# k7 f1 D$ d- T
conn.Open cnn '连接数据库1 I9 m" O: w% W

' V% N8 z+ w0 e'sql = "select * from test"
' h  J! B4 o. u: f4 c
9 G& F& ^+ G4 `% B$ b# J  rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集7 q5 ~8 z# i# j8 J* k  b9 c
& |) g; R/ r5 M8 `" w4 K
    If rs_maxcut.EOF = False Then, P& p7 v  n+ f& c4 @

; R" w& B- F9 h8 M  D/ h        Do While rs_maxcut.EOF = False
) E; i. e* c+ @9 w! Y6 ~; n# t          i = i + 1
- a' M2 {3 j% T6 b
  _1 c7 k; N* o            '不要去修改 第一行  或者  第一列的内容  因为他们属于标题% b/ C( E0 w5 Z

! R0 i2 H2 Y% q+ e; U            If i = 1 Then rs_maxcut.Fields(1).Value = Val(Text3.Text) '编辑第2行第1列' s. [) x" E/ E$ c  |: Z1 |) o! l/ g9 a

) j* V2 p" L6 e# E8 A# o2 X            If i = 2 Then rs_maxcut.Fields(1).Value = Val(Text4.Text) '编辑第2行第2列
: A" |9 `2 ]1 i  _
- d* z: x  N2 P( k0 t" ], `              rs_maxcut.MoveNext
9 N( y, L- H8 H2 H$ n9 ?
0 d, e" R7 N7 V, g. r3 o        Loop% m$ h' Q% ~  W# S2 d3 v6 r- j
- B9 K2 q( I5 l; N: Z) T, }
       rs_maxcut.Update
: @; B! V+ ]" ?6 R6 ?, |; l  ^& F4 X    rs_maxcut.Close# ^# p6 a1 [; E5 I0 u$ T2 J- x

# f' s; h# d  A; {    End If$ a  ]5 s& H, H* w8 G  _9 I1 t% m

4 w4 v( p+ a0 f* f' f  REnd Sub
+ V; w# c: \# l
0 {, r5 D  @% L/ ]$ V  ^
" u3 m4 i: l" M- G
  _% G4 Y6 k  k/ }; U
5 a$ ?" |* v" r9 ?1 t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了