銷售明細表單自動取得商品售價的 VBA 程式碼

1.開啟 Access VBA 編輯器

2. Microsoft Access 物件類別之「Form_銷售明細」,加入如下的程式碼:

Private Sub 產品識別碼_AfterUpdate()

'自動填入產品的數量與售價
If Not IsNull(Me![產品識別碼]) Then
Me![數量] = 1
Me![單價] = GetListPrice(Me![產品識別碼])
'[清空產品] 記錄表示使用者想要刪除產品項目
Else
eh.TryToRunCommand acCmdDeleteRecord
End If

End Sub

Function GetListPrice(產品識別碼 As Long) As Currency

'依據產品識別碼從產品資料表取得售價
If IsNull(DLookup("[售價]", "產品", "[產品識別碼] = " & 產品識別碼)) Then
If MsgBox("無效的商品識別碼。", vbCritical) Then
DoCmd.CancelEvent
End If
Else
GetListPrice = DLookup("[售價]", "產品", "[產品識別碼] = " & 產品識別碼)
End If

End Function

3. 銷售明細表單之「產品識別碼」控制項,其「事件」屬性中的 AfterUpdate 設定為「事件程序」。若是AfterUpdate沒有設定為「事件程序」,程式碼將不會被執行。

Access 資料庫設計與應用-課程大綱

第一堂

第二堂

第三堂

  • 建立銷售資料表:銷售、銷售明細
  • 建立資料表關聯:銷售(銷售明細、客戶編號)、銷售明細(產品識別碼)
  • 建立銷售查詢:銷售查詢、銷售明細查詢
  • 資料表的關聯
  • 運算式:運算式簡介

第四堂

  • 建立銷售作業表單
  • 主/子表單設計

銷售作業表單建立程序:

  1. 建立銷售資料表、銷售明細資料表
  2. 建立銷售查詢、銷售明細查詢、銷售合計查詢
  3. 修改銷售查詢:(1)加入「客戶名稱」欄位(2)加入銷售合計查詢的「合計」欄位
  4. 修改銷售明細查詢:加入「商品名稱」欄位
  5. 修改銷售合計查詢:(1) 銷售明細的銷售明細識別碼欄位之「合計」列,設定為「群組」。(2)新增「合計: Sum(CCur([單價]*[數量]))」欄位,「合計」列設定為運算式
  6. 建立銷售表單:資料來源(銷售查詢),不需要欄位(銷售識別碼)
  7. 建立銷售明細表單:資料來源(銷售明細查詢),不需要欄位(識別碼、銷售識別碼),採用「表格式」配置
  8. 建立銷售與銷售明細資料表的關聯:銷售識別碼(一對多)
  9. 銷售表單中加入銷售明細子表單
  10. 銷售明細表單加入自動填入數量與售價的VBA程式碼
  11. 銷售明細表單使用新增記錄合計,加總數量與合計金額

表單參考:

第五堂

  • 報表設計
  • 報表:產品清冊、訂單清冊、郵遞標籤
  • 報表匯出:Word文件、Excel文件

第六堂

表單參考:

第七堂

  • 前後端資料庫設計
  • 資料庫的分割
  • 資料表連結

第八堂

  • 導覽表單設計
  • 資料庫的修護與備份
  • 資料庫程式設計

其他:

  • 建立客戶資料表
  • 客戶作業表單設計
  • 客戶資料輸入

控制項常用屬性設定(表單與報表)

  • 表單中設定文字方塊控制項的資料為不可編輯
    方法:將表單中之文字方塊的鎖定屬性設為
  • 表單與報表中設定文字方塊控制項中的數字有千分號格式及沒有小數位數(把顯示數字格式15000,變成15,000)。
    方法:將表單或報表中之文字方塊的格式屬性設為標準小數位數屬性設為0

Access參考書籍

資料庫系統開發聖經:以Access 2003實作(附1CD)
桂思強 著 ,學貫出版社,出版日期:2004/11/01

 

Access 2000 VBA研究大觀

桂思強 著 ,學貫出版社,出版日期:2000/06/15

 

Access 2003實戰問答集(附1CD)
桂思強 著 ,學貫出版社,出版日期:2004/06/29

 

版權所有 © 2016 JoyCat All Rights Reserved.