frm_CKD.frm
上传用户:yexiandon
上传日期:2022-07-12
资源大小:895k
文件大小:19k
源码类别:

百货/超市行业

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "Msflxgrd.ocx"
  3. Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
  4. Begin VB.Form frm_CKD 
  5.    BorderStyle     =   3  'Fixed Dialog
  6.    Caption         =   "出库单"
  7.    ClientHeight    =   6120
  8.    ClientLeft      =   45
  9.    ClientTop       =   330
  10.    ClientWidth     =   9405
  11.    Icon            =   "frm_CKD.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   6120
  16.    ScaleWidth      =   9405
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   1  '所有者中心
  19.    Begin VB.ComboBox cboClerk 
  20.       Height          =   300
  21.       ItemData        =   "frm_CKD.frx":000C
  22.       Left            =   4560
  23.       List            =   "frm_CKD.frx":000E
  24.       Style           =   2  'Dropdown List
  25.       TabIndex        =   18
  26.       Top             =   120
  27.       Width           =   1335
  28.    End
  29.    Begin VB.TextBox txtExp 
  30.       Height          =   300
  31.       Left            =   600
  32.       TabIndex        =   11
  33.       Top             =   495
  34.       Width           =   5295
  35.    End
  36.    Begin VB.TextBox txtAdmin 
  37.       BackColor       =   &H8000000F&
  38.       BorderStyle     =   0  'None
  39.       Enabled         =   0   'False
  40.       Height          =   225
  41.       Left            =   960
  42.       Locked          =   -1  'True
  43.       TabIndex        =   9
  44.       Top             =   5715
  45.       Width           =   1215
  46.    End
  47.    Begin VB.TextBox txtM 
  48.       BackColor       =   &H8000000F&
  49.       BorderStyle     =   0  'None
  50.       Enabled         =   0   'False
  51.       Height          =   225
  52.       Left            =   5520
  53.       Locked          =   -1  'True
  54.       TabIndex        =   8
  55.       Text            =   "0"
  56.       Top             =   5715
  57.       Width           =   1215
  58.    End
  59.    Begin VB.TextBox txtNum 
  60.       BackColor       =   &H8000000F&
  61.       BorderStyle     =   0  'None
  62.       Enabled         =   0   'False
  63.       Height          =   225
  64.       Left            =   3240
  65.       Locked          =   -1  'True
  66.       TabIndex        =   6
  67.       Text            =   "0"
  68.       Top             =   5715
  69.       Width           =   1215
  70.    End
  71.    Begin VB.CommandButton cmdExit 
  72.       Cancel          =   -1  'True
  73.       Caption         =   "退出(&X)"
  74.       Height          =   300
  75.       Left            =   7920
  76.       TabIndex        =   2
  77.       Top             =   5670
  78.       Width           =   975
  79.    End
  80.    Begin VB.TextBox idnumber 
  81.       Appearance      =   0  'Flat
  82.       BackColor       =   &H8000000F&
  83.       Height          =   240
  84.       Left            =   7680
  85.       Locked          =   -1  'True
  86.       TabIndex        =   3
  87.       TabStop         =   0   'False
  88.       Top             =   90
  89.       Width           =   1575
  90.    End
  91.    Begin VB.TextBox txtDATA 
  92.       BorderStyle     =   0  'None
  93.       Height          =   270
  94.       Left            =   8640
  95.       TabIndex        =   1
  96.       Top             =   1125
  97.       Visible         =   0   'False
  98.       Width           =   495
  99.    End
  100.    Begin MSFlexGridLib.MSFlexGrid GD1 
  101.       Height          =   4530
  102.       Left            =   120
  103.       TabIndex        =   0
  104.       Top             =   945
  105.       Width           =   9195
  106.       _ExtentX        =   16219
  107.       _ExtentY        =   7990
  108.       _Version        =   393216
  109.       Rows            =   16
  110.       Cols            =   9
  111.       RowHeightMin    =   275
  112.       AllowBigSelection=   0   'False
  113.       HighLight       =   0
  114.       AllowUserResizing=   1
  115.       FormatString    =   "序|食品名称|食品类别|食品属性|单位|数量|单价|金额|备注"
  116.    End
  117.    Begin MSComCtl2.DTPicker DTPicker2 
  118.       Height          =   300
  119.       Left            =   600
  120.       TabIndex        =   13
  121.       Top             =   135
  122.       Width           =   1335
  123.       _ExtentX        =   2355
  124.       _ExtentY        =   529
  125.       _Version        =   393216
  126.       CustomFormat    =   "yyyy-MM-dd"
  127.       Format          =   24903683
  128.       CurrentDate     =   38718
  129.    End
  130.    Begin MSComCtl2.DTPicker DTPicker1 
  131.       Height          =   300
  132.       Left            =   2520
  133.       TabIndex        =   17
  134.       Top             =   120
  135.       Width           =   1335
  136.       _ExtentX        =   2355
  137.       _ExtentY        =   529
  138.       _Version        =   393216
  139.       CustomFormat    =   "HH:mm:ss"
  140.       Format          =   24903682
  141.       CurrentDate     =   38718
  142.    End
  143.    Begin VB.Label lblxcd 
  144.       Caption         =   "日期"
  145.       Height          =   195
  146.       Index           =   0
  147.       Left            =   120
  148.       TabIndex        =   16
  149.       Top             =   195
  150.       Width           =   375
  151.    End
  152.    Begin VB.Label lblxcd 
  153.       Caption         =   "经手人"
  154.       Height          =   195
  155.       Index           =   2
  156.       Left            =   3960
  157.       TabIndex        =   15
  158.       Top             =   195
  159.       Width           =   615
  160.    End
  161.    Begin VB.Label lblxcd 
  162.       Caption         =   "时间"
  163.       Height          =   195
  164.       Index           =   5
  165.       Left            =   2040
  166.       TabIndex        =   14
  167.       Top             =   195
  168.       Visible         =   0   'False
  169.       Width           =   375
  170.    End
  171.    Begin VB.Label lblxcd 
  172.       Caption         =   "摘要"
  173.       Height          =   195
  174.       Index           =   4
  175.       Left            =   120
  176.       TabIndex        =   12
  177.       Top             =   555
  178.       Width           =   375
  179.    End
  180.    Begin VB.Label Label3 
  181.       Caption         =   "制单人"
  182.       Height          =   195
  183.       Left            =   360
  184.       TabIndex        =   10
  185.       Top             =   5715
  186.       Width           =   615
  187.    End
  188.    Begin VB.Label Label2 
  189.       Caption         =   "金额合计"
  190.       Height          =   195
  191.       Left            =   4680
  192.       TabIndex        =   7
  193.       Top             =   5715
  194.       Width           =   735
  195.    End
  196.    Begin VB.Label Label1 
  197.       Caption         =   "数量合计"
  198.       Height          =   195
  199.       Left            =   2400
  200.       TabIndex        =   5
  201.       Top             =   5715
  202.       Width           =   735
  203.    End
  204.    Begin VB.Label Label5 
  205.       Caption         =   "单号"
  206.       Height          =   165
  207.       Left            =   7320
  208.       TabIndex        =   4
  209.       Top             =   135
  210.       Width           =   375
  211.    End
  212. End
  213. Attribute VB_Name = "frm_CKD"
  214. Attribute VB_GlobalNameSpace = False
  215. Attribute VB_Creatable = False
  216. Attribute VB_PredeclaredId = True
  217. Attribute VB_Exposed = False
  218. Option Explicit
  219. Const Bpname = 1
  220. Const Bguige = 2
  221. Const Bppcd = 3
  222. Const Bdw = 4
  223. Const Bnum = 5
  224. Const Bprice = 6
  225. Const Bje = 7
  226. Const Bbak = 8
  227. Public Dmodi As Boolean
  228. Private Sub cmdExit_Click()
  229.     Unload Me
  230. End Sub
  231. Private Sub Form_Load()
  232.     With GD1
  233.         .ColWidth(0) = 300
  234.         .ColWidth(Bpname) = 1400
  235.         .ColWidth(Bguige) = 1400
  236.         .ColWidth(Bppcd) = 1400
  237.         .ColWidth(Bdw) = 600
  238.         .ColWidth(Bnum) = 600
  239.         .ColWidth(Bprice) = 600
  240.         .ColWidth(Bje) = 800
  241.         .ColWidth(Bbak) = 1200
  242.     Dim i As Integer
  243.         .TextMatrix(0, 0) = "序"
  244.     For i = 1 To .Rows - 1
  245.         .TextMatrix(i, 0) = i
  246.         .Row = i
  247.         .Col = Bje
  248.         .CellBackColor = &HFFF800
  249.         .Col = Bguige
  250.         .CellBackColor = &HFFF800
  251.         .Col = Bppcd
  252.         .CellBackColor = &HFFF800
  253.         .Col = Bdw
  254.         .CellBackColor = &HFFF800
  255.     Next i
  256.         .Row = 1
  257.         .Col = 1
  258.     End With
  259.     If Dmodi Then
  260.     Else
  261.         idnumber = IDnum("CKD", "XCDZ")
  262.     End If
  263. End Sub
  264. Private Sub Form_Unload(Cancel As Integer)
  265. Dim str As String
  266. str = MsgBox(vbCr & "请选择(是/否)保存此单据?按<ESC>放弃本次操作。" & vbCr, vbYesNoCancel, "保存提示:")
  267. Select Case str
  268.     Case "6"
  269.         If Chk Then
  270.             If Dmodi Then ModiData Else SaveData
  271.             Dmodi = False
  272.         Else
  273.             Cancel = 1
  274.             GD1.SetFocus
  275.         End If
  276.     Case "7"
  277.         Dmodi = False
  278.     Case "2"
  279.         Cancel = 1
  280. End Select
  281. End Sub
  282. Private Sub GD1_Click()
  283. Select Case GD1.Col
  284. Case Bje, Bguige, Bppcd, Bdw
  285. Case Else
  286.     txtDATA = GD1
  287.     Modi
  288. End Select
  289. End Sub
  290. Private Sub GD1_KeyPress(KeyAscii As Integer)
  291. Select Case GD1.Col
  292. Case Bje, Bguige, Bppcd, Bdw
  293. Case Else
  294.     Select Case KeyAscii
  295.         Case 0 To 32
  296.             KeyAscii = 0
  297.             txtDATA = GD1
  298.             txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  299.             txtDATA.Visible = True
  300.             txtDATA.SetFocus
  301.             txtDATA.SelStart = Len(txtDATA.Text)
  302.         Case Else
  303.             txtDATA = Chr(KeyAscii)
  304.             txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  305.             txtDATA.Visible = True
  306.             txtDATA.SetFocus
  307.             txtDATA.SelStart = Len(txtDATA.Text)
  308.     End Select
  309. End Select
  310. End Sub
  311. Private Sub GD1_LeaveCell()
  312. If txtDATA.Visible Then
  313. Select Case GD1.Col
  314.     Case Bnum, Bprice
  315.         If TOnum(txtDATA) <> 0 Then GD1 = TOnum(txtDATA) Else GD1 = ""
  316.         txtDATA = ""
  317.     Case Bbak
  318.         GD1 = txtDATA
  319.         txtDATA.Text = ""
  320.     Case Else
  321.         If txtDATA = "" Then GD1 = txtDATA: txtDATA = ""
  322.     End Select
  323.     txtDATA.Visible = False
  324. End If
  325. End Sub
  326. Private Sub GD1_RowColChange()
  327.     Dim cs, cc As Double
  328.     Dim i As Integer
  329.     cs = 0
  330.     cc = 0
  331.     For i = 1 To GD1.Rows - 1
  332.         If TOnum(GD1.TextMatrix(i, Bnum)) <> 0 Or TOnum(GD1.TextMatrix(i, Bprice)) <> 0 Then
  333.             GD1.TextMatrix(i, Bje) = TOnum(GD1.TextMatrix(i, Bprice)) * TOnum(GD1.TextMatrix(i, Bnum))
  334.         End If
  335.         cs = cs + TOnum(GD1.TextMatrix(i, Bnum))
  336.         cc = cc + TOnum(GD1.TextMatrix(i, Bje))
  337.     Next i
  338.     txtNum = cs
  339.     txtM = cc
  340. End Sub
  341. Private Sub txtDATA_DblClick()
  342. Set obj = Me
  343.     Select Case GD1.Col
  344.     Case Bpname
  345.         Tbl = "goods"
  346.     Case Else
  347.     Exit Sub
  348.     End Select
  349. frmFindSPC.Show vbModal
  350. End Sub
  351. Private Sub txtdata_GotFocus()
  352. txtDATA.Visible = True
  353. End Sub
  354. Private Sub txtDATA_KeyDown(KeyCode As Integer, Shift As Integer)
  355. Select Case KeyCode
  356.     Case 38 'UP
  357.         If GD1.Row > 1 Then
  358.             GD1.Row = GD1.Row - 1
  359.             MovIn
  360.         End If
  361.     Case 40 'DOWN
  362.         If GD1.Row < GD1.Rows - 1 Then
  363.             GD1.Row = GD1.Row + 1
  364.             MovIn
  365.         End If
  366.     Case 37 'LEFT
  367.         If GD1.Col > 1 Then
  368.             If txtDATA.SelStart = 0 Then
  369.                 GD1.Col = GD1.Col - 1
  370.                 MovIn
  371.             End If
  372.         End If
  373.     Case 39 'RIGHT
  374.         If txtDATA.SelStart = Len(txtDATA.Text) Then
  375.             If GD1.Col < GD1.Cols - 1 Then
  376.                 GD1.Col = GD1.Col + 1
  377.                 MovIn
  378.             Else
  379.                 If GD1.Col = GD1.Cols - 1 And GD1.Row < GD1.Rows - 1 Then
  380.                     GD1.Row = GD1.Row + 1
  381.                     GD1.Col = 1
  382.                     MovIn
  383.                 End If
  384.             End If
  385.         End If
  386.     Case 13 'ENTER
  387.         txtDATA_DblClick
  388. End Select
  389. End Sub
  390. Private Sub txt_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
  391.     If KeyCode = vbKeyDelete Then txt(Index) = ""
  392. End Sub
  393. Private Sub txt_DblClick(Index As Integer)
  394.      Fdtxt = txt(Index)
  395.         Set obj = txt(Index)
  396.         Select Case Index
  397.         Case 1
  398.             Tbl = "shebei"
  399.         Case 2, 3
  400.             Tbl = "zhiyuan"
  401.         End Select
  402.         frmFind.Show vbModal
  403.      Fdtxt = ""
  404. End Sub
  405. Private Sub txt_KeyPress(Index As Integer, KeyAscii As Integer)
  406.     If KeyAscii = 13 Then txt_DblClick (Index)
  407. End Sub
  408. Private Sub txt_LostFocus(Index As Integer)
  409. Select Case Index
  410. Dim Rs As New ADODB.Recordset
  411. Case 1
  412. Tbl = "shebei"
  413.     Rs.Open "select bname from " & Tbl & " WHERE DEL = 0 and BNAME ='" & txt(Index) & "'", CnStr & DBName, adOpenStatic, adLockReadOnly
  414.     If Rs.EOF Then txt(Index) = ""
  415.     Rs.Close
  416. Case 2, 3
  417. Tbl = "zhiyuan"
  418.     Rs.Open "select bname from " & Tbl & " WHERE DEL = 0 and BNAME ='" & txt(Index) & "'", CnStr & DBName, adOpenStatic, adLockReadOnly
  419.     If Rs.EOF Then txt(Index) = ""
  420.     Rs.Close
  421. End Select
  422. End Sub
  423. Function LoadModi(IdnStr As String)
  424. idnumber.Text = IdnStr
  425. Dim Rsndx As New ADODB.Recordset
  426. Rsndx.Open "select * from XCDZ where idn = '" & IdnStr & "'", CnStr & DBName, adOpenDynamic, adLockPessimistic
  427. DTPicker2.Value = Rsndx("Fdate")
  428. Select Case Rsndx("Fbb")
  429. Case "早餐"
  430. Combo2.ListIndex = 0
  431. Case "午餐"
  432. Combo2.ListIndex = 1
  433. Case "晚餐"
  434. Combo2.ListIndex = 2
  435. Case "夜餐"
  436. Combo2.ListIndex = 3
  437. End Select
  438. 'txt(1).Text = TOstr(Rsndx("Fcarno"), "shebei")
  439. txt(2).Text = TOstr(Rsndx("Fjsr"), "zhiyuan")
  440. 'txt(3).Text = TOstr(Rsndx("Fbgy"), "zhiyuan")
  441. 'txtAdmin.Text = toAnyStr(Rsndx("Fmanager"), "dbadmin", "dbu")
  442. txtExp = Rsndx("Fexp")
  443. 'txtNO = Rsndx("Sid")
  444. Rsndx.Close
  445. With GD1
  446. Rsndx.Open "SELECT * FROM XCDF WHERE IDN = '" & IdnStr & "'", CnStr & DBName, adOpenStatic, adLockPessimistic
  447. Dim i, ii As Integer
  448. For i = 1 To 15
  449.     For ii = 1 To 8
  450.     .TextMatrix(i, ii) = ""
  451.     Next
  452. Next
  453. ii = Rsndx.RecordCount
  454. For i = 1 To ii
  455.     .TextMatrix(TOnum(Rsndx("Fline")), Bpname) = TOstr(Rsndx("Fgoods"), "goods")
  456.     .TextMatrix(TOnum(Rsndx("Fline")), Bguige) = toAnyStr(Rsndx("Fgoods"), "goods", "Fggxh")
  457.     .TextMatrix(TOnum(Rsndx("Fline")), Bppcd) = toAnyStr(Rsndx("Fgoods"), "goods", "Fppcd")
  458.     .TextMatrix(TOnum(Rsndx("Fline")), Bdw) = TOstr(toAnyStr(Rsndx("Fgoods"), "goods", "Fdw"), "danwei")
  459.     .TextMatrix(TOnum(Rsndx("Fline")), Bnum) = Rsndx("Fnum")
  460.     .TextMatrix(TOnum(Rsndx("Fline")), Bprice) = Rsndx("Fprice")
  461.     .TextMatrix(TOnum(Rsndx("Fline")), Bje) = Rsndx("Fje")
  462.     .TextMatrix(TOnum(Rsndx("Fline")), Bbak) = Rsndx("Fbak")
  463.     Rsndx.MoveNext
  464. Next
  465. Rsndx.Close
  466. End With
  467. GD1_RowColChange
  468. End Function
  469. Private Sub MovIn()
  470. txtDATA.Visible = False
  471. GD1.SetFocus
  472. End Sub
  473. Private Sub Modi()
  474. txtDATA = GD1
  475. txtDATA.Move GD1.CellLeft + GD1.Left + 20, GD1.CellTop + GD1.Top + 20, GD1.CellWidth - 8, GD1.CellHeight - 8
  476. txtDATA.Visible = True
  477. txtDATA.SetFocus
  478. txtDATA.SelStart = Len(txtDATA.Text)
  479. End Sub
  480. Private Sub ModiData()
  481. On Error Resume Next
  482. Dim i, ii As Integer
  483. Dim cnn As New ADODB.Connection
  484. cnn.ConnectionString = CnStr & DBName
  485. cnn.CursorLocation = adUseClient
  486. cnn.Open
  487. cnn.BeginTrans
  488. With GD1
  489. For i = 1 To .Rows - 1
  490.     If TOnum(.TextMatrix(i, Bnum)) <> 0 And .TextMatrix(i, Bpname) <> "" Then
  491.         cnn.Execute ("UPDATE XCDF SET Fgoods='" & _
  492.                         TOid(.TextMatrix(i, Bpname), "goods") & "',Fnum='" & _
  493.                         TOnum(.TextMatrix(i, Bnum)) & "',Fprice='" & _
  494.                         TOnum(.TextMatrix(i, Bprice)) & "',Fbak='" & _
  495.                         .TextMatrix(i, Bbak) & "' WHERE IDN ='" & idnumber & "' AND Fline='" & i & "'")
  496.     End If
  497. Next
  498.        cnn.Execute ("UPDATE XCDZ SET Fdate='" & _
  499.                         Format(DTPicker2, "yyyy-MM-dd") & "',Fjsr='" & _
  500.                         TOid(txt(2), "zhiyuan") & "',Fbb='" & _
  501.                         Combo2.Text & "',Fexp='" & _
  502.                         txtExp & "' WHERE IDN ='" & idnumber & "'")
  503. End With
  504. If Err.Number <> 0 Then
  505.     cnn.RollbackTrans
  506.     MsgBox "修改未成功!" & vbCr & Err.Description
  507. Else
  508.     cnn.CommitTrans
  509.     MsgBox "此单据已修改成功!", , "恭喜:"
  510. End If
  511. cnn.Close
  512. End Sub
  513. Private Sub SaveData()
  514. On Error Resume Next
  515. Dim i, ii As Integer
  516. Dim cnn As New ADODB.Connection
  517. cnn.ConnectionString = CnStr & DBName
  518. cnn.CursorLocation = adUseClient
  519. cnn.Open
  520. cnn.BeginTrans
  521.     
  522. '出入库单附
  523. 'cnn.Execute ("CREATE TABLE XCDF     (ID int IDENTITY primary key," & _
  524.                                     "IDN varchar(17) not null," & _
  525.                                     "Fline int not null," & _
  526.                                     "Fgoods int not null," & _
  527.                                     "Finout int default 1," & _
  528.                                     "Fnum float(20) default 0," & _
  529.                                     "Fprice float(20) default 0," & _
  530.                                     "Fje as Fnum * Fprice," & _
  531.                                     "Fbak varchar(50))")
  532. With GD1
  533. For i = 1 To .Rows - 1
  534.     If TOnum(.TextMatrix(i, Bnum)) <> 0 And .TextMatrix(i, Bpname) <> "" Then
  535.         cnn.Execute ("INSERT INTO XCDF " & _
  536.                 "(IDN,Fline,Fgoods,Finout,Fnum,Fprice,Fbak) " & _
  537.                 "VALUES('" & idnumber.Text & "','" & _
  538.                         i & "','" & _
  539.                         TOid(.TextMatrix(i, Bpname), "goods") & "','" & _
  540.                         -1 & "','" & _
  541.                         TOnum(.TextMatrix(i, Bnum)) & "','" & _
  542.                         TOnum(.TextMatrix(i, Bprice)) & "','" & _
  543.                         .TextMatrix(i, Bbak) & "')")
  544.     End If
  545. Next
  546. '出入库单主
  547. 'cnn.Execute ("CREATE TABLE XCDZ     (ID int identity primary key," & _
  548.                                     "IDN varchar(17) not null," & _
  549.                                     "Fcls int not null," & _
  550.                                     "Fred BIT not null," & _
  551.                                     "Fdate varchar(10)," & _
  552.                                     "Fcarno int," & _
  553.                                     "Fkehu int," & _
  554.                                     "Fjsr int," & _
  555.                                     "Fbgy int," & _
  556.                                     "Fmanager int," & _
  557.                                     "Ftype varchar(10) default ''," & _
  558.                                     "Fpiao varchar(15) default ''," & _
  559.                                     "Ftotje float(20) default 0," & _
  560.                                     "Fexp varchar(50) default '')")
  561. 'cnn.Execute ("INSERT INTO XCDZ (IDN,Fcls,Fred,Fdate,Fcarno,Fkehu,Fjsr,Fbgy,Fmanager,Ftype,Fpiao,Ftotje,Fexp)
  562. cnn.Execute ("INSERT INTO XCDZ (IDN,Fcls,Fred,Fdate,Fbb,Fjsr,Ftotje,Fexp)" & _
  563.                         " VALUES('" & idnumber.Text & "','" & _
  564.                         -1 & "','" & _
  565.                         0 & "','" & _
  566.                         Format(DTPicker2.Value, "yyyy-MM-dd") & "','" & _
  567.                         Combo2.Text & "','" & _
  568.                         TOid(txt(2), "zhiyuan") & "'," & _
  569.                         txtM & ",'" & _
  570.                         txtExp & "')")
  571. End With
  572. If Err.Number <> 0 Then
  573. cnn.RollbackTrans
  574. MsgBox "保存未成功!" & vbCr & Err.Description
  575. Else
  576. cnn.CommitTrans
  577. MsgBox "此单据已保存成功!", , "恭喜:"
  578. End If
  579. cnn.Close
  580. End Sub
  581. Function Chk() As Boolean
  582. Dim i As Integer
  583. Dim ii As Integer
  584. ii = 0
  585. If Combo2 = "" Then
  586.     MsgBox "请选择班别!"
  587.     Chk = False
  588.     Exit Function
  589. End If
  590. If Trim(txt(2)) = "" Then
  591.     MsgBox "错误,经手人不能为空!"
  592.     Chk = False
  593.     Exit Function
  594. End If
  595. With GD1
  596. For i = 1 To 15
  597.     If .TextMatrix(i, Bpname) <> "" Then
  598.     ii = ii + 1
  599.         If TOnum(.TextMatrix(i, Bnum)) = 0 Then
  600.             MsgBox "第" & i & "行错误,数量不能为零!"
  601.             .Row = i
  602.             Chk = False
  603.             Exit Function
  604.         ElseIf TOnum(.TextMatrix(i, Bprice)) = 0 Then
  605.             MsgBox "第" & i & "行错误,单价不能为零!"
  606.             .Row = i
  607.             Chk = False
  608.             Exit Function
  609.         ElseIf Len(.TextMatrix(i, Bbak)) > 25 Then
  610.             MsgBox "第" & i & "行错误,备注应小于25个字符!"
  611.             .Row = i
  612.             Chk = False
  613.             Exit Function
  614.         End If
  615.     End If
  616. Next i
  617. End With
  618. If ii > 0 Then
  619.     Chk = True
  620. Else
  621.     MsgBox "没有要保存的数据!"
  622.     Chk = False
  623. End If
  624. End Function