?? modmain.bas
字號:
'詳細信息表中的該種物品的數量為0
sngOrdQty = 0
End If
End With
With rsSalDA
'判斷數據集rsSalDA中的記錄數是否為0
If .RecordCount <> 0 Then
'數據集rsSalDA中的記錄數不為0,將strSalPro指定的物品數量賦值
'給變量sngSalQty,以表示出庫詳細信息表中的該種物品的數量
sngSalQty = !sqty
Else
'數據集rsSalDA中的記錄數為0,將變量sngSalQty置為0,以表示出庫
'詳細信息表中的該種物品的數量為0
sngSalQty = 0
End If
End With
'判斷數據集rsMatQty中的記錄是否為0
If rsMatQty.RecordCount = 0 Then
'數據集rsMatQty中的記錄為0,將變量sngMatQty值設為0,
'以表示物品匯總信息表中的該種物品的數量為0
sngMatQty = 0
Else
'數據集rsMatQty中的記錄不為0,將strSalPro指定的物品數量賦值
'給變量sngMatQty,以表示物品匯總信息表中的該種物品的數量
With rsMatQty
.MoveFirst
sngMatQty = CSng(!qty)
End With
End If
'根據變量sngOrdQty 、sngMatQty和sngSalQty的值,判斷是否還
'有strSalPro指定的物品
If (sngOrdQty + sngMatQty - sngSalQty) - CCur(strSalQty) < 0 Then
'倉庫中沒有strSalPro指定的物品,設置函數返回值為False
SaleTooLarge = False
Else
'倉庫中還有strSalPro指定的物品,設置函數返回值為False
SaleTooLarge = True
End If
rsMatQty.Close
Set rsMatQty = Nothing
End Function
Public Function SaleUnPr(strSaleID As String, strSalPro As String) As Currency
'定義返回物品累計信息表中記錄的數據集對象rsMat
Dim rsMat As ADODB.Recordset
'定義返回已審核的入庫詳細信息表中記錄的數據集對象rsOrdDA
Dim rsOrdDA As ADODB.Recordset
'定義返回未審核的出庫詳細信息表中記錄的數據集對象rsSalDA
Dim rsSalDA As ADODB.Recordset
'定義存儲sql語句的變量strSQL
Dim strSQL As String
'定義存儲已審核的入庫單中的物品數量sngOrdQty和出庫數量的變量sngSalQty
Dim sngOrdQty, sngSalQty As Single
'定義存儲已審核的入庫單中的物品價格CurOrdPrice和出庫單
'中的物品價格的變量CurSalPrice
Dim CurOrdPrice, CurSalPrice As Currency
'初始化數據集對象rsMat、rsOrdDA和rsSalDA
Set rsMat = New ADODB.Recordset
Set rsOrdDA = New ADODB.Recordset
Set rsSalDA = New ADODB.Recordset
'設置并執行sql語句,以返回數據集對象rsMat,使其包含物
'品匯總信息表中的物品名稱為strSalPro 的物品的可用數量和價格
strSQL = "select qty,price from mat_head where p_id='" & strSalPro & "'"
rsMat.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
'設置并執行sql語句,以返回數據集對象rsOrdDA,使其包含未審核的入
'庫詳細信息表中的物品名稱為strSalPro的物品的編號、數量和價格
strSQL = "select p_id,sum(qty) as oqty,sum(price) as oprice from " & _
"order_detail_a where p_id='" & strSalPro & "' group by p_id"
rsOrdDA.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
'設置并執行sql語句,以返回數據集對象rsSalDA,使其包含出庫詳細
'信息表中的物品名稱為strSalPro的物品的編號、數量和價格
strSQL = "select p_id,sum(qty) as sqty,sum(price) as sprice from " & _
"sale_detail_a where p_id='" & strSalPro & "' and sale_id<>'" & _
strSaleID & "' group by p_id"
rsSalDA.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
With rsOrdDA
'判斷數據集rsOrdDA中的記錄數是否為0
If .RecordCount <> 0 Then
'數據集rsOrdDA中的記錄數不為0,將strSalPro指定的物品數量和價格賦值
'給變量sngOrdQty和CurOrdPrice,以表示入庫詳細信息表中的該種物品的數量和價格
sngOrdQty = !oqty
CurOrdPrice = !oprice
Else
'數據集rsOrdDA中的記錄數為0,將變量sngOrdQty和CurOrdPrice置為0,以表示入庫
'詳細信息表中的該種物品的數量和價格為0
sngOrdQty = 0
CurOrdPrice = 0
End If
End With
With rsSalDA
'判斷數據集rsSalDA中的記錄數是否為0
If .RecordCount <> 0 Then
'數據集rsSalDA中的記錄數不為0,將strSalPro指定的物品數量和價格賦值
'給變量sngSalQty和CurSalPrice,以表示入庫詳細信息表中的該種物品的數量和價格
sngSalQty = !sqty
CurSalPrice = !sprice
Else
'數據集rsSalDA中的記錄數為0,將變量sngSalQty和CurSalPrice置為0,以表示入庫
'詳細信息表中的該種物品的數量和價格為0
sngSalQty = 0
CurSalPrice = 0
End If
End With
With rsMat
'判斷數據集rsMat中的記錄數是否為0
If rsMat.RecordCount = 0 Then
'數據集rsMat中的記錄數為0,設置函數返回值為0,以表示倉庫中該物品的數量為0
SaleUnPr = 0
Else
'根據變量sngOrdQty 、!qty和sngSalQty的值,判斷是否還有strSalPro指定的物品,
'并設置函數返回值,以表示當前物品的平均價格
If sngOrdQty + CSng(!qty) - sngSalQty <> 0 Then
SaleUnPr = CCur(Round((CurOrdPrice + CCur(!price) - CurSalPrice) _
/ (sngOrdQty + CSng(!qty) - sngSalQty), 2))
End If
End If
End With
rsMat.Close
rsOrdDA.Close
rsSalDA.Close
Set rsMat = Nothing
Set rsOrdDA = Nothing
Set rsSalDA = Nothing
End Function
Public Function Sale_Price(strSaleID As String, strSaleNum As String, _
strSaleUnPr As String, strSaleQty As String) As Currency
'定義返回物品累計信息表中記錄的數據集對象rsMatSale
Dim rsMatSale As ADODB.Recordset
'定義返回已審核的入庫詳細信息表中記錄的數據集對象rsOrdDA
Dim rsOrdDA As ADODB.Recordset
'定義返回未審核的出庫詳細信息表中記錄的數據集對象rsSalDA
Dim rsSalDA As ADODB.Recordset
'定義存儲sql語句的變量strSQL
Dim strSQL As String
Dim sngOrdQty, sngSalQty As Single
Dim CurOrdPrice, CurSalPrice As Currency
Set rsMatSale = New ADODB.Recordset
Set rsOrdDA = New ADODB.Recordset
Set rsSalDA = New ADODB.Recordset
strSQL = "select qty,price from mat_head where p_id='" & strSaleNum & "'"
rsMatSale.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
strSQL = "select p_id,sum(qty) as oqty,sum(price) as oprice from " & _
"order_detail_a where p_id='" & strSaleNum & "' group by p_id"
rsOrdDA.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
strSQL = "select p_id,sum(qty) as sqty,sum(price) as sprice from " & _
"sale_detail_a where p_id='" & strSaleNum & "' and sale_id<>'" & _
strSaleID & "'group by p_id"
rsSalDA.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
With rsOrdDA
If .RecordCount <> 0 Then
sngOrdQty = !oqty
CurOrdPrice = !oprice
Else
sngOrdQty = 0
CurOrdPrice = 0
End If
End With
With rsSalDA
If .RecordCount <> 0 Then
sngSalQty = !sqty
CurSalPrice = !sprice
Else
sngSalQty = 0
CurSalPrice = 0
End If
End With
With rsMatSale
If .RecordCount <> 0 Then
If (sngOrdQty + CSng(!qty) - sngSalQty) - CSng(strSaleQty) < 0.00000001 Then
Sale_Price = CurOrdPrice + CCur(!price) - CurSalPrice
Else
Sale_Price = Round((CCur(strSaleUnPr) * CSng(strSaleQty)), 2)
End If
End If
End With
rsMatSale.Close
rsOrdDA.Close
rsSalDA.Close
Set rsMatSale = Nothing
Set rsOrdDA = Nothing
Set rsSalDA = Nothing
End Function
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -