当前位置:编程学习 > VB >>

初学VB,各位大哥大姐们前来帮帮忙啊,运行时出现编译错误,“未找到方法或数据成员”,小妹在此先谢过各位啦!

Public c As Integer         '临时存放取得的网格中的坐标
Public r As Integer
Public msf1fouse As Boolean '判断是对MSF1还是对MSF2操作
Public msf2fouse As Boolean
Public Sub showtitle1() '显示MSF1网格是中的标题

 MSF1.Clear
  Dim i As Integer
      Dim mrc As ADODB.Recordset
  With MSF1

    .Cols = 3
    .TextMatrix(0, 0) = "id"
    .TextMatrix(0, 1) = "加分分数"
    .TextMatrix(0, 2) = "加分内容"
  
    .ColWidth(0) = 1000
    .ColWidth(1) = 1500
    .ColWidth(2) = 2500
  
  
    .FixedRows = 1
  
    For i = 1 To Cols
      .ColAlignment(i) = 0
    Next i
    .FillStyle = flexFillSingle
    .Col = 0
    .Row = 0
    .RowSel = 1
    .ColSel = .Cols - 1
    .CellAlignment = 4
    .Row = 1
    End With
    End Sub
    Public Sub showtitle2() '显示MSF2网格是中的标题

 MSF2.Clear
  Dim i As Integer
      Dim mrc As ADODB.Recordset
  With MSF2

    .Cols = 3
    .TextMatrix(0, 0) = "id"
  
    .TextMatrix(0, 1) = "减分分数"
    .TextMatrix(0, 2) = "减分内容"
  
    .ColWidth(0) = 1000
    .ColWidth(1) = 1500
    .ColWidth(2) = 2500
    
    .FixedRows = 1
  
    For i = 1 To Cols
      .ColAlignment(i) = 0
    Next i
    .FillStyle = flexFillSingle
    .Col = 0
    .Row = 0
    .RowSel = 1
    .ColSel = .Cols - 1
    .CellAlignment = 4
    .Row = 1
    End With
    End Sub

    
  
  
Public Sub showdata1() '显示MSF1网格是内容
On Error GoTo s2
Dim i As Integer
Dim mrc As ADODB.Recordset
Set mrc = New ADODB.Recordset
Set mrc = ExecuteSQL(txtsql1)

 If mrc.EOF = False Then
   mrc.MoveFirst
  
   
   With MSF1
    .Rows = 2
    .Row = 1
   
    Do While Not mrc.EOF

     .Rows = .Rows + 1
     For i = 1 To 2
       .TextMatrix(.Row, i) = mrc.Fields(i + 1)
     Next i
     .TextMatrix(.Row, 0) = mrc.Fields(0)
      .Row = .Row + 1
     mrc.MoveNext
    
       
    Loop
 End With
 
 End If
 
  Set mrc = Nothing
  Exit Sub
s2:
 frmxinxi.MSF1.Refresh
End Sub
Public Sub showdata2() '显示MSF2网格是内容
On Error GoTo s2

Dim i As Integer
Dim mrc As ADODB.Recordset
Set mrc = New ADODB.Recordset
Set mrc = ExecuteSQL(txtsql2)

 If mrc.EOF = False Then
   mrc.MoveFirst
  
   
   With MSF2
    .Rows = 2
    .Row = 1
   
    Do While Not mrc.EOF
     
     .Rows = .Rows + 1
     For i = 1 To 2
       .TextMatrix(.Row, i) = mrc.Fields(i + 1)
     Next i
     .TextMatrix(.Row, 0) = mrc.Fields(0)
      .Row = .Row + 1
     mrc.MoveNext
   
    Loop
 End With
 
 End If
 
  Set mrc = Nothing
  Exit Sub
s2:
 frmxinxi.MSF2.Refresh
End Sub


Private Sub Combo1_DropDown() '找出所有寝室号
Combo1.Clear
Dim mrc As ADODB.Recordset
Set mrc = New ADODB.Recordset
Dim strsql As String
strsql = "select distinct 寝室号 from bedchamber"
Set mrc = ExecuteSQL(strsql)
 If mrc.EOF = False Then
 mrc.MoveFirst
 Do While Not mrc.EOF
 Combo1.AddItem mrc.Fields(0)
 mrc.MoveNext
 Loop
 End If

End Sub

Private Sub Combo2_DropDown() '找出相应寝室号中的所有成员
Combo2.Clear
strsql = "select distinct 姓名 from bedchamber where 寝室号=" & Trim(Combo1.Text) & ""
Set mrc = ExecuteSQL(strsql)
 If mrc.EOF = False Then
 mrc.MoveFirst
 Do While Not mrc.EOF
 Combo2.AddItem mrc.Fields(0)
 mrc.MoveNext
 Loop
 End If

End Sub

Private Sub Command1_Click()
Dim mrc As ADODB.Recordset
Set mrc = New ADODB.Recordset
If c = 0 Then
 sss = MsgBox("请选择你要修改的项 !", vbExclamation + vbOKOnly, "警告")
      Text3.Visible = False
      Exit Sub
      End If
  If c = 1 Then '加分分数的类型
  
     If Text3.Text = "" Or IsNumeric(Text3.Text) = False Then
      sss = MsgBox("加减分分数要为数值型且不能为空 !", vbExclamation + vbOKOnly, "警告")
      Text3.Visible = False
      Exit Sub
      End If
   End If

If msf1fouse = True Then
 
   strsql = "select * from addnum where autoid=" & Trim(frmxinxi.MSF1.TextMatrix(r, 0)) & ""
   Set mrc = ExecuteSQL(strsql)
   mrc.Fields(c + 1) = Trim(Text3.Text)
   mrc.Update
   MSF1.TextMatrix(r, c) = Text3.Text
         Text3.Text = ""
         Text3.Visible = False
         msf1fouse = False
   End If
  If msf2fouse = True Then
    
   strsql = "select * from subnum where autoid=" & Trim(frmxinxi.MSF2.TextMatrix(r, 0)) & ""
   Set mrc = ExecuteSQL(strsql)
   mrc.Fields(c + 1) = Trim(Text3.Text)
      mrc.Update
   MSF2.TextMatrix(r, c) = Text3.Text
         Text3.Text = ""
         Text3.Visible = False
         msf2fouse = False
    End If
End Sub

Private Sub Command2_Click() '查找信息
If Text1.Visible = True Then '判断是不是查找窗口

Text1.Visible = False
Text2.Visible = False
Combo1.Visible = True
Combo2.Visible = True
Else                    '是查找窗口则进行查找
 strsql = "select id from bedchamber where 寝室号=" & Trim(frmxinxi.Combo1.Text) & " and 姓名='" & Trim(frmxinxi.Combo2.Text) & "'"
     Set mrc = ExecuteSQL(strsql)
     id = mrc.Fields(0)
     txtsql1 = "select * from addnum where addnum.id=" & Trim(id) & "  order by addnum.autoid"
     txtsql2 = "select * from subnum where subnum.id=" & Trim(id) & "  order by subnum.autoid "
   frmxinxi.showtitle1
   frmxinxi.showdata1
   frmxinxi.showtitle2
   frmxinxi.showdata2
End If
End Sub

Private Sub Command3_Click()
Unload Me
frmdefault.Show

End Sub

Private Sub Command4_Click()

If msf1fouse = True Then
   If MSF1.TextMatrix(MSF1.Row, 0) = "" Then
    sss = MsgBox("请选择要删除的记录 !", vbExclamation + vbOKOnly, "警告")
    Exit Sub
    Else
     If MsgBox("确定要删除该条记录吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then
   strsql = "delete from addnum where autoid=" & Trim(MSF1.TextMatrix(MSF1.Row, 0)) & ""
   ExecuteSQL (strsql)
   Else
   Exit Sub
   End If
   
   End If
Else
 If msf2fouse = True Then
  If MSF2.TextMatrix(MSF2.Row, 0) = "" Then
    sss = MsgBox("请选择要删除的记录 !", vbExclamation + vbOKOnly, "警告")
    Exit Sub
    Else
    If MsgBox("确定要删除该条记录吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then
strsql = "delete from subnum where autoid=" & Trim(MSF2.TextMatrix(MSF2.Row, 0)) & ""
ExecuteSQL (strsql)
Else
   Exit Sub
   End If
End If
End If
End If
If frmxinxi.Text1.Visible = True Then
 strsql = "select id from bedchamber where 寝室号=" & Trim(frmxinxi.Text1.Text) & " and 姓名='" & Trim(frmxinxi.Text2.Text) & "'"
     Set mrc = ExecuteSQL(strsql)
     id = mrc.Fields(0)
     End If
 If frmxinxi.Combo1.Visible = True Then
     strsql = "select id from bedchamber where 寝室号=" & Trim(frmxinxi.Combo1.Text) & " and 姓名='" & Trim(frmxinxi.Combo2.Text) & "'"
     Set mrc = ExecuteSQL(strsql)
     id = mrc.Fields(0)
     End If
     txtsql1 = "select * from addnum where addnum.id=" & Trim(id) & "  order by addnum.autoid"
     txtsql2 = "select * from subnum where subnum.id=" & Trim(id) & "  order by subnum.autoid "
frmxinxi.showtitle1
frmxinxi.showdata1
frmxinxi.showtitle2
frmxinxi.showdata2

End Sub

Private Sub Command5_Click()
Dim mrc As ADODB.Recordset
Set mrc = New ADODB.Recordset
If frmxinxi.Text1.Visible = True Then
Label5.Caption = Trim(frmxinxi.Text1.Text) & "寝室的" & Trim(frmxinxi.Text2.Text) & "的情况为:"

 strsql = "select id from bedchamber where 寝室号=" & Trim(frmxinxi.Text1.Text) & " and 姓名='" & Trim(frmxinxi.Text2.Text) & "'"
     Set mrc = ExecuteSQL(strsql)
     id = mrc.Fields(0)
     End If
 If frmxinxi.Combo1.Visible = True Then
    Label5.Caption = Trim(frmxinxi.Combo1.Text) & "寝室的" & Trim(frmxinxi.Combo2.Text) & "的情况为:"

     strsql = "select id from bedchamber where 寝室号=" & Trim(frmxinxi.Combo1.Text) & " and 姓名='" & Trim(frmxinxi.Combo2.Text) & "'"
     Set mrc = ExecuteSQL(strsql)
     id = mrc.Fields(0)
     End If
 strsql = "select sum(加分分数) from addnum where id=" & Trim(id) & ""
     Set mrc = ExecuteSQL(strsql)
    Label3.Caption = "加分分数为:" & mrc.Fields(0) & "分"
     strsql = "select sum(减分分数) from subnum where id=" & Trim(id) & ""
     Set mrc = ExecuteSQL(strsql)
    Label4.Caption = "减分分数为:" & mrc.Fields(0) & "分"

  
End Sub

Private Sub Form_Load()
msf1fouse = False
msf2fouse = False
End Sub

Private Sub MSF1_Click()
msf1fouse = True
msf2fouse = False
Text3.Visible = False
End Sub

Private Sub MSF1_DblClick()
msf1fouse = True
msf2fouse = False
With MSF1
 If frmxinxi.MSF1.TextMatrix(.Row, 0) = "" Then
      sss = MsgBox("请选择你要修改的项 !", vbExclamation + vbOKOnly, "警告")
      Text3.Visible = False
      Exit Sub
   End If
r = .Row
c = .Col
Text3.Top = .Top + .RowPos(r) + 15
Text3.Left = .Left + .ColPos(c) + 25
Text3.Width = .ColWidth(c)
Text3.Height = .RowHeight(r) - 15
Text3.Text = .Text
    Text3.SelStart = 0
   Text3.SelLength = Len(Text3.Text)
Text3.Visible = True
Text3.SetFocus

End With

End Sub



Private Sub MSF2_Click()
msf2fouse = True
msf1fouse = False
Text3.Visible = False
End Sub

Private Sub MSF2_DblClick()
msf2fouse = True
msf1fouse = False

With MSF2
 If frmxinxi.MSF2.TextMatrix(.Row, 0) = "" Then
      sss = MsgBox("请选择你要修改的项 !", vbExclamation + vbOKOnly, "警告")
       Text3.Visible = False
      Exit Sub
   End If
r = .Row
c = .Col

 
Text3.Top = .Top + .RowPos(r) + 15
Text3.Left = .Left + .ColPos(c) + 25
Text3.Width = .ColWidth(c)
Text3.Height = .RowHeight(r) - 15
Text3.Text = .Text
    Text3.SelStart = 0
   Text3.SelLength = Len(Text3.Text)
Text3.Visible = True
Text3.SetFocus

End With

End Sub
--------------------编程问答-------------------- 这么长的代码,估计没什么人愿意手工帮你看。
建议你先自己运行一下,看哪一句出错。 --------------------编程问答-------------------- --------------------编程问答-------------------- 我也知道很长啦,可是还是麻烦哪位vb水平较高的大哥大姐们帮帮忙啦,小妹在此真心谢过啦! --------------------编程问答-------------------- 你哪句出问题了?

你可以断点debug下 --------------------编程问答-------------------- 同意楼上的。debug --------------------编程问答--------------------
引用 4 楼 clear_zero 的回复:
你哪句出问题了?

你可以断点debug下

看着太累,还是请lz单步调试,看哪句出错 --------------------编程问答-------------------- 这种错误一般是控件被删除了,不过楼主最好把运行时出错的那句贴出来
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,