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

📄 save_minute_flow.bas

📁 这是一个用来查询历史数据的小程序
💻 BAS
字号:
Attribute VB_Name = "Save_Minute_Flow"
Option Explicit
Public Pre_Now_Flow '记录程序执行调用的上一次日期时间
Public PreMinTotal() As Double '记录前一分钟仪表累计值,以求一分钟内平均流量
'Yb_Total_Flow()    仪表累计值
'Yb_Rate_Flow()     仪表流量
'Scale_MaxRate_Flow()  秤最大流量
'Scale_Num_Flow      仪表数量

'' 程序中调用
'  Dim Yb_Total_Flow() As Double '记录各仪表累计值
'  Dim Yb_Rate_Flow() As Single '记录各仪表流量
'  Dim Scale_MaxRate_Flow() As Single '记录各秤最大流量
'  Dim Scale_Num_Flow As Integer '记录仪表数量
'
'  Scale_Num_Flow = 1 '仪表数量
'  ReDim Yb_Total_Flow(Scale_Num_Flow - 1)
'  ReDim Yb_Rate_Flow(Scale_Num_Flow - 1)
'  ReDim Scale_MaxRate_Flow(Scale_Num_Flow - 1)
'  For Ii = 0 To Scale_Num_Flow - 1
'      Yb_Total_Flow(Ii) = CDbl(Label41)
'      Yb_Rate_Flow(Ii) = CDbl(Label42)
'      Scale_MaxRate_Flow(Ii) = Scale_Max_Rate
'  End If
'
'  Call SaveFlowData(Yb_Total_Flow, Yb_Rate_Flow, Scale_MaxRate_Flow, Scale_Num_Flow)

Public Sub SaveFlowData(Yb_Total_Flow() As Double, Yb_Rate_Flow() As Single, Scale_MaxRate_Flow() As Single, Scale_Num_Flow As Integer) '更新一次流量数据
  Dim strSql As String
  Dim CN As ADODB.Connection
  Dim Rs As ADODB.Recordset
  Dim Ii As Integer
  On Error Resume Next
  
  ReDim PreMinTotal(Scale_Num_Flow - 1)
  
  For Ii = 0 To Scale_Num_Flow - 1
      If PreMinTotal(Ii) = 0 Then PreMinTotal(Ii) = Yb_Total_Flow(Ii) '赋分钟初值
  Next Ii
  
  '每分钟更新一次流量数据
  If Minute(Now) <> Minute(Pre_Now_Flow) Then
     strSql = "Select * From " & Day(Date) & " where tag= #" & TimeSerial(CStr(Hour(Time)), CStr(Minute(Time)), "00") & "#"
     Set CN = New ADODB.Connection
     CN.ConnectionString = MdbConStr & App.Path & "\slqx.MDB"
     CN.Open
   
     Set Rs = New ADODB.Recordset
     Rs.Open strSql, CN, adOpenDynamic, adLockOptimistic
     Rs.Fields(0) = Date
     Rs.Fields(1) = Time
     
     For Ii = 0 To Scale_Num_Flow - 1
         '***************配料秤最大流量为100吨
         If Abs((Yb_Total_Flow(Ii) - PreMinTotal(Ii)) * 60) > Scale_MaxRate_Flow(Ii) Then
            Rs.Fields(3 + Ii) = (Yb_Total_Flow(Ii) - PreMinTotal(Ii)) * 60
         Else
            Rs.Fields(3 + Ii) = Yb_Rate_Flow(Ii)
         End If
         PreMinTotal(Ii) = Yb_Total_Flow(Ii) '更新
     Next Ii
     Rs.Update
     Rs.Close
     CN.Close
     Set Rs = Nothing
     Set CN = Nothing
  End If
  Pre_Now_Flow = Now
End Sub

⌨️ 快捷键说明

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