乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何在Excel中使用SQL語言?

       asaser 2022-07-24 發(fā)布于四川
      NO.224-SQL
      作者:看見星光
       微博:EXCELers / 知識星球:Excel

      HI,大家好,我是星光,今天給大家聊一下如何在Excel中使用SQL語言。這個問題我們在「零基礎(chǔ)學(xué)SQL in Excel」系列圖文的第一章中有講過,不過公眾號后臺總是收到類似的提問,所以就再集中說一次。

      在Excel中使用SQL語言一般有三種方法▼

      第一種是MS Query法,很少用,越來越少用,略。

      第二種是OLE DB法,通常指的也就是透視表法。

      操作演示動畫如下..▼

      圖片

      圖文說明如下..▼

      在Excel的【數(shù)據(jù)】選項卡下單擊【現(xiàn)有鏈接】命令,在打開的對話框中,單擊【瀏覽更多】,選取目標(biāo)文件后,依次單擊【確定】,得到如下圖所示的【導(dǎo)入數(shù)據(jù)】對話框。

      圖片

      單擊【屬性】按鈕,打開【連接屬性】對話框,切換到【定義】選項卡,即可在【命令文本】編輯欄中編寫SQL語句,最后【確定】執(zhí)行即可。如下圖所示。

      圖片

      ……

      這種方法通常搭配數(shù)據(jù)透視表(圖一的顯示方式選擇【數(shù)據(jù)透視表】),此時SQL獲取的記錄集會自動成為透視表的緩存數(shù)據(jù)源。

      此外也可以搭配Power Pivot(Excel版本2013及以上),勾選圖一的【將此數(shù)據(jù)添加到數(shù)據(jù)模型】)。

      對于沒有VBA基礎(chǔ)的朋友來說,通常推薦這種方法,只要會寫SQL查詢語句,就可以直接使用了。

      不過——咱們的系列文章【零基礎(chǔ)學(xué)SQL in Excel教程】主要是使用的第3種方法,也就是VBA+ADO+SQL。

      和第2種方法相比較,該法的優(yōu)點在系列文里已經(jīng)說過很多了,其實最重要的就兩點,掰手指頭:

      1
      借助VBA,SQL語句可以使用變量,更加靈活自由。

      2
      借助ADO,對數(shù)據(jù),SQL除了查詢以外,還可以增改刪。

      對于VBA代碼連面都不熟的朋友而言,是不是就不能使用VBA執(zhí)行SQL了呢?

      并不是。

      VBA執(zhí)行SQL語句有一個固定的套路。

      哪怕你連VBA代碼一句都看不懂也沒關(guān)系,只要知道如何復(fù)制運(yùn)行VBA代碼(如何運(yùn)行VBA代碼?其實很簡單),以及知道在哪里寫入SQL語句就可以了。


      復(fù)制以下VBA代碼:其中第11行代碼用于填寫SQL語句,第14行代碼指定存放SQL查詢結(jié)果的工作表。

      代碼如看不全,可以左右拖動..▼

      Sub ByADO_SQL() Dim cnADO As Object Dim rsADO As Object Dim strSQL As String Dim i As Long Set cnADO = CreateObject('ADODB.Connection') Set rsADO = CreateObject('ADODB.Recordset') cnADO.Open 'Provider=Microsoft.ACE.OLEDB.12.0;' _ & 'Extended Properties=Excel 12.0;' _ & 'Data Source=' & ThisWorkbook.FullName strSQL = 'SELECT * FROM [A$] ' '//此處寫入SQL代碼 Set rsADO = cnADO.Execute(strSQL) '//將工作表名稱修改為實際放置查詢數(shù)據(jù)的工作表名稱▼ Worksheets('工作表名稱').Select Cells.ClearContents 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 cnADO = Nothing Set rsADO = NothingEnd Sub

      另外需要說明兩點是……

      在以上VBA代碼中輸入的SQL語句,雙引號應(yīng)改為單引號,這是因為SQL語句作為字符串,外圍已經(jīng)存在一對雙引號了,內(nèi)部就不能再使用雙引號。

      當(dāng)處理的文件跨工作薄時,SQL語句的書寫和OLE DB法稍有不同,具體請參考:Excel VBA+ADO+SQL入門教程004:表技巧的總結(jié)
      需要系統(tǒng)學(xué)習(xí)Excel,卻找不到優(yōu)質(zhì)教程?學(xué)習(xí)Excel的過程中遇到疑難問題,卻找不到人及時作出解答?加入我的付費社群,和2600+學(xué)員共同精進(jìn)Excel,學(xué)習(xí)+答疑都不再是問題……

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多