日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c# combobox集合数据不显示_VBA与数据库解决方案:Recordset记录集合的动态查询,并显示结果...

發布時間:2025/3/20 C# 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# combobox集合数据不显示_VBA与数据库解决方案:Recordset记录集合的动态查询,并显示结果... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,今日繼續講解VBA與數據庫解決方案的第10講內容,打開一個指定的數據庫記錄集,把所得的數據顯示到工作表中的方法。今日的內容是和第8講,第9講內容是相連續,在第9講中講了打開記錄集的用的方法是rsADO.Open strSQL, cnADO, 1, 3,在第8講中我們講了還有一種是Execute(strSQL)方法,今日我們就講利用這種方法達到我們的目的,同時在SQL語句中的我們將查詢設置為一個動態的查詢。

如下面的工作表文件:我們要根據I2單元格的提示部門信息來查找工作表的數據并將查詢的結果放在左側的區域:

我們看代碼:

Sub mynzra2()

Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Dim i As Integer

strPath = ThisWorkbook.Path & "mydata.accdb"

Set cnADO = CreateObject("ADODB.Connection")

With cnADO

.Provider = "Microsoft.ACE.OLEDB.12.0"

.Open strPath

End With

strSQL = "SELECT * FROM 職員表 WHERE 部門= '" & Cells(2, 9) & " '"

Set rsADO = cnADO.Execute(strSQL)

Columns("A:E").Select

Selection.ClearContents

Cells(2, 9).Select

For i = 0 To rsADO.Fields.Count - 1

Cells(1, i + 1) = rsADO.Fields(i).Name

Next i

Range("A2").CopyFromRecordset rsADO

rsADO.Close

cnADO.Close

Set rsADO = Nothing

Set cnADO = Nothing

End Sub

代碼截圖:

代碼精講:

① Dim cnADO, rsADO As Object

Dim strPath, strSQL As String

Dim i As Integer

strPath = ThisWorkbook.Path & "mydata.accdb"

Set cnADO = CreateObject("ADODB.Connection")

上面的代碼和第9講的相同,分別聲明了幾個變量并建立了數據庫的ADO連接,

② 在打開數據庫時同時設置了連接:

With cnADO

.Provider = "Microsoft.ACE.OLEDB.12.0"

.Open strPath

End With

這種連接方式采用了我在第8講中講到另外的方式,可以參考一下。

③strSQL = "SELECT * FROM 職員表 WHERE 部門= '" & Cells(2, 9) & " '"

我們要重點的講解一下這條語句,之前有朋友聯絡問過這類語句的書寫方式,今日可以一并回答,這里要注意變量,變量是代碼中的變量,在SQL語句中是不能出現變量的,要是常量并用引號括起來,所以在上面的語句中

a "SELECT * FROM 職員表 WHERE 部門= '" 為第一部分

b 最后的 " '"為第三部分

c Cells(2, 9)為第二部分。

三個部分中間用"&"連接起來。大家要務必記住這種書寫的方式,這樣在程序的運行中SQL語句才正確,下面看看在運行過程中的SQL語句:

④ Set rsADO = cnADO.Execute(strSQL) 對于這條語句,我在第8講的內容中,也講到是一種打開記錄集的方式之一,是Connection對象的Execute方法,通過上面語句,我們就可以執行查詢,并將結果保存到集合的對象中。下面我將Connection對象的Execute方法再次專門的講解一下:

ADODB.Connection對象的Execute方法

該方法用于執行SQL語句。根據SQL語句執行后是否返回記錄集,該方法的使用格式分為以下兩種:

第一種:執行SQL查詢語句時,將返回查詢得到的記錄集。用法為:

Set對象變量名=連接對象.Execute("SQL語句")

Execute方法調用后,會自動創建記錄集對象,并將查詢結果存儲在該記錄對象中,通過Set方法,將記錄集賦給指定的對象保存,以后對象變量就代表了該記錄集對象。

第二種:執行SQL的操作性語言時,沒有記錄集的返回。此時用法為:

連接對象.Execute "SQL語句" [,RecordAffected][, Option]

參數a RecordAffected為可選項,此出可放置一個變量,SQL語句執行后,所生效的記錄數會自動保存到該變量中。通過訪問該變量,就可知道SQL語句隊多少條記錄進行了操作。

參數b Option 可選項,該參數的取值通常為adCMDText,它用于告訴ADO,應該將Execute方法之后的第一個字符解釋為命令文本。通過指定該參數,可使執行更高效

在第9講的講解中,我們用了第二種方法,今日的代碼有的是第一種代碼。至于那種好,我這里沒有說明,可以根據寫代碼人員的喜好即可。

代碼的運行結果:

今日內容回向:

1 Connection對象的Execute方法有哪兩種方法?

2 如何實現可控的指定查詢?并將結果顯示?

總結

以上是生活随笔為你收集整理的c# combobox集合数据不显示_VBA与数据库解决方案:Recordset记录集合的动态查询,并显示结果...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。