Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

这段代码什么意思,请老师 帮我看下

ylz  发表于:2012-08-20 11:54:21  
复制

请问竹笛 老师:以下这 段代码什么意思,我是新手才开始学,看不懂麻烦你帮我翻译下, 我只想看懂这段代码就够了。 谢谢

Private Sub csave_Click()
On Error GoTo err_csave_click
Dim i As Integer
Dim stemp As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
'为打开数据表“查询语句”字符变量赋值
stemp = "select * from goods"

rs.Open stemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    '判断“类别”等文本框是否为空
    If IsNull(Me![gsort]) = True Then
       MsgBox "请选择“类别”,它不可以为空!", vbOKOnly, "选择“类别”"
       Me![gsort].SetFocus
       Exit Sub
    ElseIf IsNull(Me![gname]) = True Then
       MsgBox "请选择“名称”,它不可以为空!", vbOKOnly, "选择“名称”"
       Me![gname].SetFocus
       Exit Sub
    ElseIf IsNull(Me![gno]) = True Then
       MsgBox "请输入“数量”,它不可以为空!", vbOKOnly, "输入“数量”"
       Me![gno].SetFocus
       Exit Sub
    ElseIf IsNull(Me![gsum]) = True Then
       MsgBox "请输入“入库价格”,它不可以为空!", vbOKOnly, "输入“入库价格”"
       Me![gsum].SetFocus
       Exit Sub
    ElseIf IsNull(Me![sname]) = True Then
       MsgBox "请选择“存放仓库”,它不可以为空!", vbOKOnly, "选择“存放仓库”"
       Me![sname].SetFocus
       Exit Sub
    Else
    
    Dim vargid As Integer
    If rs.RecordCount > 0 Then
    rs.MoveFirst
    For i = 1 To rs.RecordCount
       If Me![gname] = rs("gname") Then
       vargid = rs("gid")
       Exit For
       Else
          rs.MoveNext
       End If
    Next i
    End If
   
    rs.close
    stemp = "select * from store"
    rs.Open stemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   
    Dim varsid As Integer
    If rs.RecordCount > 0 Then
    rs.MoveFirst
    For i = 1 To rs.RecordCount
       If Me![sname] = rs("sname") Then
       varsid = rs("sid")
       Exit For
       Else
          rs.MoveNext
       End If
    Next i
    End If
   
       
    '保存资料至库存表
    rs.close
    stemp = "select * from stock"
    rs.Open stemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
   
    Dim stemp1 As String
    Dim vargsum As Integer
    vargsum = Me![gsum]
    If rs.RecordCount < 1 Then
       stemp1 = "insert into stock"
       stemp1 = stemp1 & "(gid,gno,gsum,sid)"
       stemp1 = stemp1 & "values ('" & vargid & "','" & Me![gno] & "','" & Me![gsum] & "','" & varsid & "')"
       '使用docmd对象的runsql方法执行插入
       DoCmd.RunSQL stemp1
       MsgBox "打印入库单!", vbOKOnly, "确定"
       DoCmd.OpenReport "入库单", acViewPreview, , , acWindowNormal
    Else
    stemp1 = "aa"
    rs.MoveFirst
    For i = 1 To rs.RecordCount
       If vargid = rs("gid") Then
          If vargsum = rs("gsum") Then
             If varsid = rs("sid") Then
                rs("gno") = rs("gno") + Me![gno]
                rs.Update
                stemp1 = "bb"
                Exit For
             Else
                rs.MoveNext
             End If
          Else
             rs.MoveNext
          End If
       Else
          rs.MoveNext
       End If
    Next i
   
   
   
   
    If stemp1 = "aa" Then
       stemp1 = "insert into stock"
       stemp1 = stemp1 & "(gid,gno,gsum,sid)"
       stemp1 = stemp1 & "values ('" & vargid & "','" & Me![gno] & "','" & Me![gsum] & "','" & varsid & "')"
       '使用docmd对象的runsql方法执行插入
       DoCmd.RunSQL stemp1
    End If
   

 

Top
学习者 发表于:2012-08-20 14:53:12
我晕,这段代码已经有部分解释了,再者,这是一系列判断条件,如果符合则怎么,条件嘛,自己设定的,这段代码不难的。

总记录:1篇  页次:1/1 9 1 :