① 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 資料庫連接
聽語音
原創
|
瀏覽:7393
|
更新:2016-06-23 16:12
|
標簽:EXCELVBA