A. 熟悉excel宏編輯和sql的請進
GetSQL = " SELECT H.BILLDATE AS 日期," _
& " M.CODE AS 代碼,M.NAME AS 名稱,D.C_F01 AS 長,D.C_F02 AS 寬,D.C_F05 AS 片數,BG.NAME AS 廠牌," _
& " 空列1='' ," _
& " 空列2='' ," _
& " 空列3='' ," _
& " 空列4='', " _
& " 空列5='', " _
& " D.BATCHNO AS 批號," _
& " D.QTY - COALESCE(V2.HKQTY,0) AS 重量," _
& " W.NAME AS 倉庫,SS.NAME AS 存貨狀態," _
& " D.C_F03 AS 密度,D.C_F04 AS 單位體積," _
& " D.C_S01 AS 鋼印號,D.C_S02 AS 平整率,D.C_S04 AS 厚度公差,D.C_S03 AS 加膜,D.DNOTES AS 備注,D.C_S05 AS 盤點信息 " _
列名先隨意指定(必須指定列名,不能空著)。出力後自己再修改。
要是不想這么麻煩。那就提前指定。提前將5個列名拿到手。放到Name1----5中
Sql如下:
GetSQL = " SELECT H.BILLDATE AS 日期," _
& " M.CODE AS 代碼,M.NAME AS 名稱,D.C_F01 AS 長,D.C_F02 AS 寬,D.C_F05 AS 片數,BG.NAME AS 廠牌," _
& " '" & Name1 & "' ='' ," _
& " '" & Name2 & "' ='' ," _
& " '" & Name3 & "' ='' ," _
& " '" & Name4 & "' ='' , " _
& " '" & Name5 & "' ='' , " _
& " D.BATCHNO AS 批號," _
& " D.QTY - COALESCE(V2.HKQTY,0) AS 重量," _
& " W.NAME AS 倉庫,SS.NAME AS 存貨狀態," _
& " D.C_F03 AS 密度,D.C_F04 AS 單位體積," _
& " D.C_S01 AS 鋼印號,D.C_S02 AS 平整率,D.C_S04 AS 厚度公差,D.C_S03 AS 加膜,D.DNOTES AS 備注,D.C_S05 AS 盤點信息 " _
但是必須保證列名不能有單引號,*號等特殊符號。
B. Excel宏連接mssql 查詢數據
可以做,但要時間調試,需要文檔
C. ACCESS 中的 宏 是什麼他跟sql相對比,宏相當於sql中的什麼啊 ,宏的用途是什麼
access資料庫 不安全,而且數據量過小。
建議去考慮 SQL..
什麼是宏
計算機科學里的宏是一種抽象,它根據一系列預定義的規則替換一定的文本模式。Excel 辦公軟體自動集成了「VBA」高級程序語言,用此語言編制出的程序就叫「宏」。使用「VBA」需要有一定的編程基礎和耗費大量的時間,因此,絕大多數的使用者僅使用了Excel的一般製表功能,很少使用到「VBA」。 解釋器或編譯器在遇到宏時會自動進行這一模式替換。對於編譯語言,宏展開在編譯時發生,進行宏展開的工具常被稱為宏展開器。宏這一術語也常常被用於許多類似的環境中,它們是源自宏展開的概念,這包括鍵盤宏和宏語言。絕大多數情況下,使用「宏」這個詞的使用暗示著將小命令或動作轉化為一系列指令。 宏的用途在於自動化頻繁使用的序列或者是獲得一種更強大的抽象能力--但這常常是一回事。 計算機語言如C或匯編語言有簡單的宏系統,由編譯器或匯編器的預處理器實現。C的宏預處理器的工作只是簡單的文本搜索和替換,使用附加的文本處理語言如M4,C 程序員可以獲得更精巧的宏。 Lisp類語言如Common Lisp和Scheme有更精巧的宏系統: 宏的行為如同是函數對自身程序文本的變形,並且可以應用全部語言來表達這種變形。一個C宏可以定義一段語法的替換,然而一個Lisp的宏卻可以控制一節代碼的計算。 獲得了控制代碼的執行順序(見惰性計算和非限制函數)的能力,使得新創建的語法結構與語言內建的語法結構不可區分。例如,一種Lisp 方言有 cond 而沒有if ,就可以使用宏由前者定義後者。Lisp 語法的去部主要擴展,比如面向對象的CLOS 系統,可以由宏來定義。
宏的典型應用
加速日常編輯和格式設置 組合多個命令 使對話框中的選項更易於訪問 使一系列復雜的任務自動執行
宏編程介紹
在用一種不熟悉的宏語言進行宏編程時,可以這樣做,首先記錄下用戶想要宏完成什麼,然後打開宏文件並嘗試理解命令結構如何工作。也可以修改命令以調整宏。一些宏語言,比如Great Plains賬務(?accounting)軟體的 Dexterity 運行時引擎,不能從其它數據源(如由逗號分隔的文本文件)導入數據。這一限制可以通過用更強大的編程語言,如 VBA 來創建一個計算機程序在此弱編程語言里生成一個特別的宏來解決。例如,可以對 Microsoft Excel 宏編程從擴展樣式表或文本文件中讀取數據並創建 Great Plains .mac 文件,這一文件被用於將特定的數據導入 Great Plains. 需要針對每一個新的數據集合聲稱新的 .mac 文件。
鍵盤宏
鍵盤宏和編輯器宏分別在圖形用戶界面和編輯器中被互動式地使用。使用它們可以用簡短的擊鍵代替冗長的命令序列,並為重復性任務提供了一個簡單的自動化形式。 程序員的文本編輯器 Emacs (「編輯宏」[Editing MACroS]的簡稱)是沿用這一思想的產物。事實上,大多數編輯器是由宏組成的,Emacs 最初被設計為編輯語言 TECO 的宏集,後被移植為 Lisp 的一中方言 Emacs Lisp。
宏語言
宏語言是一類編程語言,其全部或多數計算是由擴展宏完成的。宏語言並未在通用編程中廣泛使用,但在文本處理程序中應用普遍。例如, C preprocessor C 預處理器 Internet Macros(iOpus) M4(如前所述,源於AT&T,捆綁於Unix) 宏定義 c程序提供的預處理功能之一。包括帶參數的宏定義和不帶參數的宏定義。具體是指用一個指定的標志符來進行簡單的字元串替換或者進行闡述替換。形式為: #define 標志符(參數表) 字元串 宏名 在上定義中的標志符被稱為「宏名」。 宏展開 在c程序編譯時將宏名替換成字元串的過程稱為「宏展開」。
D. 怎麼樣才能將EXCEL中的數據用宏導入到SQL庫中
你用的什麼資料庫?
我以Mysql為例說下:
1.用Excel將選中的數據快兒拷貝到一個TXT文本文件中(記得把後面的空格消掉。。),假如存到「D:\data.txt」這個位置里。
2.根據要導入的數據快兒建立MySql資料庫和表,然後進入命令提示符里使用命令
load
data
local
infile
'D:\data.txt'
into
table
exceltomysql
fields
terminated
by
'\t';
進行導入操作(table是你建立的表名字)
如果提示找不到D:\data.txt
你就改成D:\\data.txt
E. 利用宏和SQL將多張Excel報表的某些數值導入一張報表的指定位置的方法
編一個程序,用JET介面打開Excel多表查詢生成新的報表,導出Excel
F. office2013 vba 與sql 結合的問題
VBA與SQL的結合,其實和VBS(就是ASP)差不多的,舉個例子:
Set cnn = CreateObject("ADODB.Connection")
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
cnn.Open ThisWorkbook.Path & "\Access資料庫\DATA.mdb"
strSQL="SELECT * FROM test"
msgbox cnn.Execute(CommandText:=strSQL).GetString
還可以GetRows方法返回數組。
希望例子對你有幫助,怎麼把結果存到EXCEL表格,網上例子一大堆。
G. 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
H. 我想用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)二、用「數據」菜單上的「獲取外部數據」-「新建資料庫查詢」向導獲取資料庫數據。用該向導取得數據後,以後該工作表的數據以後會隨數據動態更新(在不移動數據源文件的前提下)。注意:請仔細設置外部數據表的屬性,會有更多收獲。
以上答案供參考