這個很簡單,代碼如下:
Sub C5C15_B3B13()
Dim Fo As Object, myName As String
Set Fo = Application.FileDialog(msoFileDialogFilePicker)
Fo.Title = "請選擇您要復制C5:C15數據的文件:"
If Fo.Show = True Then myName = Fo.SelectedItems(1)
If myName = "" Then
MsgBox "您取消了文件選擇,所以本次處理未完成,將直接退出", vbOKOnly + vbInformation
Exit Sub
End If
Dim wb as Workbook
For Each wb in Workbooks
if wb.Fullname = myName then Goto wbHasOpened
Next
set wb = workbooks.open(myname)
wbHasOpened:
Dim sh as worksheet
For each sh in wb.sheets
if sh.name = "Voice Quality" Then
[b3:B13] = sh.[c5:c15].value
Exit For
end if
Next
Msgbox "處理完成!"
wb.close True
End Sub
『貳』 Excel宏操作SQL資料庫
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCn As String
Dim strSQL As String
Dim CountryCode As String
Dim CountryName As String
Dim DeleteFlg As String
Dim CreateBy As String
Dim UpdateBy As String
'strCn = "Provider=sqloledb;Server=xxxx;Database=xxxx;Uid=sa;Pwd=sa;"
strCn = strConn
'MsgBox strCn
'open connect
cn.Open strCn
'**********************************************
strSQL = "DELETE FROM xxxx"
cn.Execute strSQL
cn.Close
'get the max row number
Dim RowCount As Integer
RowCount = Sheet3.UsedRange.Rows.Count
'get the time
Dim nowtime As Date
nowtime = Now()
'MsgBox nowtime
Dim index As Integer
For index = 0 To RowCount
'get data from excel
111= Cells(index, 1).Value
2222= Cells(index, 2).Value
DeleteFlg = "0"
3333= Cells(index, 3).Value
4444= Cells(index, 4).Value
『叄』 我想用Excel宏編寫代碼來對SQL資料庫進行連接和操作,請教詳細的步驟或方法,重分!!!!一定加分
參考網上資料:
http://www.access-cn.com/offspace/html/32/n-532.html
一、載入ODBC宏(OFFICE2000光碟有提供)後您就可以使用該函數了。語法及示例詳參《OFFICE2000幫助文檔》,全篇如下:Office中國社區門戶4q_Sz y0[ Z!g
連接到外部數據源並運行工作表中的查詢。然後,函數 SQL.REQUEST 以數組形式返回結果,而不必運行宏。如果該函數不存在,就必須安裝 Microsoft Excel 的 QDBC 載入宏(XLODBC.XLA)。Office中國社區門戶(m1n:jj(alT3^
語法Office中國社區門戶}}o%p&I"ev"b
SQL.REQUEST(connection_string,output_ref,driver_prompt,query_text,col_names_logical)
.I3ow{0FKh,]*S'A5V:Eq0
Connection_string 提供信息,如數據源名稱、用戶標識和口令等。這些信息對於連接數據源的驅動程序是必需的,同時它們必須滿足驅動程序的格式要求。下表給出用於 3 個不同驅動程序的 3 個連接串的示例。
#RT"~6e7h&? M!`'J0
oT f'j%o)M0 驅動器 連接串
dBASE DSN=NWind;PWD=test
SQL Server DSN=MyServer;UID=dbayer; PWD=123;Database=Pubs
ORACLE DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame
Office中國社區門戶r;}??X7||
7V2\O e&{S I;mIT8N0
在試圖連接到數據源之前,必須定義在 connection_string 中使用的數據源名稱(DSN)。Office中國社區門戶p.D9{8]k }
Z0k0X/@ Q6|#rAP~0 可以以數組或字元串的形式輸入 connection_string。但如果 connection_string 超過 250 個字元,必須按數組的形式輸入。
4_0M+Hb&At3^0Office中國社區門戶b-Q0iI9p)Y
如果函數 SQL.REQUEST 不能使用 connection_string 訪問數據源,則返回錯誤值 #N/A。 Output_ref 對用於存放完整的連接字元串的單元格的引用。如果在工作表中輸入函數 SQL.REQUEST,可以忽略 output_ref。
當需要函數 SQL.REQUEST 返回完整的連接串時,可以使用 output_ref(此種情況下,必須在宏表中輸入函數 SQL.REQUEST)。Office中國社區門戶#^;a#C/b9r~&d
Office中國社區門戶K$M'FCJXb
如果省略 output_ref,函數 SQL.REQUEST 不能返回完整的連接串。 Driver_prompt 指定驅動程序對話框的顯示時機以及可用的選項。可以使用下表中所描述的數字來描述 driver_prompt。如果省略 driver_prompt,函數 SQL.REQUEST 默認為 2 。
2cX!c0~e5Rl&RT6U0 Office中國社區門戶X9d7G _n
Driver_prompt 說明
1 一直顯示驅動程序對話框。
2 只有在連接串和數據源說明提供的信息不夠充分,以致不能完成連接時,才顯示驅動程序對話框。所有對話框選項都可使用。
3 只有在連接串和數據源說明提供的信息不夠充分,以致不能完成連接時,才顯示驅動程序對話框。如果未指明對話框選項是必需的,這些選項是暗的,不能使用。
4 不顯示對話框。如果連接不成功,則返回錯誤值。
{ |1@Pi)L0Office中國社區門戶8_E8q4L9x]6X4J"_/C
Query_text 需要在數據源中執行的 SQL 語句。
如果函數 SQL.REQUEST 不能在指定的數據源中執行 query_text,則返回錯誤值 #N/A 。Office中國社區門戶*`%S Hr+C7e6A1h3f
Office中國社區門戶Eg.\*_H)yB
可以將引用連接到 query_text 上來更新查詢。在下面的例子中,每次 $A$3 改變,函數 SQL.REQUEST 使用新的數值來更新查詢。
"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".
Microsoft Excel 將串長度限制在 255 個字元內。如果 query_text 超過此長度,請在垂直單元格區域中輸入查詢並使用整個區域作為 query_text。所有單元格的值連接在一起,形成完整的 SQL 語句。 Office中國社區門戶 S,m/u(k]
Column_names_logical 指明是否將列名作為結果的第一行返回。如果要將列名作為結果的第一行返回,請將該參數設置為 TRUE。如果不需要將列名返回,則用 FALSE。如果省略 column_names_logical,則函數 SQL.REQUEST 不返回列名。
/q#H@B#Y:ji_0
返回值
如果此函數完成了它的所有功能,則返回查詢結果數組或受查詢影響的行數。Office中國社區門戶WRBy h&O@Pll
Office中國社區門戶)z*WnpE1J'E$?.@
如果函數 SQL.REQUEST 不能使用 connection_string 訪問數據源,則返回錯誤值 #N/A。
3u'sr+~9~/yFTfmS0說明
函數 SQL.REQUEST 可以以數組的形式輸入。如果以數組形式輸入函數 SQL.REQUEST,該函數將返回一個恰好填充選定區域的數組。Office中國社區門戶 cq8Xq ]NS
Office中國社區門戶(^T%b7@ ]y
如果單元格區域大於結果集,函數 SQL.REQUEST 向返回的數組添加空單元格,直至增加到所需要的大小。
;Y"X;FA,kW0
+Lu"l5@?0 如果結果集大於以數組形式選定的輸入區域,函數 SQL.REQUEST 返回整個數組。Office中國社區門戶]/y){ Q sIX
Office中國社區門戶1c#ZY8`7n$YRp&x
函數 SQL.REQUEST 參數的次序與 Visual Basic for Application 中函數 SQLRequest 的參數次序不同。
Office中國社區門戶"C!pK p9O6BnlPj
示例
6c!s3F^-TzT_0
假設需要對名為 DBASE4 的 DBASE 資料庫進行查詢。如果在單元格中輸入下列公式,將會返回查詢結果數組,其中第一行是列名:Office中國社區門戶B9]4[RqK_wc
SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2,
"Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)二、用「數據」菜單上的「獲取外部數據」-「新建資料庫查詢」向導獲取資料庫數據。用該向導取得數據後,以後該工作表的數據以後會隨數據動態更新(在不移動數據源文件的前提下)。注意:請仔細設置外部數據表的屬性,會有更多收獲。
以上答案供參考
『肆』 如何在excel中編寫宏讀取資料庫
Subtest()
SetoExcel=GetObject(,"Excel.Application")
SetoWb=oExcel.Workbooks.Open("D: est.xls")'寫你自己的Excel路徑
MsgBoxoWb.Sheets("Sheet1").Range("C5")'取"Sheet1"工作表C5單元格的值
oExcel.Quit'退出Excel
EndSub
按Alt+F11打開VBE窗口,通過菜單選擇「插入」-「模塊」,輸入以上代碼。
這里採用的是後置綁定方法,無需事先載入Excel對象引用庫。
如果在此過程中希望Excel窗口不可見,可在調用open方法打開Excel之前設置visible屬性:
oExcel.Visible = False