日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

vba中主要提供了3種數(shù)據(jù)庫(kù)訪問接口 vba 連接數(shù)據(jù)庫(kù)

今日講解的內(nèi)容為如何建立一個(gè)數(shù)據(jù)庫(kù)的連接,并實(shí)例講解利用連接從數(shù)據(jù)庫(kù)中查到有用的記錄,填在表格中的方法 。我們要先打開一個(gè)工作表,它的A列數(shù)值為要在數(shù)據(jù)庫(kù)中查詢的字段,并把在數(shù)據(jù)庫(kù)中查到此字段的其他內(nèi)容填充到這個(gè)工作表中的B:G列的位置 。好我們先看下面
今日講解的內(nèi)容為如何建立一個(gè)數(shù)據(jù)庫(kù)的連接,并實(shí)例講解利用連接從數(shù)據(jù)庫(kù)中查到有用的記錄,填在表格中的方法 。
我們要先打開一個(gè)工作表,它的A列數(shù)值為要在數(shù)據(jù)庫(kù)中查詢的字段,并把在數(shù)據(jù)庫(kù)中查到此字段的其他內(nèi)容填充到這個(gè)工作表中的B:G列的位置 。好我們先看下面的代碼,在代碼的過(guò)程中均有詳細(xì)的講解 。有的容易些,有的難懂些,不過(guò)都沒關(guān)系,有興趣的讀者可以仔細(xì)地琢磨,都是一步一步看過(guò)來(lái)的 。我在學(xué)VBA的時(shí)候,資料還很少很少,有的需要自己的摸索 。待這個(gè)平臺(tái)的資料多些了,也希望能有位大俠給出本書,利于大家的學(xué)習(xí) 。
1Dim myData As String, myTable As String
2Dim wb As Workbook
3Dim ws As Worksheet
4Dim i As Long, j As Long
5
6
7Dim cnn As ADODB.Connection
8Dim rs As ADODB.Recordset
9Set wb = ThisWorkbook\'指定工作簿
10Set ws = wb.Sheets("A-RR")\'指定工作表名稱
11Dim PATH
12PATH = ActiveWorkbook.Path \'& "\\"\'路徑名稱
13ChDir PATH
14myData = "D:\\RR" & "\\myData.mdb"\'指定新數(shù)據(jù)庫(kù)名稱(完整路徑)
15myTable = "RR資料"\'指定數(shù)據(jù)庫(kù)的數(shù)據(jù)表名稱
\'檢查是否已經(jīng)存在同名數(shù)據(jù)庫(kù)文件
16If Dir(myData) = "" Then
17MsgBox (myData & "不存在!")
\'不存在的情況下,釋放變量,退出
18Set wb = Nothing
19Set ws = Nothing
20Set rs = Nothing
21
22
23Set cnn = Nothing
24End
25Else
\'如果已經(jīng)存在了數(shù)據(jù)庫(kù)文件,就檢查是否存在數(shù)據(jù)表
\'建立與數(shù)據(jù)庫(kù)的連接
26Set cnn = New ADODB.Connection
27With cnn
28.Provider = "microsoft.jet.oledb.4.0"
29.Open myData
30End With
\'開始查詢是否存在該數(shù)據(jù)表
31Set rs = cnn.OpenSchema(adSchemaTables)
32Do Until rs.EOF
33If LCase(rs!table_name) = LCase(myTable) Then GoTo hhh\'如果查到則退出循環(huán)
\'繼續(xù)查詢
34rs.MoveNext
35Loop
\'釋放變量,退出(這是沒有查到的情況)
36Set wb = Nothing
37Set ws = Nothing
38Set rs = Nothing
39
40
41Set cnn = Nothing
42MsgBox ("不存在此工作表!")
43End
hhh:
44End If
\'到此是找到了某個(gè)記錄,并打開了數(shù)據(jù)庫(kù)
45Sheets("A-RR").select
46Range("B2:G3000").Clear\'做填充數(shù)據(jù)的準(zhǔn)備
47Set rs = New ADODB.Recordset
48t = 2
49Do While Cells(t, 1) <> ""
50Cells(t, 1).select
51Sql = "select * from " & myTable _
52& " where RR = " & " \'" & ws.Cells(t, 1).Value & "\'"
53rs.Open Sql, cnn, adOpenKeyset, adLockOptimistic
54If rs.RecordCount = 0 Then
\'如果數(shù)據(jù)庫(kù)中沒有工作表的某行數(shù)據(jù),就
55ws.Cells(t, 2).Value = "https://www.jinnalai.com/n/No Find"
56ws.Cells(t, 3).Value = "https://www.jinnalai.com/n/No Find"
57Else
\'如果數(shù)據(jù)庫(kù)中有工作表的某行數(shù)據(jù),就將數(shù)據(jù)進(jìn)行更新
58ws.Cells(t, 2).Value = https://www.jinnalai.com/n/rs.Fields(1)
59ws.Cells(t, 3).Value = https://www.jinnalai.com/n/rs.Fields(2)
60End If
61rs.Close \'關(guān)閉,此處的RS必須要關(guān)閉,必須的 。
62t = t + 1
63Loop
64MsgBox "完成!", vbInformation + vbOKOnly
\'關(guān)閉數(shù)據(jù)庫(kù)及查詢數(shù)據(jù)集
65cnn.Close
\'釋放變量
66Set wb = Nothing
67Set ws = Nothing

推薦閱讀