[SQL ] 利用excel vba執行複雜SQL不能超過255

看板Database (資料庫)作者 (mardin)時間3年前 (2020/10/28 12:05), 3年前編輯推噓3(306)
留言9則, 4人參與, 3年前最新討論串1/1
各位先進大家好, 我利用excel vba執行一個複雜的SQL, 因為SQL指令的長度太長超過255 在執行VBA時, 這個SQL字串就只留前面的255bytes的指令, 造成SQL語法不完整, 出問題, 我已GOOGLE好久, 都找不到答案, 快瘋掉了, 請各位先進指導一下, 感謝。 excel 程式片段大概如下: (問在倒數第2行 SQL字串) VVVVVVVVVVVVVVVVVVVVVVVVVVVV Set conn = New ADODB.Connection Set rs = New ADODB.Recordset conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};" & _ "SERVER = localhost; " & _ "PORT = 3306" & _ "DATABASE = dbdb;" & _ "UID = root; PASSWORD = 123; OPTION=3" conn.Open conn.ConnectionString conn.Execute "use dbdb" strsql = "SELECT ......." 'SQL長度超過 255, 會被截掉 rs.Open strsql, conn ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.45.146 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1603857933.A.B8A.html

10/28 13:36, 3年前 , 1F
在mysql內寫好sp或是view去呼叫如何?
10/28 13:36, 1F
非常感謝指點,用sp可以解決長度不會超過255,但如何抓sp產生的結果,還在試當中..

10/29 19:54, 3年前 , 2F
長度限制應是Excel儲存格的限制 strsql = 是否有儲存格?
10/29 19:54, 2F

10/29 19:54, 3年前 , 3F
若有,把固定文字都寫在VBA裡,會變動的才寫在儲存格試試
10/29 19:54, 3F
strsql 沒有儲存格, 我都用變數

10/30 03:40, 3年前 , 4F
好像用複製貼上有時候會出現 可以用儲存格=A1&B1...把
10/30 03:40, 4F

10/30 03:40, 3年前 , 5F
太長的語法連在一起
10/30 03:40, 5F
這個用試2種方法, 都還是會被截掉. 方法1: strsql = "select ......" & 變數1 & _ "................" & 變數2 & _ "........." 方法2: strsql = "select ......" & 變數1 strsql = strsql & "................" & 變數2 strsql = strsql & "........." ※ 編輯: mardin (118.150.201.220 臺灣), 11/01/2020 19:14:46

11/10 13:46, 3年前 , 6F
大膽猜一下 原po應該是設中斷點再從區域變數視窗直接抓
11/10 13:46, 6F

11/10 13:46, 3年前 , 7F
變數內容裡的字串出來吧 後面加一行Range("A1")=strsql
11/10 13:46, 7F

11/10 13:46, 3年前 , 8F
用儲存格看 保證查詢字串一個字不少 我覺得原po查詢字
11/10 13:46, 8F

11/10 13:46, 3年前 , 9F
串應該有語法錯誤
11/10 13:46, 9F
文章代碼(AID): #1VcEuDkA (Database)
文章代碼(AID): #1VcEuDkA (Database)