注册 登录
编程论坛 VB6论坛

销售的记录添加到数据库中!这些问题

t469116416 发布于 2014-02-11 19:03, 888 次点击
只有本站会员才能查看附件,请 登录

我想商品日常销售的操作界面,和普通超市的一样,就是输入条形码,然后查询,添加。我现在的问题是可以查询,但是添加不能,还有就是datagrid控件上显示的一直是全部的销售记录,怎么才能使之显示的是当前插入的销售记录。2楼是代码谢谢大神们!
13 回复
#2
t4691164162014-02-11 19:03
程序代码:

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim qw As ADODB.Recordset
Dim cmm As Private Sub Command1_Click() '查询按钮
Static a, b, c As Single
Dim cn As New ADODB.Connection
Dim rss As New ADODB.Recordset
Dim rsss As New ADODB.Recordset
rsss.CursorLocation = adUseClient
ConnectionString = "Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=sa;Initial Catalog=csjxcglxt;Data Source=TANGJIANQIAO-PC"
cn.Open ConnectionString
If Text1.Text = "" Then
MsgBox "输入信息不完全,请重新输入", , "提示"
Exit Sub
Else
rss.Open "select * from 商品信息表 where  条形码 = " & Text1.Text & "", cn, adOpenKeyset, adLockOptimistic
If rss.EOF Then
  MsgBox "没有这个商品!"
  rss.Close
  Exit Sub
Else
qw.AddNew
qw.Fields("销售单编号") = c + 1
qw.Fields("销售日期") = Date
qw.Fields("商品名称") = rss!商品名称
qw.Fields("商品单价") = rss!销售价格
qw.Fields("计量单位") = rss!计量单位
qw.Fields("商品数量") = 1
qw.Fields("总价") = Val(qw!商品单价) * Val(qw!商品数量)
a = Val(qw!总价)
b = a + b
qw.Update
End If
End If
Text1.Text = ""
Text1.SetFocus
Label3.Caption = b'显示在label3的是的总金额。
rsss.Open "select * from 商品库存表 where  商品名称 =  '" & qw!商品名称 & "' ", cn, adOpenKeyset, adLockOptimistic
If rsss.RecordCount = 0 Then
MsgBox "没有这个商品库存!"
Else
rsss!商品库存量 = rsss!商品库存量 - 1
rsss.Update
End If
End Sub
Private Sub Command2_Click()'结账按钮
If Val(Text2.Text) < Val(Label3.Caption) Then
MsgBox "输入金额有误!请核实!"
Exit Sub
End If
jzck.Show
End Sub
Private Sub Form_Load()
Set cnn = New ADODB.Connection
cnn.CursorLocation = adUseClient
cnn.Open "Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;User ID=sa;Initial Catalog=csjxcglxt;Data Source=TANGJIANQIAO-PC"
Set qw = New ADODB.Recordset 'datagrid显示,并隐藏部分列
Set qw.ActiveConnection = cnn
qw.Open "select * from 商品销售表", cnn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = qw
DataGrid1.Columns("销售单编号").Visible = False
DataGrid1.Columns("销售日期").Visible = False
DataGrid1.Columns("商品编号").Visible = False
DataGrid1.Columns("商品数量").Width = 1400
DataGrid1.Columns("商品单价").Width = 1300
Label3.Caption = "0"
End Sub


[ 本帖最后由 t469116416 于 2014-2-11 19:06 编辑 ]
#3
w3609894262014-02-11 19:51
你只要显示刚刚加入的列还是加入的和你刚查询的一起显示??
#4
w3609894262014-02-11 19:53
总感觉你这个代码有点乱。。。先把你的要求说清楚把。。你那些问题不难,但是没有明白你的意思。
#5
t4691164162014-02-11 21:49
回复 4楼 w360989426
我的问题是我要卖东西,扫描条形码后,查询数据库的表,找到商品,然后显示在这个界面的datagrid上,然后把这个商品的信息添加到商品销售表上,但是我现在添加不成功。第二就是我想要现在的datagrid控件只显示当前输入的信息,等结账之后,datagrid控件上显示为空,
#6
w3609894262014-02-11 23:23
回复 5楼 t469116416
你的问题我了解了,给你一个思路吧。。1.建立一张临时数据表(扫过的自动插入这个数据表),datagrid设置为连接这个表,2当结账结束,所有数据清空,减去库存。只要你数据库知识好,很好解决。
#7
Artless2014-02-12 08:36
qw作为当前销售,不应该在form_load,而且必须有条件保证为当前。
Command2_Click应该关闭qw或更新条件使其再次成为当前(未有记录)
#8
t4691164162014-02-12 11:12
回复 6楼 w360989426
谢谢,我去试试,但是我真的是初学者不知道能不能实现我去试试看。
#9
w3609894262014-02-12 12:36
回复 8楼 t469116416
给你一个例子,这里面这个例子能教会你怎么使用临时表,https://bbs.bccn.net/thread-427029-1-1.html
#10
w3609894262014-02-12 12:37
回复 8楼 t469116416
不懂的在问把。。呵呵
#11
t4691164162014-02-12 15:48
回复 10楼 w360989426
表的数据删除我会了,但是我现在不知道怎么把这个临时表的内容输入到商品销售表中,一条一条的记录添加没有问题但是批量的添加怎么设置啊。
#12
w3609894262014-02-12 19:03
回复 11楼 t469116416

sql1=insert into 表1 values(列1,列2,列3)select 列4,列5,列6 from 表2
注释:将表2中的列4,列5,列6 插入 表1的列1,列2,列3
列4对应列1,列5对应列2,列6对应列3
#13
t4691164162014-02-13 12:21
回复 12楼 w360989426
这个句子不对啊 ,每次都提示编译错误,没有语句结束
#14
w3609894262014-02-13 12:40
回复 13楼 t469116416
只有本站会员才能查看附件,请 登录
看图片
1