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

📄 frmpoly.frm

📁 用于三次采油技术的经济评价
💻 FRM
📖 第 1 页 / 共 2 页
字号:
i = i + 1
A(i, 1) = oleExcel.Worksheets("化学剂用量参数表").Range("A1").Cells(i, 1): A(i, 2) = oleExcel.Worksheets("化学剂用量参数表").Range("b1").Cells(i, 1)
A(i, 3) = oleExcel.Worksheets("化学剂用量参数表").Range("c1").Cells(i, 1)
  A(i, 4) = oleExcel.Worksheets("化学剂用量参数表").Range("d1").Cells(i, 1)

 A(i, 5) = oleExcel.Worksheets("化学剂用量参数表").Range("e1").Cells(i, 1)
  A(i, 6) = oleExcel.Worksheets("化学剂用量参数表").Range("f1").Cells(i, 1)
   A(i, 7) = oleExcel.Worksheets("化学剂用量参数表").Range("g1").Cells(i, 1)
   
   A(i, 8) = oleExcel.Worksheets("化学剂用量参数表").Range("h1").Cells(i, 1)

 A(i, 9) = oleExcel.Worksheets("化学剂用量参数表").Range("i1").Cells(i, 1)
  A(i, 10) = oleExcel.Worksheets("化学剂用量参数表").Range("j1").Cells(i, 1)
   A(i, 11) = oleExcel.Worksheets("化学剂用量参数表").Range("k1").Cells(i, 1)
   
Loop While A(i, 1) <> 0
 Count = i - 2
 
 
   
  Me.MSFlexGrid1.Rows = Count + 1
   
  VarPingJiaQi = Count
    TxtNianXian.Text = Str(Count)

    For i = 1 To Count
     For k = 1 To 10
        TempS = A(i + 1, k + 1)
        
        VarHuaXueji(i, k + 1) = Val(TempS)  '将数据库数据写入化学剂变量数组
     Next k
 Next i
  
  For i = 1 To Count
      VarHuaXueji(i, 1) = i
  Next i
 oleExcel.DisplayAlerts = False
oleExcel.Quit
Set oleExcel = Nothing

 Else

  
  Count = 0        '表中的记录数
  ' MsgBox OpeningDatabase
  
  ''******************修改纪录***********************
  Set Data1 = New ADODB.Connection
  Data1.CursorLocation = adUseClient
  Data1.Open "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & filename1
  Set adozjyyyhg = New ADODB.Recordset
  adozjyyyhg.Open "select * from 化学剂用量参数表", Data1, adOpenStatic, adLockOptimistic
   
   'Data1.Refresh
   With adozjyyyhg
  ' .OpenRecordset
      If (.EOF = True) And (.BOF = True) Then
         'MsgBox "数据库无记录"
         .MoveLast
      
      Else
        .MoveFirst
         Do While .EOF = False
           Count = Count + 1
           .MoveNext
         Loop
       'MsgBox "数据库共有" & Count & "条记录"
     End If
     
   End With
   VarPingJiaQi = Count
    TxtNianXian.Text = Str(Count)
   'Data1.Refresh
   adozjyyyhg.MoveFirst
   
   For i = 1 To Count
     For k = 1 To 7
        'MsgBox Data1.Recordset.Fields(k).
        TempS = adozjyyyhg.Fields(k).Value
        VarHuaXueji(i, k + 1) = Val(TempS)
     Next k
    adozjyyyhg.MoveNext
  Next i
  adozjyyyhg.Close
  For i = 1 To Count
      VarHuaXueji(i, 1) = i
  Next i
  
End If
  mTotalRows& = Str(Count)
  MSFlexGrid1.Rows = mTotalRows& + 1
  
  For m = 1 To mTotalRows&
    MSFlexGrid1.RowHeight(m) = 400 '设定高度
   MSFlexGrid1.ColAlignment(0) = 4
   For n = 1 To MSFlexGrid1.Cols - 1
    MSFlexGrid1.ColAlignment(n) = 4
          MSFlexGrid1.TextMatrix(m, n) = Format$(VarHuaXueji(m, n + 1), kr_frt$(n))
          If MSFlexGrid1.TextMatrix(m, n) > 1000000000 Then
             MSFlexGrid1.TextMatrix(m, n) = Format$(0.1, "0.000")
             End If
        Text1.Text = MSFlexGrid1.Text
    Next n
     MSFlexGrid1.TextMatrix(m, 0) = m
    Next m
  
  Exit Sub
myerrr:
MousePointer = 0
   Me.Enabled = -1
       Me.MousePointer = 1

End Sub


Public Sub ShengChengGrideAdd()      '将网格中的数据添加到数据库中的"数据输入表"
 
  Dim Count
  Count = Val(TxtNianXian.Text)
  VarPingJiaQi = Count
  
  On Error GoTo myerrr
  Set Data1 = New ADODB.Connection
  Data1.CursorLocation = adUseClient
  Data1.Open "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & OpeningDatabase
  Set adozjyyyhg = New ADODB.Recordset
  
  adozjyyyhg.Open "select * from 化学剂用量参数表", Data1, adOpenStatic, adLockOptimistic
   With adozjyyyhg
    'MsgBox "eof=" & .EOF & "BOF=" & .BOF
    If Not ((.EOF = True) And (.BOF = True)) Then
      .MoveLast
    End If
    Do While .BOF = False
       .Delete
       .MovePrevious
    Loop
    If (.BOF = False) Then
      .MoveFirst
      .Delete
    End If
      
      For i = 1 To Count - 1
        .AddNew                            ' 将网格中的数据添加到数据库中的"化学剂用量参数表"
        For k = 0 To 10
          If MSFlexGrid1.TextArray(i * 11 + k) = "" Then
             Str1 = "0"
          Else
             Str1 = MSFlexGrid1.TextArray(i * 11 + k)
          End If
         .Fields(k).Value = Str1
          VarHuaXueji(i, k + 1) = Val(Str1) '将网格数据写入化学剂变量数组
        Next k
        .Update
      Next i
    
    
 ' End If
    .Close
    MsgBox "数据已经保存成功!", 0, "OK!"
  End With
 Exit Sub
myerrr:
MousePointer = 0
   Me.Enabled = -1
       Me.MousePointer = 1
    
End Sub

Private Sub SSCommand2_Click()
flag(1) = 2
ShengChengGrideAdd
End Sub

Private Sub SSCommand3_Click()
'
Beep
   msg$ = "退出前是否存储数据?"
   Title$ = "退出"
   xchoose = MsgBox(msg$, 35, Title$)
   If xchoose = 2 Then Exit Sub
   If xchoose = 6 Then
   'newis = 2: flag(1) = 2
   flag(1) = 2
   ShengChengGrideAdd
   End If
   'newis = 2: flag(1) = 2
  Me.Hide
 Unload Me
End Sub






Private Sub del_line_Click()
   Beep
   MSFlexGrid1.Text = Text1.Text
   If MSFlexGrid1.row = MSFlexGrid1.RowSel Then
    sss$ = Trim$(Str$(MSFlexGrid1.RowSel - MSFlexGrid1.FixedRows + 1))
   Else
    sss$ = del1$ & "~" & del2$
   End If
  
     msg$ = "是否删除序号为“" & sss$ & "”的设置信息?"
   Title$ = "警告"
   xchoose = MsgBox(msg$, 49, Title$)
   If xchoose = 2 Then Exit Sub
     
   If MSFlexGrid1.Rows - (Val(del2$) - Val(del1$) + 1) < 2 Then
    For i = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows - 1
     For k = 1 To MSFlexGrid1.Cols - 1
      MSFlexGrid1.TextMatrix(i, k) = ""
     Next k
    Next i
   Else
    If Val(del2$) + 1 <= MSFlexGrid1.Rows - 1 Then
     For i = Val(del2$) + 1 To MSFlexGrid1.Rows - 1
      For k = 1 To MSFlexGrid1.Cols - 1
       MSFlexGrid1.TextMatrix(i - (Val(del2$) - Val(del1$) + 1), k) = MSFlexGrid1.TextMatrix(i, k)
      Next k
     Next i
     For i = MSFlexGrid1.Rows - (Val(del2$) - Val(del1$) + 1) To MSFlexGrid1.Rows - 1
      For k = 1 To MSFlexGrid1.Cols - 1
       MSFlexGrid1.TextMatrix(i, k) = ""
      Next k
     Next i
    End If
   End If
   Text1.Visible = 0
   Call blank_MSFlexGridshow
   MSFlexGrid1.RowSel = MSFlexGrid1.row
  ' Call draw_line
End Sub







Private Sub sspanel3_Click()

  
If TxtNianXian.Text = "" Then
      MsgBox "必须输入生产年限!"
      Exit Sub
   End If
   RowTemp = Val(TxtNianXian.Text)
   If RowTemp > 25 Then
      MsgBox "生产年限过长,请重新输入?", "警告"
      Exit Sub
   End If
   
   
 
 
 
MSFlexGrid1.Rows = Val(TxtNianXian.Text + 1)
'MSFlexGrid1.RowHeight(Val(TxtNianXian.Text)) = 400
MSFlexGrid1.RowHeightMin = 400
 ''MSFlexGrid1.col = 1
 For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(i, 0) = i
 Next i

  Text1.Visible = False
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
   Select Case KeyCode
    Case 38 'up
     MSFlexGrid1.Text = Text1.Text
     Text1.Visible = 0
     MSFlexGrid1.SetFocus
     KeyAscii = 0
     SendKeys "{UP}"
    '' Call draw_line
    Case 40 'down
     MSFlexGrid1.Text = Text1.Text
     Text1.Visible = 0
     MSFlexGrid1.SetFocus
     KeyAscii = 0
     SendKeys "{DOWN}"
    '' Call draw_line
   End Select
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 46) And (KeyAscii <> 8) And (KeyAscii <> 13) And (KeyAscii <> 27) Then
     Beep
     KeyAscii = 0
    End If
    Select Case KeyAscii
     Case 13 'Enter
      MSFlexGrid1.Text = Text1.Text
     ' Call draw_line
      Text1.Visible = 0
      MSFlexGrid1.SetFocus
      KeyAscii = 0
      If MSFlexGrid1.row < MSFlexGrid1.Rows - 1 Then
       MSFlexGrid1.row = MSFlexGrid1.row + 1
       If MSFlexGrid1.row = MSFlexGrid1.Rows - 1 Then MSFlexGrid1.TopRow = MSFlexGrid1.TopRow + 1: Exit Sub
       For i = 1 To 10
        If Not (MSFlexGrid1.RowIsVisible(MSFlexGrid1.row + 1)) Then MSFlexGrid1.TopRow = MSFlexGrid1.TopRow + 1 Else Exit For
       Next i
      Else
       If MSFlexGrid1.col < MSFlexGrid1.Cols - 1 Then MSFlexGrid1.TopRow = MSFlexGrid1.FixedRows: MSFlexGrid1.row = MSFlexGrid1.FixedRows: MSFlexGrid1.col = MSFlexGrid1.col + 1
       If MSFlexGrid1.col = MSFlexGrid1.Cols - 1 Then MSFlexGrid1.LeftCol = MSFlexGrid1.LeftCol + 1: Exit Sub
       For i = 1 To 20
        If Not (MSFlexGrid1.ColIsVisible(MSFlexGrid1.col + 1)) Then
         MSFlexGrid1.LeftCol = MSFlexGrid1.LeftCol + 1
        Else
         If (MSFlexGrid1.CellLeft + MSFlexGrid1.CellWidth + Text1.Width) > MSFlexGrid1.Width Then MSFlexGrid1.LeftCol = MSFlexGrid1.LeftCol + 1
         Exit For
        End If
       Next i
      End If
     Case 27  'Escape
      KeyAscii = 0
      Text1.Text = MSFlexGrid1.Text
      Text1.Visible = 0
      MSFlexGrid1.SetFocus
    End Select
End Sub

Private Sub MSFlexGrid1_keypress(KeyAscii As Integer)
    Dim char As String

    Select Case KeyAscii
     Case 27 'Escape key
      Text1.Text = MSFlexGrid1.Text    'add this if desired
     Case Else
      If KeyAscii = 13 Then 'show text1 with full text
       Text1.Text = MSFlexGrid1.Text
       Text1.SelStart = Len(Text1.Text)
      Else
       char = Chr$(KeyAscii)
       Text1.Text = char
       Text1.SelStart = 1
      End If
      Call showtextbox
      KeyAscii = 0
    End Select
End Sub

Private Sub MSFlexGrid1_RowColChange()
 If bb = 2 Then
  Text1.Text = MSFlexGrid1.Text
  Call showtextbox
 End If
End Sub

Private Sub MSFlexGridshow()
  
  Dim Items(0 To 11) As String
   Dim IntLoop As Integer
       Items(0) = "年份"
       Items(1) = "化学剂1(吨)"
       Items(2) = "价格1(万元/吨)"
       Items(3) = "化学剂2(吨)"
       Items(4) = "价格2(万元/吨)"
       Items(5) = "化学剂3(吨)"
       Items(6) = "价格3(万元/吨)"
       Items(7) = "化学剂4(吨)"
     Items(8) = "价格4(万元/吨)"
     Items(9) = "化学剂5(吨)"
     Items(10) = "价格5(万元/吨)"
      
  bb = 1: jsq = 10
  sat_max = Val(TxtNianXian.Text)
  mTotalRows& = sat_max + 1
    
  MSFlexGrid1.Visible = False
  MSFlexGrid1.Cols = jsq + 1: MSFlexGrid1.Rows = mTotalRows&
  MSFlexGrid1.MergeCells = flexMergeNever
  
  MSFlexGrid1.FixedCols = 1: MSFlexGrid1.FixedRows = 1
  
  MSFlexGrid1.row = 0
       For IntLoop = 0 To 10
         MSFlexGrid1.col = IntLoop
         MSFlexGrid1.Text = Items(IntLoop)
       Next IntLoop
 If flag(1) = 1 Then
 
  For m = 1 To mTotalRows& - 1
    MSFlexGrid1.RowHeight(m) = 400 '设定高度
   MSFlexGrid1.ColAlignment(0) = 4
   For n = 1 To MSFlexGrid1.Cols - 1
    MSFlexGrid1.ColAlignment(n) = 4
         MSFlexGrid1.TextMatrix(m, n) = ""
         Text1.Text = MSFlexGrid1.Text
    Next n
    Next m
  Else
22   For m = 1 To mTotalRows& - 1
    MSFlexGrid1.RowHeight(m) = 400  '设定高度
   MSFlexGrid1.ColAlignment(0) = 4
   For n = 1 To MSFlexGrid1.Cols - 1
    MSFlexGrid1.ColAlignment(n) = 4
     MSFlexGrid1.TextMatrix(m, n) = Format$(VarHuaXueji(m, n + 1), kr_frt$(n))
    Text1.Text = MSFlexGrid1.Text
   Next n
  Next m
   End If
  MSFlexGrid1.ColWidth(0) = 500
  For i = 0 To MSFlexGrid1.Cols - 2

   MSFlexGrid1.ColWidth(i + 1) = (13000) / 9 * formbl_x
  Next i
  MSFlexGrid1.RowHeight(0) = 500
       
  Text1.Text = MSFlexGrid1.Text: Text1.Visible = 0
  
  MSFlexGrid1.col = MSFlexGrid1.FixedCols: MSFlexGrid1.row = 1
  MSFlexGrid1.TopRow = 1: MSFlexGrid1.LeftCol = MSFlexGrid1.FixedCols
  Call blank_MSFlexGridshow
  
  MSFlexGrid1.Visible = -1
  
  bb = 2
End Sub

Private Sub blank_MSFlexGridshow()
   For i = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows - 1
    MSFlexGrid1.TextMatrix(i, 0) = Trim$(Str$(i - MSFlexGrid1.FixedRows + 1))
   Next i
   Text1.Text = MSFlexGrid1.Text
  ' If MSFlexGrid1.Text = "" Then MSFlexGrid1_keypress 13
End Sub


Private Sub TxtNianXian_KeyPress(KeyAscii As Integer)
 If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 46) And (KeyAscii <> 8) And (KeyAscii <> 13) And (KeyAscii <> 27) Then
     Beep
     KeyAscii = 0
    End If
  If KeyAscii = 13 Then
  Beep
  Call nianxianchange
  End If
    
End Sub




Private Sub UpDown1_DownClick()
If Val(TxtNianXian.Text) > 1 Then
 TxtNianXian.Text = LTrim$(Str(Val(TxtNianXian.Text) - 1))
 Call nianxianchange
  End If
End Sub

Private Sub UpDown1_UpClick()
If Val(TxtNianXian.Text) < 20 Then
TxtNianXian.Text = LTrim$(Str(Val(TxtNianXian.Text) + 1))
 Call nianxianchange
 End If
End Sub
Sub nianxianchange()
'If TxtNianXian.Text = "" Then
      'MsgBox "必须输入生产年限!"
      'Exit Sub
   'End If
   RowTemp = Val(TxtNianXian.Text)
   MSFlexGrid1.Rows = Val(TxtNianXian.Text + 1)
   MSFlexGrid1.RowHeightMin = 400
 ''MSFlexGrid1.col = 1
 For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(i, 0) = i
 Next i

  Text1.Visible = False
   If RowTemp >= 20 Then
      MsgBox "生产年限过长,请重新输入?", 0, "警告"
      TxtNianXian.Text = 20
      Exit Sub
   End If
   


End Sub

⌨️ 快捷键说明

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