首页 » 软件开发 » 使用VBA,如何建立一个MDB数据库的连接(数据库工作连接代码建立一个)

使用VBA,如何建立一个MDB数据库的连接(数据库工作连接代码建立一个)

萌界大人物 2024-07-24 16:24:28 0

扫一扫用手机浏览

文章目录 [+]

我们要先打开一个工作表,它的A列数值为要在数据库中查询的字段,并把数据库中此字段的其他内容填充到这个工作表中的B:G列的位置。
好我们先看下面的代码,在代码的过程中均有详细的讲解。
有的容易些,有的难懂些,不过都没关系,有兴趣的读者可以仔细地琢磨,都是一步一步看过来的。
我在学VBA的时候,资料还很少很少,有的需要自己的摸索。
待这个平台的资料多些了,也希望能有位大侠给出本书,利于大家的学习。

1 Dim myData As String, myTable As String

2 Dim wb As Workbook

使用VBA,如何建立一个MDB数据库的连接(数据库工作连接代码建立一个) 软件开发
(图片来自网络侵删)

3 Dim ws As Worksheet

4 Dim i As Long, j As Long

5

6

7 Dim cnn As ADODB.Connection

8 Dim rs As ADODB.Recordset

9 Set wb = ThisWorkbook '指定工作簿

10 Set ws = wb.Sheets(\"A-RR\") '指定工作表名称

11 Dim APPPATH

12 APPPATH = ActiveWorkbook.Path '& \"\\" '路径名称

13 ChDir APPPATH

14 myData = \"D:\RR\" & \"\myData.mdb\" '指定新数据库名称(完整路径)

15 myTable = \"RR资料\" '指定数据库的数据表名称

'检查是否已经存在同名数据库文件

16 If Dir(myData) = \"\" Then

17 MsgBox (myData & \"不存在!
\")

'不存在的情况下,释放变量,退出

18 Set wb = Nothing

19 Set ws = Nothing

20 Set rs = Nothing

21

22

23 Set cnn = Nothing

24 End

25 Else

'如果已经存在了数据库文件,就检查是否存在数据表

'建立与数据库的连接

26 Set cnn = New ADODB.Connection

27 With cnn

28 .Provider = \"microsoft.jet.oledb.4.0\"

29 .Open myData

30 End With

'开始查询是否存在该数据表

31 Set rs = cnn.OpenSchema(adSchemaTables)

32 Do Until rs.EOF

33 If LCase(rs!table_name) = LCase(myTable) Then GoTo hhh '如果查到则退出循环

'继续查询

34 rs.MoveNext

35 Loop

'释放变量,退出(这是没有查到的情况)

36 Set wb = Nothing

37 Set ws = Nothing

38 Set rs = Nothing

39

40

41 Set cnn = Nothing

42 MsgBox (\"不存在此工作表!
\")

43 End

hhh:

44 End If

'到此是找到了某个记录,并打开了数据库

45 Sheets(\"A-RR\").Select

46 Range(\"B2:G3000\").Clear '做填充数据的准备

47 Set rs = New ADODB.Recordset

48 t = 2

49 Do While Cells(t, 1) <> \"\"

50 Cells(t, 1).Select

51 Sql = \"select from \" & myTable _

52 & \" where RR = \" & \" '\" & ws.Cells(t, 1).Value & \"'\"

53 rs.Open Sql, cnn, adOpenKeyset, adLockOptimistic

54 If rs.RecordCount = 0 Then

'如果数据库中没有工作表的某行数据,就

55 ws.Cells(t, 2).Value = \"No Find\"

56 ws.Cells(t, 3).Value = \"No Find\"

57 Else

'如果数据库中有工作表的某行数据,就将数据进行更新

58 ws.Cells(t, 2).Value = rs.Fields(1)

59 ws.Cells(t, 3).Value = rs.Fields(2)

60 End If

61 rs.Close '关闭,此处的RS必须要关闭,必须的。

62 t = t + 1

63 Loop

64 MsgBox \"完成!
\", vbInformation + vbOKOnly

'关闭数据库及查询数据集

65 cnn.Close

'释放变量

66 Set wb = Nothing

67 Set ws = Nothing

68 Set rs = Nothing

69 Set myCmd = Nothing

70 Set myCat = Nothing

71 Set cnn = Nothing

看看下面的截图:

到此这项任务就完成了,利用VBA控制EXCEL是本平台的较高水平的内容,但程序的思想、思路和写函数是一致的,都要按规定的线路来进行。
如果检测到没有按照自己的设想来运行程序,那是绝对不可以的。
关注本平台,会经常有类似大段的代码共大家参考。
当然,上述的代码也是解决这类问题的一个通用的代码,读者可以使用,没问题。

分享成果,随喜正能量

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0