这个窗体的制作

Private Sub cmdOK_Click() '“查询”按钮
Dim strSQL As String, strTemp1 As String, strTemp2 As String, strTemp3 As String
Dim rs As ADODB.Recordset
' txtBarCode.Text = Trimoney(txtBarCode.Text) '去掉条形码的空格
If txtBarCode.Text = "" And ChAll.Value = 0 Then '未输入条形码,又未选中全部复选框
MsgBox "请输入需要查询的商品条形码,或选择查询全部商品。", _
vbInformation + vbOKOnly, "提示"
txtBarCode.SetFocus '设置输入焦点
Exit Sub '退出过程
End If
strTemp1 = " WHERE DATEDIFF(dd,销售日期,GETDATE())"
strTemp2 = " AND DATEDIFF(dd,销售日期,GETDATE())"
Select Case cmbDate.ListIndex
Case 0: strTemp3 = "=0" '今天
Case 1: strTemp3 = "<=7" '本周
Case 2: strTemp3 = "<=30" '本月
Case 3: strTemp3 = "<=365" '本年
Case 4: '全部
strTemp1 = ""
strTemp2 = ""
strTemp3 = ""
End Select
If ChAll.Value = 0 Then '未选中全选
strSQL = "SELECT BarCode FROM Goods WHERE BarCode='" & txtBarCode.Text & "'"
Set rs = QueryExt(strSQL) '查询指定条码
If rs.EOF Then
MsgBox "找不到对应的商品,请检查输入的条形码!", _
vbInformation + vbOKOnly, "提示"
txtBarCode.SetFocus '设置输入焦点
Exit Sub '退出过程
End If
rs.Close
Select Case cmbStyle.ListIndex '查询类型
Case 0 '明细销售记录
strSQL = "SELECT goods.GoodsName AS 商品名称,goods.BarCode AS 条形码," & _
"goods.GoodsPrice AS 商品价格,sale.SalePrice AS 销售价格,sale.SaleNum AS 销售数量," & _
"sale.SaleDate AS 销售日期 FROM dbo.sale INNER JOIN goods ON " & _
"sale.GoodsID =goods.GoodsID WHERE 条形码='" & txtBarCode.Text & " '" & strTemp2 & strTemp3
Case 1 '销售统计
strSQL = "SELECT goods.GoodsName AS 商品名称,goods.BarCode AS 条形码,goods.GoodsPrice AS 商品价格" & _
"AVG(sale.SalePrice) AS 平均销售价格,SUM(sale.SaleNum) AS 总销售数量," & _
"SUM(sale.saleprice*sale.salenum) AS 总销售额 FROM sale INNER JOIN goods ON " & _
"sale.GoodsID =goods.GoodsID WHERE 条形码='" & txtBarCode.Text & " '" & _
strTemp2 & strTemp3 & "GROUP BY 商品名称,条形码,商品价格"
End Select
Set rs = QueryExt(strSQL) '执行SQL语句
Else
strSQL = "SELECT goods.GoodsName AS 商品名称,goods.BarCode AS 条形码," & _
"goods.GoodsPrice AS 商品价格,AVG(sale.SalePrice) AS 平均销售价格,SUM(sale.SaleNum) AS 总销售数量," & _
"SUM(sale.SaleNum*sale.SalePrice) AS 总销售额 FROM dbo.sale INNER JOIN goods ON " & _
"sale.GoodsID =goods.GoodsID " & strTemp1 & strTemp3 & " GROUP BY 商品名称,条形码,商品价格"
Select Case cmbStyle.ListIndex '查询类型
Case 0 '明细销售记录
strSQL = "SELECT goods.GoodsName AS 名称,goods.BarCode AS 条形码," & _
"goods.GoodsPrice AS 商品价格,sale.SalePrice AS 销售价格,sale.SaleNum AS 销售数量, " & _
"sale.SaleDate AS 销售日期 FROM dbo.sale INNER JOIN goods " & _
"ON sale.GoodsID =goods.GoodsID " & strTemp1 & strTemp3 & IIf(chGroup.Value = 0, "", " ORDER BY 商品名称")
Set rs = QueryExt(strSQL) '执行SQL语句
Case 1 '销售统计
Set rs = QueryExt(strSQL) '执行SQL语句

Case 2 '排行榜-总销售量
Set rs = QueryExt(strSQL & " ORDER BY 总销售量 DESC") '执行SQL语句
Case 3 '排行榜-总销售额
Set rs = QueryExt(strSQL & " ORDER BY 总销售额 DESC") '执行SQL语句
End Select
End If
Set Grid1.DataSource = rs '设置表格的数据源
Grid1.MergeCells = chGroup.Value '设置是否合并单元格
ShowSearch True '控制控件显示
Grid1.Refresh '刷新数据
frmMain.StatusBar1.Panels(1) = "当前查询共 " & rs.RecordCount & " 条销售记录。"
Exit Sub
err1:
MsgBox Err.Description, vbCritical + vbOKOnly, "警告"
End Sub

mshflexgrid

猜你喜欢

转载自www.cnblogs.com/zsp2/p/10042133.html