台灣最大程式設計社群網站
線上人數
2536
 
會員總數:246497
討論主題:190005
歡迎您免費加入會員
討論區列表 >> ACCESS >> [Access]子表單加總顯示#錯誤
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[Access]子表單加總顯示#錯誤
價值 : 50 QP  點閱數:309 回應數:17
樓主

Mocimoci
門外漢
0 5
87 18
發送站內信

各位高手~
我建立了一個包含主表及子表的表單,想要在主表中對子表的內容做加總
我在測試檔(Test, 連結:https://reurl.cc/zWenO7)中成功地做出加總的效果,但使用一樣的方法於我想建立的資料庫(Database1, 連結:https://reurl.cc/1oYNzQ)中卻顯示 #錯誤 的結果,Database1 帳號:test 密碼:0000,登入後請點選會計帳,加總於表單最下方
希望有高手能為我解答,麻煩大家了!




搜尋相關Tags的文章: [ access ] , [ 加總 ] , [ 錯誤 ] ,
本篇文章發表於2021-09-21 22:24
1樓
不錯的參考

tungta
捐贈 VP 給 tungta 檢舉此回應
將子表單的表單尾
稅金=Sum([稅]) 改為 稅金=Sum([5%])即可
因為[稅]雖然是設為子表單一個欄位名稱,但5%才是真正資料表的欄位名稱
本篇文章回覆於2021-09-22 11:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Mocimoci
檢舉此回應
tungta感謝您的回覆~
稅金部分的加總解決了!!真的很開心
但總金額的部分依然無法顯示數值,不知道會不會是因為貸方金額皆為空白所造成的?請問這要怎麼解決才好呢?
另外,我在主表單增加了 發票稅金及發票金額 兩格,希望將自動計算後的 稅金及總金額 填入(但須保有可更改性,且須存入 會計帳_編號 資料表中的對應位置),所以我試著用vba解決,代碼如下:
Private Sub 稅金_AfterUpdate()
Me![發票稅金] = Me![稅金]
End Sub
但結果顯示錯誤,請問我應該如何修正??
附上我修改後的檔案 https://reurl.cc/355xVV
本篇文章回覆於2021-09-22 23:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

tungta
捐贈 VP 給 tungta 檢舉此回應
的確是借貸方金額是空白,導致總金額計算也成為空白,將VBA調整一下即可
將Me![借方金額] = Null與Me![貸方金額] = Null的Null都改為0就沒問題了
另外,由於相同的計算程式在『數量、單價、借貸』三個欄位都會執行,為了預防修改計算程式時漏掉沒有三處都改,因此建立一個『借貸方計算模組』,在『數量、單價、借貸』三個欄位執行時只要驅動同一個模組即可
如附檔:https://www.mediafire.com/file/kjcc1dxwjpnth5g/Database2.accdb/file
本篇文章回覆於2021-09-23 17:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

tungta
捐贈 VP 給 tungta 檢舉此回應
主表單增加了 發票稅金及發票金額 兩格也改好
如附檔:https://www.mediafire.com/file/d4t8nblexhocljo/Database2.accdb/file
本篇文章回覆於2021-09-23 18:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

Mocimoci
檢舉此回應
tungta您好~
謝謝你拯救了我這個超級新手!
原來重複的程式碼可以藉由模組簡化啊,這對我來說很實用呢!!!
不過,發票稅金及發票金額 的部分似乎要更新子表單後才會出現值,是否有辦法可以讓他直接連動執行呢?我目前只有想到換掉Afterupdate,但我不太知道可以換什麼說...有沒有讓操作可以更簡便的方法?
還有,我在測試時發現我當初設計了一個重大錯誤,總金額=借方金額-貸方金額沒錯,但 未稅金額以及稅金 的部分其實也應該要是 借-貸 ,也就是說 借貸="借" 的 SUM(數量*單價) 要減去 借貸="貸" 的 SUM(數量*單價),關於這個部分,我的判斷式應該如何下比較好呢?
本篇文章回覆於2021-09-23 22:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Mocimoci
檢舉此回應
我希望主表單中購買證明 欄位中的選擇能改變 主表單中發票稅金及發票金額 以及 子表單中5% 的運算結果,也就是說如果主表單中 購買證明為 "發票-三聯"或"發票-加油"或"發票-其他"時,主表單中發票稅金及發票金額 以及 子表單中5% 依照原本的運算方式,但如果 購買證明為其他項目時,主表單中發票稅金及發票金額=Null,子表單中5%=0
我試著寫出以下的程式碼:
Private Sub 單價_AfterUpdate()
If Me.Parent![購買證明] = "發票-三聯" Or "發票-加油" Or "發票-其他" Then
Me![稅] = Round(Me![數量] * Me![單價] * 0.05, 0)
Else
Me![稅] = 0
End If
Dim x
x = 借貸方計算() '借貸方計算模組
End Sub

Private Sub Form_AfterUpdate()
If Me.Parent![購買證明] = "發票-三聯" Or "發票-加油" Or "發票-其他" Then
Me.Parent![發票金額] = Me![總金額] '更新主表單欄位
Me.Parent![發票稅金] = Me![稅金] '更新主表單欄位
Else
Me.Parent![發票金額] = Null
Me.Parent![發票稅金] = Null
End If
End Sub

但結果出現了錯誤,似乎是錯在Or的部分,但我實在不知道該如何修改,再麻煩你幫我看看如何修訂,感謝!
附上修改後錯誤的資料庫:https://reurl.cc/n553ke
本篇文章回覆於2021-09-23 23:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

tungta
捐贈 VP 給 tungta 檢舉此回應
1.要改為如下這樣,因為[購買證明]下拉式方塊將資料表第一欄位『識別碼』隱藏,直接顯示第二欄位『購買證明』,但實際儲存的資料仍是第一欄位『識別碼』,
If Me.Parent![購買證明] = "1" Or Me.Parent![購買證明] = "2" Or Me.Parent![購買證明] = "3" Then

2.主表單發票稅金及發票金額的部分重新調整,請看附檔
https://www.mediafire.com/file/ss0drjuuvaqtr9d/Database2-3.accdb/file

3.總金額、未稅金額、稅金的問題,您這個會計帳的設計方向不太對,會計帳就只有收入與支出,沒有借貸方,而且收入與支出要分開不同表單建檔,才不會混淆不清,
至於借貸方,那是轉帳傳票才有的科目,用來建立資產負債表,更重要的是最後結果必須是『借方金額』=『貸方金額』
本篇文章回覆於2021-09-24 12:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Mocimoci
檢舉此回應
tungta真是太感謝您了~真的是以有求必應
第1和第3點我已經了解了,但第3點的部分我有個問題,當主表單中的值更新完之後,會自動跳至第一筆紀錄,這樣使用者會無法確認值是否正確,請問使是否有辦法可以讓畫面停留在當筆紀錄呢?
另外,我每次打開表單都是顯示第一筆紀錄,是否能將最後一筆紀錄或是新的空白表單設為預設開啟表單的畫面呢?
實在是太謝謝您了!!!
本篇文章回覆於2021-09-24 23:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

Mocimoci
檢舉此回應
請問如果我在子表單中多加一個地點的欄位,想要在輸入專案後,讓這個地點的欄位自動出現,我應該怎麼做?
專案及地點 均在 Ref_專案 資料表中,分別稱為 專案名稱及地點
我試著用以下的代碼執行:
Private Sub 專案_AfterUpdate()
Me![地點] = DLookup("地點", "Ref_專案", [識別碼] = Me![專案])
End Sub
但顯示錯誤,我是不是哪裡做錯了??
本篇文章回覆於2021-09-25 00:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
最有價值解答

tungta
捐贈 VP 給 tungta 檢舉此回應
以下兩種方式選用一種
DoCmd.GoToRecord , "", acLast '末筆資料
Me.Recordset.AddNew '新增資料

專案地點的顯示增加到表單記錄來源之中

https://www.mediafire.com/file/337afmjfi959vhb/Database2-3.accdb/file
本篇文章回覆於2021-09-25 17:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Mocimoci
檢舉此回應
不好意思~
我看很久看不出來您的專案地點是怎麼寫的,可以告訴我是寫在哪裡嗎?
本篇文章回覆於2021-09-26 00:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

Mocimoci
檢舉此回應
tungta您好~
我希望地點能存回 會計帳_明細 資料表之中的 地點(我新增了這個欄位),並且地點值預設為 Ref_專案 中的 地點(根據專案不同而不同),但地點的內容必須要可以根據實際狀況更改
所以我改了一下檔案,但我改完之後 地點 確實能根據 專案 顯示,地點內容 也能更改,但地點 內容改變會 導致Ref_專案中的地點 也跟著改變,請問要怎麼樣在不改變 Ref_專案 的前提下達到我想要的效果?
不知道用我之前提到的DLookup是否能行呢?

附上我更改的檔案:https://reurl.cc/n5EMYD
本篇文章回覆於2021-09-26 22:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

tungta
捐贈 VP 給 tungta 檢舉此回應
https://www.mediafire.com/file/j1f6msnz81ks00n/Database2-3(3).accdb/file
檔案已更正,VBA如下才正確
Me![地點] = DLookup("地點", "Ref_專案", "[識別碼] =" & Me![專案])
本篇文章回覆於2021-09-28 16:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

Mocimoci
檢舉此回應
可以了耶!!
感謝你~
本篇文章回覆於2021-10-01 00:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

Mocimoci
檢舉此回應
請問我如果在 Ref_專案 資料表(表單中 專案 下拉式選單的參照表)中裡面加一欄是否結案,我能夠讓下拉式選單內的選項清單只顯示未結案的專案嗎? 因為真實的專案實在太多,又有些名稱很像的,實在是容易搞混...

附上我的資料表:https://reurl.cc/jgGO82
本篇文章回覆於2021-10-01 00:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.