📄 modmain.bas
字号:
Attribute VB_Name = "ModMain"
Option Explicit
Public strCurUser As String
Public dteSysDate As Date
Public intNumWindows As Integer
Public strConnect As String
Sub main()
frmLogin.Show vbModal
If Not frmLogin.LoginSucceeded Then
End
End If
Unload frmLogin
frmlogo.Show
Load frmMain
Unload frmlogo
frmMain.Show
FrmSysDate.Show vbModal
End Sub
Public Sub SetFormStu(mFrmChi As Form, mFrmFat As Form)
mFrmChi.Top = (mFrmFat.Height - mFrmChi.Height) / 2 - 300
mFrmChi.Left = (mFrmFat.Width - mFrmChi.Width) / 2
End Sub
Public Function OpenWindow(intTmp As Integer)
OpenWindow = intTmp + 1
End Function
Public Function Closewindow(intTmp As Integer)
Closewindow = intTmp - 1
End Function
Public Function Product_Status(strProNum As String) As String
Dim rsProSta As ADODB.Recordset
Dim rsOrdDA As ADODB.Recordset
Dim rsSalDA As ADODB.Recordset
Dim strSQL As String
Dim sngOrdQty, sngSalQty As Single
Dim CurOrdPrice, CurSalPrice As Currency
Set rsProSta = New ADODB.Recordset
Set rsOrdDA = New ADODB.Recordset
Set rsSalDA = New ADODB.Recordset
strSQL = "select a.product_name,a.product_model,b.qty,b.price from " & _
"product a,mat_head b where a.p_id=b.p_id and a.p_id='" & strProNum & "'"
rsProSta.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='" & strProNum & "' 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='" & strProNum & "' 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
If rsProSta.RecordCount = 0 Then
Product_Status = ""
Else
With rsProSta
.MoveFirst
strSQL = !product_name & " " & !product_model & " 数量:" & _
sngOrdQty + !qty - sngSalQty & " 金额:" & CurOrdPrice + !price - CurSalPrice
End With
Product_Status = strSQL
End If
rsProSta.Close
Set rsProSta = Nothing
End Function
'Public Function Sale_Status(strSalNum As String, strUnPr As String) As String
' Dim rsSalSta As ADODB.Recordset
' Dim strSQL As String
' Set rsSalSta = New ADODB.Recordset
' strSQL = "select a.product_name,a.product_model,b.qty from " & _
' "product a,mat_detail b where a.p_id=b.p_id and a.p_id='" & strSalNum _
' & "' and b.unit_price=ccur('" & strUnPr & "')"
' rsSalSta.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
' If rsSalSta.RecordCount = 0 Then
' Sale_Status = ""
' Else
' With rsSalSta
' .MoveFirst
' strSQL = !product_name & " " & !product_model & " 单价:" & _
' strUnPr & " 数量:" & !qty
' End With
' Sale_Status = strSQL
' End If
' rsSalSta.Close
' Set rsSalSta = Nothing
'End Function
Public Function SaleTooLarge(strSaleID As String, strSalPro As String, strSalQty As String) As Boolean
Dim rsMatQty As ADODB.Recordset
Dim rsOrdDA As ADODB.Recordset
Dim rsSalDA As ADODB.Recordset
Dim strSQL As String
Dim sngMatQty, sngOrdQty, sngSalQty As Single
Set rsMatQty = New ADODB.Recordset
Set rsOrdDA = New ADODB.Recordset
Set rsSalDA = New ADODB.Recordset
strSQL = "select qty from mat_head where p_id='" & strSalPro & "'"
rsMatQty.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
strSQL = "select p_id,sum(qty) as oqty from " & _
"order_detail_a where p_id='" & strSalPro & "' group by p_id"
rsOrdDA.Open strSQL, DEjxc.Conjxc, adOpenStatic, adLockReadOnly
strSQL = "select p_id,sum(qty) as sqty 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
If .RecordCount <> 0 Then
sngOrdQty = !oqty
Else
sngOrdQty = 0
End If
End With
With rsSalDA
If .RecordCount <> 0 Then
sngSalQty = !sqty
Else
sngSalQty = 0
End If
End With
If rsMatQty.RecordCount = 0 Then
sngMatQty = 0
Else
With rsMatQty
.MoveFirst
sngMatQty = CSng(!qty)
End With
End If
If (sngOrdQty + sngMatQty - sngSalQty) - CCur(strSalQty) < 0 Then
SaleTooLarge = False
Else
SaleTooLarge = True
End If
rsMatQty.Close
Set rsMatQty = Nothing
End Function
Public Function SaleUnPr(strSaleID As String, strSalPro As String) As Currency
Dim rsMat As ADODB.Recordset
Dim rsOrdDA As ADODB.Recordset
Dim rsSalDA As ADODB.Recordset
Dim strSQL As String
Dim sngOrdQty, sngSalQty As Single
Dim CurOrdPrice, CurSalPrice As Currency
Set rsMat = New ADODB.Recordset
Set rsOrdDA = New ADODB.Recordset
Set rsSalDA = New ADODB.Recordset
strSQL = "select qty,price from mat_head where p_id='" & strSalPro & "'"
rsMat.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='" & strSalPro & "' 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='" & strSalPro & "' 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 rsMat
If rsMat.RecordCount = 0 Then
SaleUnPr = 0
Else
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
Dim rsMatSale As ADODB.Recordset
Dim rsOrdDA As ADODB.Recordset
Dim rsSalDA As ADODB.Recordset
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 + -