如何在ACCESS中实现输入多个商品名称,自动出来总价
3个回答
展开全部
这个需求,通过手工输入商品名称因为比较随意,无法保证每次都能得到预想的结果。建议改为从列表中选商品比较稳妥。下面示范供参考
1)创建商品定价表并录入数据
2)新建一个窗体
添加两个列表框
List1 显示待选商品
属性设置:列数=2;列标题=是;行来源类型=表/查询;行来源=商品定价
List2 显示已选商品、数量,金额列表
属性设置:列数=4;列宽=3cm;1cm;1cm;2cm;列标题=是;
行来源类型=值列表;行来源=商品名;单价;数量;金额; 绑定列=0;
添加3个命令按钮
Command1 清除选定商品列表中的所有项目
Command2 将选定的商品和数量送到选定商品列表框并进行金额汇总
Command1 清除选定商品列表中的一个项目
添加已给标签 Label8 用于显示总价
添加一个文本框 Text1 用于输入商品数量数量
属性设置:格式=常规数字 (防止输入非数字数量);默认值=1
窗体设计视图如下
为该窗体添加下列代码
Option Compare Database
Private Sub Command1_Click() '清空选定列表
Dim i As Long
i = List2.ListCount - 1
Do Until i = 0
List2.RemoveItem (i)
i = i - 1
Loop
Label8.Caption = "金额合计:"
End Sub
Private Sub Command2_Click() '将选定的商品和数量送到选定商品列表框并进行金额汇总
Dim str As String
If IsNull(Text1) Then
MsgBox "请指定商品数量"
Text1.SetFocus
Exit Sub
End If
With List1
If .ListCount < 1 Then Exit Sub
If .ListIndex < 0 Then
MsgBox "请选定一个待选商品(左边)"
.SetFocus
Exit Sub
End If
str = .Column(0) & ";" & .Column(1) & ";" & Text1 & ";" & .Column(1) * Text1
End With
With List2
.AddItem str
.SetFocus
End With
showSum
End Sub
Private Sub Command3_Click() '清除选定商品列表中的一个项目
Dim i As Long
i = List2.ListIndex
If List2.ListCount = 1 Then Exit Sub
If List2.ListIndex < 0 Then Exit Sub
List2.RemoveItem (i + 1)
List2.SetFocus
showSum
End Sub
Private Sub showSum() '编写自定义过程自动显示总价
Dim i As Long, Hz As Double
With List2
For i = 1 To .ListCount - 1
Hz = Hz + Val(.Column(3, i))
Next i
End With
Label8.Caption = "金额合计:" & Hz
End Sub
到此大功告成,运行效果如下
更多追问追答
追问
你的回答很详细,万分感谢!能不能用窗体、查询、和宏命令来实现呢! 代码我不会呀 看不懂代码 加我扣好吗 344530178
追答
加Q就免了,示例数据库可以发给你,我的回答本身就是窗体解决方案。宏命令太死板实现这个功能非常麻烦。查询可以用代码动态拼写SQL,实现起来比我的示范方案还要复杂。
2015-01-19 · 知道合伙人软件行家
officecn交流
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:494
获赞数:980
中山大学毕业,从事IT行业16年.主要从事ERP CRM HRM等软件的开发,熟悉access sql server office vb vba c#
向TA提问 私信TA
关注
展开全部
1.数据筛选
2.dsum求和
2.dsum求和
追问
具体 一点好吗 数据库 我是完全菜鸟,能帮到我 愿意出1000分! 我的QQ:344530178
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的可以实现啊
更多追问追答
追问
我知道可以实现,我要知道如何实现?能教会我,我愿意出1000分
追答
可以教你啊 看名字 不要分儿
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询