導航:首頁 > 編程大全 > excelvba與資料庫整合應用

excelvba與資料庫整合應用

發布時間:2023-08-28 17:15:01

① Excel VBA 連接SQL資料庫後的操作。

呵呵,以前就幫人家解決過這個,請看下面的代碼,有注釋的!
Private Sub CommandButton5_Click()
Dim Conn As New ADODB.Connection '定義ADODB連接對象
Dim ConnStr As String '定義連接字元串
Dim xiao As String

xiao = ComData.Text

'對於SQL 2008,如果以IP方式訪問伺服器,必須要啟動SQL Server Browser服務,如果是Express版本,要以「IP(計算機名)\實例名」方式訪問
ConnStr = txtData.Text

Dim Records As New ADODB.Recordset '定義ADODB對象的記錄集
Dim Sheet As Worksheet '定義工作表

Set Sheet = ThisWorkbook.Worksheets("Sheet2") '給變數Sheet賦值,注意:是工作簿中索引為1的那個表(通常一個新的工作簿Sheet1的索引為1)
'Sheet.Name = "Data" '把Sheet名稱改為Data
Sheet.Cells.Clear '清空表中原有的數據

'連接狀態是打開就不在進行Open操作

Conn.Open ConnStr
Dim SQLStr As String '要執行的SQL語句
SQLStr = "select * from Shift_Code where Club='" + xiao + "'" '可以執行更復雜的SQL語句

Records.Open SQLStr, Conn, adOpenStatic, adLockBatchOptimistic '讀取SQL查詢結果到Records記錄集
'Records.Open
Dim i, j, TotalRows, TotalColumns As Integer
j = 0
TotalRows = Records.RecordCount
TotalColumns = Records.Fields.Count

'下面的循環把表頭(即列名)寫到Excel表的第一行
For i = 0 To TotalColumns - 1
Sheet2.Cells(1, i + 1) = Records.Fields(i).Name
Next

'下面的循環把查詢結果寫到Excel表中
Do While Not Records.EOF

For i = 0 To TotalColumns - 1
Sheet2.Cells(j + 2, i + 1) = Records.Fields(i).Value
Next

Records.MoveNext
j = j + 1

Loop
Records.Close '關閉記錄集
Conn.Close '關閉連接

Set Records = Nothing '清空對象
Set Conn = Nothing '清空對象

End Sub

有什麼不懂的話Hi我!

② 用excel的VBA合並匯總多個工作薄,每個工作薄的格式一樣,需要合並的內

1原始數據所在工作簿包含多個格式相同的工作表,只不過每個工作表內容不同,比如說不同人名的工作表數據或者不同部門填寫的數據。

2在原始數據同目錄下新建一個工作簿,建立兩個工作表,名稱分別為「首頁」和「合並匯總表」。

3按Alt+F11進入VBA代碼編輯和調試界面。

4根據提示,插入一個模塊。

5將下述代碼粘貼到模塊空白處:
Sub CombineSheetsCells()

Dim wsNewWorksheet As Worksheet
Dim cel As Range
Dim DataSource, RowTitle, ColumnTitle, SourceDataRows, SourceDataColumns As Variant
Dim TitleRow, TitleColumn As Range
Dim Num As Integer
Dim DataRows As Long
DataRows = 1
Dim TitleArr()
Dim Choice
Dim MyName$, MyFileName$, ActiveSheetName$, AddressAll$, AddressRow$, AddressColumn$, FileDir$, DataSheet$, myDelimiter$
Dim n, i
n = 1
i = 1
Application.DisplayAlerts = False
Worksheets("合並匯總表").Delete
Set wsNewWorksheet = Worksheets.Add(, after:=Worksheets(Worksheets.Count))
wsNewWorksheet.Name = "合並匯總表"

MyFileName = Application.GetOpenFilename("Excel工作薄 (*.xls*),*.xls*")

If MyFileName = "False" Then
MsgBox "沒有選擇文件!請重新選擇一個被合並文件!", vbInformation, "取消"

Else

Workbooks.Open Filename:=MyFileName

Num = ActiveWorkbook.Sheets.Count
MyName = ActiveWorkbook.Name
Set DataSource = Application.InputBox(prompt:="請選擇要合並的數據區域:", Type:=8)
AddressAll = DataSource.Address
ActiveWorkbook.ActiveSheet.Range(AddressAll).Select

SourceDataRows = Selection.Rows.Count
SourceDataColumns = Selection.Columns.Count
Application.ScreenUpdating = False
Application.EnableEvents = False

For i = 1 To Num
ActiveWorkbook.Sheets(i).Activate
ActiveWorkbook.Sheets(i).Range(AddressAll).Select
Selection.Copy

ActiveSheetName = ActiveWorkbook.ActiveSheet.Name
Workbooks(ThisWorkbook.Name).Activate
ActiveWorkbook.Sheets("合並匯總表").Select

ActiveWorkbook.Sheets("合並匯總表").Range("A" & DataRows).Value = ActiveSheetName
ActiveWorkbook.Sheets("合並匯總表").Range(Cells(DataRows, 2), Cells(DataRows, 2)).Select

Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

DataRows = DataRows + SourceDataRows

Workbooks(MyName).Activate

Next i

Application.ScreenUpdating = True

Application.EnableEvents = True

End If

Workbooks(MyName).Close
End Sub

6在「首頁」工作表中按下圖示範插入一個窗體控制項並指定宏為插入的代碼名稱。

7點擊「首頁」工作表中插入的按鈕,根據提示,瀏覽到原始數據工作簿。

8下一步,用滑鼠選擇要合並的數據范圍。
注意:每個工作表數據可能不一樣,比如說有的是10行數據,有的是30行數據。在這里我們可以用滑鼠選擇任意工作表的一個較大范圍,比如說A1:D100,保證比最多行數的工作表數據還多就可以,一會再刪除空行。

9點擊確定按鈕,待代碼運行完畢後,所有的數據就都合並到了「合並匯總表」中。
注意:
1)A列的文本說明右側的數據來自於原始數據表的哪個工作表;
2)數據之間會有一些空行,下面通過篩選刪除。

10選中全部數據區域,執行自動篩選。然後選擇其中一個欄位,選擇「空白」和標題內容。

11然後將篩選出來的無用行滑鼠右鍵刪除,再刪除A列整列即可,完成效果

③ excel中vba怎麼連接mysql資料庫並展示數據

可以使用以下代碼在EXCEL上使用VBA連接MYSQL資料庫 :

DimstrconntAsString
strconnt=""
Setconnt=NewADODB.Connection
Dimsevip,Db,user,pwdAsString
'設伺服器地址、所連數據,及登錄用戶密碼
sevip="localhost"
Db=「test"
user="root"
pwd="123456"
strconnt="DRIVER={MySqlODBC5.3UnicodeDriver};SERVER="&sevip&";Database="&Db&";Uid="&user&";Pwd="&pwd&";Stmt=setnamesGBK"
connt.ConnectionString=strconnt
connt.Open

④ vbaExcel連接資料庫的好處

EXCEL vba 資料庫連接

聽語音

閱讀全文

與excelvba與資料庫整合應用相關的資料

熱點內容
iphone6plus切圖 瀏覽:822
iphone6沒有提示更新 瀏覽:41
cc網路圖教程 瀏覽:650
u盤無法剪切文件到電腦里 瀏覽:497
中海達靜態數據大概多少內存 瀏覽:599
蘋果6s手機文件管理器 瀏覽:107
qq頭像非主流女生捂臉 瀏覽:736
java判斷string編碼 瀏覽:941
excel工資簿如何匹配相同數據 瀏覽:159
視頻課程學習有哪些app 瀏覽:375
鐵模編程怎麼學 瀏覽:298
數學網路研修研究問題有哪些 瀏覽:677
stl文件怎麼列印 瀏覽:427
json格式變數寫法 瀏覽:68
廣州寄文件去吉林多少錢 瀏覽:254
蘋果APP文件夾創建 瀏覽:903
黃米是什麼app 瀏覽:417
word如何插入一個新文件夾 瀏覽:357
word文件夾前面有個符號 瀏覽:350
把word轉換成語音 瀏覽:220

友情鏈接