English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

不知為一直跑出錯誤視窗說我的SELECT有誤,
請眾高手幫我檢查一下,到底是那裡錯了,謝謝。
程式如下:

Option Compare Database

Private Sub Form_Load()


Dim dbObject As Database
Dim rstObject As Recordset
Dim strSQL As String

Set dbObject = CurrentDb

strSQL = "SELECT Sum([預算金額]) As 預算" & _
"FROM 專案預算表"

Set rstObject = dbObject.OpenRecordset(strSQL)

Me![預算收入] = rstObject![預算]

End Sub

2006-12-31 17:10:54 · 3 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

請教一下pop,
Set df = CurrentDb.OpenRecordset(" SELECT 預算金額 AS 預算 FROM 專案預算表;")
此句中,是否直接在( )中打入SQL即可?
因我加上SUM可以,
但加入WHERE後就會跳出預計數少於1的錯誤。

2007-01-01 08:07:45 · update #1

感謝墊腳石大大的回答,原來是少了空白!!
但為何加上WHERE後會產生新的預期數少於1的錯誤呢?

加入WHERE後如下:

strSQL="SELECT Sum(專案預算表.預算金額) AS 預算金額之總計 FROM 專案預算表 WHERE 專案預算表.專案名稱 = 測試 "

直接用查詢的SQL打入上式是正常的,但原式搬到VBA中就不能使用了,是為什麼呢?

2007-01-01 10:49:35 · update #2

因為自學ACCESS,
希望各位大大也順便推薦幾本ACCESS、VBA、SQL的好書,
不然看說明的自學之路真是備感艱辛啊…
目前我用的是ACCESS2003,謝謝。

2007-01-01 10:54:01 · update #3

3 個解答

strSQL = "SELECT Sum([預算金額]) As 預算" & _
"FROM 專案預算表"

其實把上面那一行改成下面的方式就好了

strSQL = "SELECT Sum([預算金額]) As 預算 FROM 專案預算表"

你要斷行,但是沒有注意到要留空白!!!你的
strSQL = ....預算" & _
"FROM 專案預算表"
在 & 前後都沒有空白就變成了 as "預算FROM " 整個 SQL 語法中就少了 FROM 的關鍵字了!

2007-01-02 11:38:06 補充:
測試 是欄名還是查詢關鍵字? 如果是查詢關鍵字就要加上引號

2007-01-01 07:46:57 · answer #1 · answered by ? 6 · 0 0

你的SQL語法是:
SELECT Sum([預算金額]) As 預算 FROM 專案預算表

因為你使用了聚合函數Sum

這代表許多筆資料的匯總

所以你應該再加上GROUP BY子句

例如:
SELECT Sum([預算金額]) As 預算 FROM 專案預算表
GROUP BY 年度, 部門, 地區...

2006-12-31 21:32:38 · answer #2 · answered by yoo 3 · 0 0

Private Sub Form_Load()
Dim df As DAO.Recordset
Set df = CurrentDb.OpenRecordset(" SELECT 預算金額 AS 預算 FROM 專案預算表;")
if df.recordcount then Me![預算收入] = df![預算]
df.close:set df=nothing
end sub
如果你是要直接秀出 預算金額的合計
直接輸入
Me![預算收入] =DSum("預算金額","專案預算表","預算金額 <>" & "0")
ps:希望有幫上忙.

2007-01-01 01:23:44 補充:
sorry!請更正
if df.recordcount then Me![預算收入] = df![預算]___錯誤
if df.recordcount then Me![預算收入] = df("預算")___正確

2007-01-01 22:09:13 補充:
1:避免_產生預期數少於1的錯誤.請參考下列:
原有:
Set df = CurrentDb.OpenRecordset(" SELECT 預算金額 AS 預算 FROM 專案預算表;")
更新:
Set df = CurrentDb.OpenRecordset(" SELECT 預算金額 AS 預算 FROM 專案預算表 where 預算金額<>" & "0" & " order by預算金額 ;")
ps:
1:where 只是假設.你自行訂定你的條件.

2006-12-31 20:10:07 · answer #3 · answered by pop 7 · 0 0

fedest.com, questions and answers