翻译成中文解释..本人是小菜鸟..希望有大虾出手相帮
以下代码是 月结算的代码:
Dim rs1 As New ADODB.Recordset     '定义数据集对象
Dim rs2 As New ADODB.Recordset
Dim rs3 As New ADODB.Recordset
Dim rs4 As New ADODB.Recordset
Dim rs5 As New ADODB.Recordset
Dim txtSQL, myval, txttime As String    '定义字符串变量
Private Sub Form_Load()
 txtSQL = "select * from 月消费信息表 order by 消费单据号"
 Set rs1 = ESQL(txtSQL)     '执行SQL语句
 '当记录大于零时,Comyj按钮有效,否则Comyj按钮无效
 If rs1.RecordCount > 0 Then Comyj.Enabled = True Else Comyj.Enabled = False
 Me.Caption = Me.Caption & " 操作员: " & frm_main.St1.Panels(3).Text
     Adodc2.RecordSource = "select sum(消费实收) from 月消费单据表"
     Adodc2.Refresh
     On Error Resume Next
     Text1.Text = Adodc2.Recordset.Fields(0).Value
End Sub
Private Sub Comyj_Click()     '确定月结算
  Adodc1.RecordSource = "select * from 月消费单据表"
  Adodc1.Refresh
  If Adodc1.Recordset.RecordCount > 0 Then
     Comyj.Enabled = True
  Else
     Comyj.Enabled = False
  End If
  myval = MsgBox("确认结算当月数据吗?", vbYesNo)
  If myval = vbYes Then
     Adodc2.RecordSource = "select sum(消费实收) from 月消费单据表"
     Adodc2.Refresh
     If Adodc2.Recordset.RecordCount > 0 Then
        txtSQL = "select * from 月营业分析表"
        Set rs5 = ESQL(txtSQL)
        rs5.AddNew
        On Error Resume Next
        Adodc1.Recordset.AddNew
        rs5.Fields(0) = Format(Date, "yyyy - mm")
        rs5.Fields(1).Value = Adodc2.Recordset.Fields(0).Value
        rs5.Update
        Adodc1.Refresh
     End If
  
  
  
     '插入记录到历史消费信息表中
     txtSQL = "insert 历史消费信息表(箱号,所在大厅,项目编号,名称,单位,单价,数量,简称,消费状态,隐藏状态,登记时间,折扣,金额小计,消费单据号) select 箱号,所在大厅,项目编号,名称,单位,单价,数量,简称,消费状态,隐藏状态,登记时间,折扣,金额小计,消费单据号 from 月消费信息表 order by 消费单据号"
     Set rs1 = ESQL(txtSQL)
'     ESQL.Close
     '插入记录到历史消费单据表中
     txtSQL = "insert  历史消费单据表(消费单据号,主客箱号,主客姓名,主客性别,登记时间,结帐日期,结帐方式,主客消费金额,总计消费,打折,消费应收,实交金额,找零,消费实收,减免金额,减免原因,单据描述,人数) select 消费单据号,主客箱号,主客姓名,主客性别,登记时间,结帐日期,结帐方式,主客消费金额,总计消费,打折,消费应收,实交金额,找零,消费实收,减免金额,减免原因,单据描述,人数 from 月消费单据表 order by 消费单据号"
     Set rs2 = ESQL(txtSQL)
     '删除月消费信息表中的数据
     txtSQL = "delete 月消费信息表 select * from 月消费信息表"
     Set rs3 = ESQL(txtSQL)
     '删除月消费单据表中的数据
     txtSQL = "delete 月消费单据表 select * from 月消费单据表"
     Set rs4 = ESQL(txtSQL)
     Comyj.Enabled = False     '设置Comyj按钮无效
     MsgBox "月结算完毕!"
     frm_main.Enabled = True     '设置frm_main窗体有效
     Unload Me
  End If
End Sub
Private Sub comend_Click()
 frm_main.Enabled = True     '设置frm_main窗体有效
 Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
 frm_main.Enabled = True     '设置frm_main窗体有效
End Sub

解决方案 »

  1.   

    这一定是从书上抄来的,而且还是杂种书,光看前几行就知道。
    Dim rs1 As New ADODB.Recordset     '定义数据集对象
    Dim rs2 As New ADODB.Recordset
    Dim rs3 As New ADODB.Recordset
    Dim rs4 As New ADODB.Recordset
    Dim rs5 As New ADODB.Recordset
    Dim txtSQL, myval, txttime As String    '定义字符串变量用的着声明5个recordset对象吗,他家内存不要钱啊,
    Dim txtSQL, myval, txttime As String    '定义字符串变量
    他还好意思特意写上注释,可txtSQL和myval明明偏偏就没被定义成字符串变量,反而是variant变量。楼主不看他的书,还是中规中矩地从MSDN看起吧,虽然基础了点,慢了点,但这些24小时教会你赚钱的书,明明就是在骗你的钱
      

  2.   

    On Error Resume Next
    很不负责任的表现
      

  3.   

    用的着声明5个recordset对象吗,他家内存不要钱啊
      

  4.   

    看看数据库原理, SQL方面的书吧
    看下VB中数据库那章Ado的用法就明白了
      

  5.   

    楼上都说得对,那段代码的确是太差了,差点晕倒呀。如果需要整套代码,到www.mndsoft.com上面去找吧,上面有代码,你修改一个就可以用了