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

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

15757753770 楼主

2016-12-11 15:03:17

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

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

x
c# c++ vb 是可以互相调用的
  c9 C# O8 |' H. r  j2 P
8 K2 A) |* c1 b/ n$ M  Hvb操作access数据库 的方法
0 n* \/ Z. y, H- U& {4 Y2 O. g! f, _
首先要安装  Office2003sp2
) l! r$ [% {! c- X. N6 g* x1 o
列子:读写数据库(.mdb)3 R# [( ?, f! z% @, T4 z7 c

* A1 q7 n* s: x1.创建 mdb
3 a3 d; w% E5 G' @1 z开始->所有程序->Office2003->Access 2003  新建一个空数据库 保存位置C:\report.mdb  * W$ f# k# u2 O  @+ q# [
创建一个表格 并重新命名为test          (操作和Excel类似)
  o! {9 f; q+ H! ~5 A
2 d% F# o6 L& E6 R; _注意 表格名称 和源代码要对应
$ k1 K! k! J. Q. o: c7 i! u9 s7 X# O0 B% k' I

( i0 ^3 G* Q7 E4 w7 H+ u3 U& `2.注册数据源(代码中已经注册)和写代码
  C% \% p/ B) x& T) L& S: w% e3 }6 z* m
, a) H! x. P* Y1 \' w* j- i) ~
在新建工程时工具箱中是没有Adodc控件和MSHFlexGrid控件的,
! A/ U; n1 P9 ~( b) D我们必须点击菜单中的【工程】-【部件】," ?; P8 A6 u9 R4 o: [8 m9 I2 P! a4 n
在对话框中勾选“Microsoft ADO Data Control 6.0 (SP6)”和: t3 N" J& c6 r$ u# M
“Microsoft Hierarchical FlexGrid Control 6.0 (SP4)”,* S  A" u4 I6 K: E! N
最后点击【确定】,这样Adodc控件和MSHFlexGrid控件就已经放置在工具箱中了
6 W6 O% J5 o* u) t7 X% ?2 D( |
' B2 |- v8 Z8 @: o* ?% d! N. G1 C- G. v  b. a5 [
添加4个文本控件  Text1 和 Text2  和 Text3 和 Text4
, N: \4 q) O7 W5 v% W$ \添加一个按钮 ID修改成 “保存”
8 [7 H: X# D, l2 [添加一个 List1
) r* l, q$ [0 N4 s/ E' V4 l2 E( B
代码如下. `3 E% m8 x, H7 ]+ F& I2 \( a, B

5 g' o, K. t* C8 a7 F! Y/ f+ ^+ i. N" Y) c4 ~
Public conn As New ADODB.Connection     '标记连接对象2 {! Q' b5 C( J8 U: Z& J; J2 W5 K
Dim sql As String
- L/ m& B' m- `  ~( \Dim rs_maxcut As New ADODB.Recordset. g/ }7 s( g9 p0 n
Dim str As String7 ]' N+ G% q$ m# o/ Y
Dim aa As Double, bb As Double4 N* Z3 X( ]# A# ?4 `5 C+ @
Dim mbd As String$ {# R( v% b) c2 k& T: N( b( Q' M
Dim 总页数 As Integer, 行数 As Integer, 列数 As Integer7 N, s! V; V& s4 ~  j. d
Dim 内容(999, 999) As Double1 w% i' [; G" m6 B- C  A" _

% |0 l7 M: i5 C, m& IPublic Function cnn() As String, T3 r: X- l- P
    cnn = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mbd & "ersist Security Info=True;Jet OLEDBatabase Password=123"' t7 k! j: E' V+ Q+ a8 d& ?
End Function
" ~/ \$ F$ |. j, v; x! L) ?" J! r; L% F+ v4 t5 L: g5 M2 z# j
Private Sub 保存_Click()
" s/ w0 j* I3 p) _6 \7 V! Y  i1 L' H( G$ y
writeDatabase
+ n4 O6 K& i8 x- y    End
" k- W! b9 u, p, ?; QEnd Sub
$ W9 ~( r: K5 z8 V0 p+ Z! e( ]1 _1 S+ `' B" y4 p0 n: d
Private Sub Form_Load()( F8 `, x: d  z5 _8 P

  ?9 A5 j3 f9 A+ z1 a* s. ^1 [ mbd = "D:\UG_OPEN\ini\数据库.mdb"
  d, J8 i. v" S/ e  h/ S7 E( K
+ j+ O$ o$ A# M7 X    conn.Open cnn '连接数据库
0 ~& D9 J" t  _* N- t5 `    readdatabase0 n( D; p- i& C6 K- Z4 O) Z
    Me.Text1.Text = "行数" & 行数
. v( ]9 j! g1 G! [  i    Me.Text2.Text = "列数" & 列数
# k- I' i: [: ?- `5 NMe.Text3.Text = aa% U' J* ?+ W9 V  Y8 T2 j" y1 }8 r
Me.Text4.Text = bb& l9 A, F+ I' o. z3 b  Y5 C
End Sub9 j) |/ ~) _0 Y, b  n# v
' W  e- }, o* }" s# @$ U
Public Sub readdatabase() '读数据 (读数据和保存数据实际上是一样的操作方法)  [% g. `$ `& B4 X9 x# F
    Dim i As Long/ n  X- i9 [+ o# P  A
    sql = "select * from test"2 a, i2 b# {, P1 |' Y& c
    rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集
8 _3 l6 x; y9 f5 `3 Q) K  u' W5 N6 i# \5 h$ `7 P
/ t  V2 S0 j$ J1 |
总页数 = rs_maxcut.PageCount  '页大小rs_maxcut.PageSize
9 n6 Y( G1 Q. v, [2 x# T8 ]行数 = rs_maxcut.RecordCount  '行数 (排除标题)% y9 ]; ^. T- {4 H$ V8 {
列数 = rs_maxcut.Fields.Count - 1 '列数 (排除标题)
3 q0 d& J4 S5 T) P
( G5 I% u+ R5 |7 j- b2 n    If rs_maxcut.EOF = False Then! I0 b8 n2 F$ ^' [) x
        i = 08 I. V& C2 M8 S7 }2 M+ L
        Do While rs_maxcut.EOF = False
3 c' R4 U& P! M6 ^$ c' B           i = i + 16 X( s& [# z1 H  {

. ], W5 K* [$ r4 J           ' If i = 0 Then str = rs_maxcut.Fields(0).Name & rs_maxcut.Fields(1).Name '读标- m- c* f  X% U' M
6 w: s; x  P2 f% N
            '第一行  或者  第一列的内容 他们属于标题 所以不管是行列我们都是重第二行或列开始的. g5 K& Z& p: [4 e, E
3 _/ f  T) v# V7 I+ u+ w& e( c
* s7 I6 M) B4 ^3 a4 R  d% [! g: E
       If i = 1 Then aa = rs_maxcut.Fields(1).Value '除去标题后的,第1行第1列
; _- V- m* d7 N' |6 c! F! S9 S& ^        If i = 2 Then bb = rs_maxcut.Fields(1).Value  '除去标题后的,第1行第2列( ]# P" [5 L# f7 @. |9 m- ~/ h

; f4 d: n3 Y. q! F' f0 _        '读所有内容到数组8 W' r) @$ h, j
        For j = 1 To 列数1 q1 o2 H8 Y! q" q- y0 P
        内容(i, j) = rs_maxcut.Fields(j).Value$ X0 z3 B8 @7 X: o7 |9 A
        Next
) Z+ y3 T9 D1 T( y! a( |/ n! v+ S, J
        rs_maxcut.MoveNext '下一行) y$ C- k, w. R8 i! `
        Loop
1 o0 W& r3 X% L& T  H       rs_maxcut.Close '关闭
% s; p: P8 I( {, `! {6 Q7 O+ b, Q( E+ D
8 O1 e# R# B$ S5 P, H: z7 j0 h5 i& e
        List1.Clear
0 z+ a, |$ {0 _8 ]: L        For i = 1 To 行数9 j$ i$ H9 L6 T1 k/ L
        For j = 1 To 列数( Q4 X; L2 d" J9 n6 f, ^
        If j = 1 Then
2 U, j+ x& v( B# g5 ?) K% W3 k        str = 内容(i, j)
. I/ ^$ O5 N( s/ C! f- i        Else
# m3 ^, f9 p) }5 }+ _        str = str & " , " & 内容(i, j)
9 Q0 O9 ]( e4 H5 b1 J        End If9 Y6 V5 [7 m0 I) v% Z: y
        Next6 t  M6 Z! S, e/ f5 E. `5 C& Q6 ~
        List1.AddItem str  y; \* i9 P' ]' ]$ a
        Next0 \4 _7 l9 p" ?) f2 B2 x# i
9 u+ C1 e0 j2 ~; \. \; w- I
    End If
- ?. ^  M4 H' v  ?( I& a, a' H- x
2 S5 z4 M7 p% D: j% _4 b0 q# b" s& U- h1 s' ^: H0 W. n: }, j# x
End Sub' t) n; P( M1 Z6 _) E$ j$ c% V: `
7 Y; }* G2 u- h. h, Z2 \
Public Sub writeDatabase() '保存数据(读数据和保存数据实际上是一样的操作方法)# N7 I9 ^0 M- }5 R
    On Error Resume Next; U% n/ n0 P+ d5 T8 y9 |
    Dim i As Long
. {# v- U: u" _6 {& B# t    i = 0
7 L3 l" [/ }; l8 N6 ?$ a7 ?) D
8 Y! c% r  ~) Iconn.Open cnn '连接数据库
% J% H  i0 q2 }' V; J7 B
# C' K  |+ d$ a3 G'sql = "select * from test"
1 i2 q' V3 O- Y( U$ l- R' t8 n' r7 J0 r5 k# B
  rs_maxcut.Open sql, conn, adOpenKeyset, adLockPessimistic  '打开记录集* k) q4 q" H2 i0 Q" o" X5 W
0 v* \- O4 j* S0 [
    If rs_maxcut.EOF = False Then
9 ~! J0 i- R! W' I2 ?! D) h( y1 O) W/ e4 C( p
        Do While rs_maxcut.EOF = False# ^: p# I1 t1 G1 x1 R4 ]1 Y
          i = i + 1
) E( E" o0 G2 c% b( c5 p* [: Q+ m3 u6 @6 w0 G7 x, @
            '不要去修改 第一行  或者  第一列的内容  因为他们属于标题
3 t" h: G6 p# }9 B4 R$ D- a/ ]+ O' W1 q
            If i = 1 Then rs_maxcut.Fields(1).Value = Val(Text3.Text) '编辑第2行第1列) o- ^  @& f7 o# s* h/ W$ y+ @! m
$ @! r9 A1 i' G) y) y
            If i = 2 Then rs_maxcut.Fields(1).Value = Val(Text4.Text) '编辑第2行第2列+ m, C+ F' ?8 C, o4 H* h% h- ?2 b
/ S3 f/ p9 R$ a/ E
              rs_maxcut.MoveNext% p% Z5 S/ p. L: u# b& q4 L% Z

9 ]$ @0 _; G* ?7 s! Y        Loop
( H1 R9 J8 A0 Y' v  M# t4 {3 ^" p# s3 D4 I4 ]) g9 Y- w- a
       rs_maxcut.Update' q9 o7 A. o/ j+ C2 k" ?5 z% h- h
    rs_maxcut.Close
" b4 ^  ?2 b) g! c2 b: n: n% `; G# x9 t- @3 l2 r
    End If+ E! b6 ]1 u" t1 d) C

+ j. o5 ?+ n0 W* }- b9 a- ?1 eEnd Sub7 u$ Q3 t* M+ D+ M: p
! X) O2 f$ b9 O

0 f# M) C  ?% J9 Z- v* {9 D6 U' h& A  U( q+ ]
1 K* C6 u2 R" 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二次开发专题模块培训报名开始啦

    我知道了