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

新手求助!模仿书本做个系统,但是现在遇到一个问题,无法添加成绩

我现在初学习VB,模仿别人做个系统,但是现在遇到一个问题,无法添加成绩!
代码如下,望哪位高手指导指导!



Dim ADOS As Recordset
Dim ados1 As Recordset
Dim ar As Recordset
Dim Y As Integer
Dim B As Recordset
Dim WithEvents adoPrimaryRS As Recordset '定义一个记录变量
Dim mbChangedByCode As Boolean
Dim mvBookMark As Variant '设置标签
Dim mbEditFlag As Boolean '设置是否按下编辑按钮
Dim mbAddNewFlag As Boolean '是否按下添加按钮
Dim mbDataChanged As Boolean
Dim Str1 As String
Dim Str2 As String
Private Sub SetButtons(bVal As Boolean)
  cmdAdd.Visible = bVal
  cmdEdit.Visible = bVal
  cmdUpdate.Visible = Not bVal
  cmdCancel.Visible = Not bVal
  cmdDelete.Visible = bVal
  cmdRefresh.Visible = bVal
  cmdNext.Enabled = bVal
  cmdFirst.Enabled = bVal
  cmdLast.Enabled = bVal
  cmdPrevious.Enabled = bVal
End Sub


Private Sub adoPrimaryRS_WillChangeField(ByVal cFields As Long, ByVal Fields As Variant, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

End Sub

Private Sub cmdUpdata_Click()
If Option1 Then
Dim ADOS3 As Recordset
Set ADOS3 = New Recordset
ADOS3.Open "select 学分 from CB where 课程号=" & "'" & Combo1.Text & "'", db, adOpenStatic, adLockOptimistic
Set Text3.DataSource = ADOS3
Text3.DataField = "学分"
If Val(txtFields(2).Text) >= 60 Then
 txtFields(3).Text = Text3.Text
 Else
 txtFields(3).Text = 0
End If

End If

On Error Resume Next
ar.MoveNext
Set DataGrid1.DataSource = ar
 DataGrid1.Refresh
 txtFields(2).SelLength = Len(txtFields(2).Text)
 txtFields(2).SetFocus
 
End Sub

Private Sub Combo1_Change()
Set ados1 = New Recordset
  ados1.Open "select 课程名 from CB where 课程号=" & "'" & Combo1.Text & "'", db, adOpenStatic, adLockOptimistic
   Set Text1.DataSource = ados1
  Text1.DataField = "课程名"
  ados1.Close
End Sub

Private Sub Combo1_Click()
  Set ados1 = New Recordset
  ados1.Open "select 课程名 from CB where 课程号=" & "'" & Combo1.Text & "'", db, adOpenStatic, adLockOptimistic
   Set Text1.DataSource = ados1
  Text1.DataField = "课程名"
  ados1.Close
  
End Sub

Private Sub Combo2_Change()
Set ADOS = New Recordset
  ADOS.Open "select 班级名 from CC where 班级号=" & "'" & Combo2.Text & "'", db, adOpenStatic, adLockOptimistic
  Set Text2.DataSource = ADOS
  Text2.DataField = "班级名"
  ADOS.Close
End Sub

Private Sub Combo2_Click()
  Set ADOS = New Recordset
  ADOS.Open "select 班级名 from CC where 班级号=" & "'" & Combo2.Text & "'", db, adOpenStatic, adLockOptimistic
  Set Text2.DataSource = ADOS
  Text2.DataField = "班级名"
  ADOS.Close
End Sub

Private Sub cmdFirst_Click()
  On Error GoTo GoFirstError

  ar.MoveFirst
  mbDataChanged = False

  Exit Sub

GoFirstError:
  MsgBox Err.Description
End Sub

Private Sub cmdLast_Click()
  On Error GoTo GoLastError

  ar.MoveLast
  mbDataChanged = False

  Exit Sub

GoLastError:
  MsgBox Err.Description
End Sub

Private Sub cmdNext_Click()
  On Error GoTo GoNextError

  If Not ar.EOF Then ar.MoveNext
  If ar.EOF And ar.RecordCount > 0 Then
    Beep
     '已到最后返回
    ar.MoveLast
  End If
  '显示当前记录
  mbDataChanged = False

  Exit Sub
GoNextError:
  MsgBox Err.Description
End Sub

Private Sub cmdPrevious_Click()
  On Error GoTo GoPrevError

  If Not ar.BOF Then ar.MovePrevious
  If ar.BOF And ar.RecordCount > 0 Then
    Beep
    '已到最后返回
    ar.MoveFirst
  End If
  '显示当前记录
  mbDataChanged = False

  Exit Sub

GoPrevError:
  MsgBox Err.Description
End Sub

Private Sub Command2_Click()

Dim BB As Recordset
Set BB = New Recordset
Set DataGrid1.DataSource = BB
DataGrid1.Visible = False

End Sub



Private Sub Command1_Click()
txtFields(2).SetFocus
Dim i As Integer
Dim SQLS As String
If Option1 Then
SQLS = "'" & Combo1.Text & "'" & " And left(SC.学号,7) = " & "'" & Combo2.Text & "'" & "and 类型='必修'"
Else
SQLS = "'" & Combo1.Text & "'" & "and 类型='选修'"

End If
 Set ar = New Recordset
    ar.Open "select SC.课程号,课程名,类型,班级名,SC.学号,姓名,成绩,SC.学分 from SC,CB,SB,CC  where SB.班级号=CC.班级号 and SB.学号=SC.学号 and  SC.课程号=CB.课程号 and SC.课程号=" & SQLS & "order by SC.学号", db, adOpenStatic, adLockOptimistic
     
     Set DataGrid1.DataSource = ar
    For i = 1 To 3
     Set txtFields(i).DataSource = ar
    Next i
DataGrid1.Visible = True
  
End Sub




Private Sub Command3_Click()
On Error GoTo AddErr
  
  Call T_NL(txtFields) '对文本框解锁,使之能被编辑
  txtFields(1).Enabled = True
  txtFields(2).Enabled = True
  
  Stu = True
  With adoPrimaryRS
    If Not (.BOF And .EOF) Then
      mvBookMark = .Bookmark
    End If
    .AddNew
    lblStatus.Caption = "添加记录"
    mbAddNewFlag = True
    SetButtons False
  End With
Text6.Text = ""
  Exit Sub
AddErr:
  MsgBox Err.Description
End Sub

Private Sub Command4_Click()

End Sub

Private Sub Command5_Click()
Unload Me

End Sub

Private Sub Form_Load()
Call E_F
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call E_T
On Error Resume Next
ar.Close
ADOS.Close
ados1.Close
B.Close
ADOS3.Close


End Sub

Private Sub lblLabels_Click(Index As Integer)

End Sub

Private Sub Option1_Click()
Combo2.Enabled = True
End Sub

Private Sub Option2_Click()
Combo2.Enabled = False
End Sub

补充:VB ,  控件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,