iT邦幫忙

0

Excel VBA 查詢MS sql 資料庫 用到 暫存表 卻無資料到recordset ?

之前excel vba 查詢資料庫 都用 "select ~ from 資料表" 查詢正常。

最近嘗試 建立 @暫存表 進一步查詢

將上述 的 "select~ from 資料表"語句 改成 如下
"declare @暫存表(欄位1 as varchar(12),欄位 2... )
insert into @暫存表 (欄位1,欄位2,..) select 欄位1-1,欄位2-1 from 資料表

select A.欄位1,A.欄位2,B.欄位3,B.欄位4 from @暫存表 as A left join 資料表2 as B on A.欄位1=B.欄位3"

在Microsoft SQL Server Management 都可以輸出正確結果
用Sql Server Profiler 查看 指令也有正確過去 查詢到
但就是excel vba 中的 recodrset 卻沒有資料

是否可以提點問題在哪呢?

[2021/12/06] 補充說明
又遇到一次相同問題,加上了 SET NOCOUNT ON 後仍然沒辦法解決。
注意到 Sql Server Profiler 訊息如下

----警告: 彙總或其他 SET 作業已刪除 Null 值。 ---

解決方法有2

  1. SET ANSI_WARNINGS OFF; 設在前面...直接忽略錯誤訊息
  2. 在彙總函數前 先判斷null---> isnull(資料,0)
achan iT邦新手 1 級 ‧ 2021-12-06 12:57:47 檢舉
[2021/12/06] 補充說明
又遇到一次相同問題,加上了 SET NOCOUNT ON 後仍然沒辦法解決。
注意到 Sql Server Profiler 訊息如下

----警告: 彙總或其他 SET 作業已刪除 Null 值。 ---

解決方法有2

1.)SET ANSI_WARNINGS OFF; 設在前面...直接忽略錯誤訊息
2.)在彙總函數前 先判斷null---> isnull(資料,0)

1 個回答

2
海綿寶寶
iT邦大神 1 級 ‧ 2021-11-30 09:03:15
最佳解答

Google 這篇看看能不能用

achan iT邦新手 1 級 ‧ 2021-11-30 09:37:49 檢舉

感謝 海綿寶寶
加上去 就可以使用了!!
分別
前面 加上 SET NOCOUNT ON
結束 加上 SET NOCOUNT OFF

問題解決就好

我要發表回答

立即登入回答