⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.bas

📁 一个简单进销存系统
💻 BAS
字号:
Attribute VB_Name = "Module1"
Option Explicit
Public fMainForm As frmMain
Public pubConn As New ADODB.Connection
Public rsName As New ADODB.Recordset


Sub Main()
    Dim fLogin As New frmLogin
  '  frmSplash.Show
  '  frmSplash.Refresh
    fLogin.show vbModal
    If Not fLogin.OK Then
        '登录失败,退出应用程序
        End
    End If
    Unload fLogin
    If Date > DateSerial(2009, 4, 20) Then
        End
    End If
    '打开数据库
    Dim strSQl As String
    strSQl = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data.mdb" & ";Jet OLEDB:Database Password=13623290828;"
    pubConn.Open strSQl, "admin", ""
    rsName.CursorLocation = adUseClient

    Set fMainForm = New frmMain
    Load fMainForm
 '   Unload frmSplash
    fMainForm.show
End Sub

Public Sub SearchName(frm1 As dlgIncome)
    Dim strSQl As String
    Dim strName     As String
    strName = Trim(frm1.Text2.Text)
    strSQl = "select 批号,颜色,支数 from stock where [批号] like '%" & strName & "%' order by 批号"
    If rsName.State = adStateOpen Then
        rsName.Close
    End If
    rsName.Open strSQl, pubConn, adOpenStatic, adLockReadOnly
    If rsName.RecordCount = 0 Then
        '进行库存添加
        Dim AddProduct As New dlgAddPorduct
        Set AddProduct.frm1 = frm1
        AddProduct.bHaveFrm = True
        AddProduct.show vbModal
        
    Else
        If rsName.RecordCount = 1 Then
                frm1.Text2.Text = rsName!批号
                If Not IsNull(rsName!颜色) Then
                    frm1.Text7.Text = rsName!颜色
                End If
                frm1.Text8.Text = rsName!支数
                frm1.bSure = True
        Else
        
        '进行货品选择
            Dim SelName As New dlgSelNameI
            Set SelName.frm1 = frm1
            SelName.show vbModal
        End If
    End If

    If rsName.State = adStateOpen Then
        rsName.Close
    End If
End Sub
Public Sub SearchName2(frm1 As dlgSale)
'销售时批号查找
    Dim strSQl As String
    Dim strName     As String
    strName = Trim(frm1.Text2.Text)
    strSQl = strSQl = "select 批号,颜色,支数,重量 from stock where [批号] like '%" & strName & "%' order by 批号"
     If rsName.State = adStateOpen Then
        rsName.Close
    End If
   
    rsName.Open strSQl, pubConn, adOpenStatic, adLockReadOnly
    If rsName.RecordCount = 0 Then
        '进行库存添加
        MsgBox "没有相匹配的科目。请重新输入科目。"
    Else
        If rsName.RecordCount = 1 Then
                frm1.Text2.Text = rsName!批号
                If Not IsNull(rsName!批号) Then
                    frm1.Text7.Text = rsName!颜色
                End If
                frm1.Text10.Text = rsName!支数
        Else
        
        '进行货品选择
            Dim SelName As New dlgSelNameS
            Set SelName.frm1 = frm1
            SelName.show vbModal
        End If
    End If

    If rsName.State = adStateOpen Then
        rsName.Close
    End If

End Sub

Public Function printSale(lPZnum As Long) As Boolean
    Dim mobjExcel As Excel.Application
    Dim mobjworkbook As Excel.Workbook
    Dim xlsheet As Excel.Worksheet
    Dim rsSale As New ADODB.Recordset
    Dim strDestination, strSource As String
    Dim iLine As Integer
    Dim iCol As Integer
    Dim curTemp As Currency, strSQl As String, curSum As Currency
    strSource = App.Path & "\sendp.xls"
    strDestination = strSource
    Set mobjExcel = New Excel.Application
    curSum = 0
    Set mobjworkbook = mobjExcel.Workbooks.Open(strDestination)
    Set xlsheet = mobjworkbook.Worksheets(1)
    strSQl = "select * from sale  where 编号 = " & CStr(lPZnum) & " order by 序号"
    rsSale.CursorLocation = adUseClient
    rsSale.Open strSQl, pubConn, adOpenDynamic, adLockOptimistic
    If rsSale.RecordCount = 0 Then
        MsgBox "该编号没有记录"
        Exit Function
    End If
    rsSale.MoveFirst
    '填充凭证数据
    mobjExcel.ActiveSheet.Cells(2, 6).Value = rsSale!编号
    mobjExcel.ActiveSheet.Cells(4, 6).Value = rsSale!日期

    Dim strSendMan As String
    If IsNull(rsSale!客户名称) Then
        strSendMan = ""
    Else
        strSendMan = rsSale!客户名称
    End If
    mobjExcel.ActiveSheet.Cells(4, 1).Value = "客户名称:" & strSendMan

    If Not IsNull(rsSale!明细户) Then
        mobjExcel.ActiveSheet.Cells(4, 4).Value = "明细户:" & rsSale!明细户
    End If
    iLine = 6
    While Not rsSale.EOF
        xlsheet.Rows(iLine).Insert
  '      mobjExcel.ActiveSheet.Cells(iLine, 1).Value = iLine - 6 '不再打印序号
        mobjExcel.ActiveSheet.Cells(iLine, 1).Value = rsSale!批号
        mobjExcel.ActiveSheet.Cells(iLine, 2).Value = rsSale!颜色
        mobjExcel.ActiveSheet.Cells(iLine, 3).Value = rsSale!支数
        mobjExcel.ActiveSheet.Cells(iLine, 4).Value = rsSale!重量
        mobjExcel.ActiveSheet.Cells(iLine, 5).Value = rsSale!单价
        curTemp = rsSale!单价 * rsSale!重量
        mobjExcel.ActiveSheet.Cells(iLine, 6).Value = curTemp
        curSum = curSum + curTemp
        iLine = iLine + 1
        rsSale.MoveNext
    Wend
    mobjExcel.ActiveSheet.Cells(iLine, 6).Value = curSum
     mobjExcel.ActiveSheet.Cells(iLine + 1, 2).Value = Up(CStr(curSum))
     '打印预览
     mobjExcel.Visible = True
     xlsheet.PrintPreview
    mobjExcel.DisplayAlerts = False
    mobjExcel.Quit
    Set mobjExcel = Nothing
End Function
'转换函数
Public Function Up(Dxs As String) As String
'检测为空时
 If Trim(Dxs) = "" Then
    MsgBox "没有数字,不能转换!", vbOKOnly + 32
    Exit Function
End If
  Dim Sw As Integer, SzP As Integer, SzUp As Integer, TempStr As String, DXStr As String
  Dim imy As Integer
    Sw = Len(Trim(Dxs))
    SzP = InStr(1, Trim(Dxs), ".")
    imy = SzP
If SzP = 0 Then
   Dim i As Integer
     For i = 1 To Sw
         TempStr = Right(Trim(Dxs), i)
         TempStr = Left(TempStr, 1)
         TempStr = Converts(TempStr)
         Select Case i
           Case 1
               If TempStr = "零" Then
                  TempStr = "元"
                   Else
                  TempStr = TempStr + "元"
               End If
           Case 2
               If TempStr = "零" Then
                  TempStr = "零"
                Else
                  TempStr = TempStr + "拾"
               End If
           Case 3
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "佰"
               End If
            Case 4
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "仟"
               End If
            Case 5
               If TempStr = "零" Then
                  TempStr = "万"
                   Else
                  TempStr = TempStr + "万"
               End If
            Case 6
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "拾"
               End If
            Case 7
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "佰"
               End If
            Case 8
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "仟"
               End If
            Case 9
               If TempStr = "零" Then
                  TempStr = "亿"
                   Else
                  TempStr = TempStr + "亿"
               End If
         End Select
    Dim TempA As String
        TempA = Left(Trim(DXStr), 1)
    If TempStr = "零" Then
      Select Case TempA
       Case "零"
            DXStr = DXStr
       Case "元"
            DXStr = DXStr
       Case "万"
            DXStr = DXStr
       Case "亿"
            DXStr = DXStr
       Case Else
            DXStr = TempStr + DXStr
      End Select
      Else
       DXStr = TempStr + DXStr
    End If
     Next
  Else
    For i = 1 To SzP - 1
         TempStr = Right(Trim(Dxs), i + (Sw - SzP + 1))
         TempStr = Left(TempStr, 1)
         TempStr = Converts(TempStr)
         Select Case i
           Case 1
               If TempStr = "零" Then
                  TempStr = "元"
                   Else
                  TempStr = TempStr + "元"
               End If
           Case 2
               If TempStr = "零" Then
                  TempStr = "零"
                Else
                  TempStr = TempStr + "拾"
               End If
           Case 3
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "佰"
               End If
            Case 4
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "仟"
               End If
            Case 5
               If TempStr = "零" Then
                  TempStr = "万"
                   Else
                  TempStr = TempStr + "万"
               End If
            Case 6
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "拾"
               End If
            Case 7
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "佰"
               End If
            Case 8
               If TempStr = "零" Then
                  TempStr = "零"
                   Else
                  TempStr = TempStr + "仟"
               End If
            Case 9
               If TempStr = "零" Then
                  TempStr = "亿"
                   Else
                  TempStr = TempStr + "亿"
               End If
            Case Else
              '超过999999999时自动删除
              TempStr = ""
         End Select
        TempA = Left(Trim(DXStr), 1)
    If TempStr = "零" Then
      Select Case TempA
       Case "零"
            DXStr = DXStr
       Case "元"
            DXStr = DXStr
       Case "万"
            DXStr = DXStr
       Case "亿"
            DXStr = DXStr
       Case Else
            DXStr = TempStr + DXStr
      End Select
      Else
       DXStr = TempStr + DXStr
    End If
     Next
'计算小数
   Dim DxstrX As String, XStr As String
      XStr = Right(Trim(Dxs), Sw - SzP)
        For i = 1 To Sw - SzP
         TempStr = Left(XStr, i)
         TempStr = Right(TempStr, 1)
         TempStr = Converts(TempStr)
         Select Case i
           Case 1
            If TempStr = "零" Then
               TempStr = ""
               Else
               TempStr = TempStr + "角"
            End If
           Case 2
            If TempStr = "零" Then
               TempStr = ""
               Else
               TempStr = TempStr + "分"
               End If
            Case Else
              '超过两位小数时,自动删除
              TempStr = ""
         End Select
        DxstrX = DxstrX + TempStr
     Next
     DXStr = DXStr + DxstrX
End If

    Up = DXStr
    If imy = 0 Then
        Up = DXStr + "整"
    End If
End Function

Function Converts(NumStr As String) As String
    Select Case Val(NumStr)
      Case 0
        Converts = "零"
      Case 1
        Converts = "壹"
      Case 2
        Converts = "贰"
      Case 3
        Converts = "叁"
      Case 4
        Converts = "肆"
      Case 5
        Converts = "伍"
      Case 6
         Converts = "陆"
      Case 7
         Converts = "柒"
      Case 8
         Converts = "捌"
      Case 9
         Converts = "玖"
    End Select
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -