導航:首頁 > 編程大全 > 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與資料庫整合應用相關的資料

熱點內容
惠普bf001ax升級版 瀏覽:364
win10如何更換賬號 瀏覽:183
linux顯示內核 瀏覽:242
excel用按鍵功能打開文件 瀏覽:456
狼人殺文件名字是什麼 瀏覽:679
重裝系統以前的文件 瀏覽:663
全民超神113版本百度 瀏覽:11
編程ts什麼意思 瀏覽:280
炫舞夢工廠新版本134 瀏覽:741
md文件能加圖片嘛 瀏覽:157
java點擊按鈕選擇本地文件 瀏覽:908
自己製作ps漸變預設文件包 瀏覽:358
怎麼登陸蘋果賬號 瀏覽:951
java隨機百分比 瀏覽:625
c語言數學函數頭文件 瀏覽:625
歷年溫度數據怎麼下載 瀏覽:360
新qq如何改密碼忘了怎麼辦 瀏覽:123
函數的編程是什麼 瀏覽:522
什麼網站上能叫小姐 瀏覽:534
壓縮文件解壓打開方式 瀏覽:86

友情鏈接