新手求助!模仿书本做个系统,但是现在遇到一个问题,无法添加成绩
我现在初学习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 , 控件