VB 跪求高手指教!!!!!
有这么一段代码:Private Sub LoadTable() ''选择数据表
On Error GoTo Err
Dim strsql As String
strsql = "select * from " & Trim(Combo1.Text) & " where 机器号='" & CurrentLvwText & "'"
If rs.State Then rs.Close
rs.Open strsql, CN, adOpenStatic, adLockOptimistic
Dim i As Integer
Dim k As Integer
k = Txt.Count
For i = 1 To 20
If k = 1 Then
Load Txt(i)
Load Lbl(i)
End If
Txt(i).Visible = False
Lbl(i).Visible = False
Next i
For i = 1 To rs.Fields.Count
Txt(i).Visible = True
Lbl(i).Visible = True
Lbl(i).Caption = Trim(rs.Fields(i - 1).Name)
Txt(i).Text = ""
If i Mod 2 = 1 Then
Lbl(i).Left = 50
Txt(i).Left = 1250
Else
Lbl(i).Left = 4420
Txt(i).Left = 5620
End If
Lbl(i).Top = 120 + Int((i - 1) / 2) * 500 + 120
Txt(i).Top = Lbl(i).Top - 120
Next i
Txt(0).Text = rs.Fields.Count ''用于记录字段数(列)
Txt(1).Text = CurrentLvwText
Txt(2).Text = Now ' DateChange(Date) & " " & Time
Txt(3).Text = PaData(1)
Txt(4).Text = PaData(3)
Txt(5).Text = "0000"
Txt(8).Text = "工作中"
'If Not rs.EOF Then
'' rs.MoveLast
' For i = 0 To Val(Txt(0).Text) - 1
' If Not IsNull(rs.Fields(i)) Then
' Txt(i + 1) = Trim(rs.Fields(i))
' Else
' Txt(i + 1) = ""
' End If
' Next i
'End If
Exit Sub
Err:
MsgBox Err.Description, vbInformation + vbOKOnly, "系统提示"
End Sub
Private Sub Combo2_Click() '''
Txt(CurrentIndex).Text = Trim(Combo2.Text)
Combo2.Visible = False
On Error GoTo Err
Exit Sub
Err:
MsgBox Err.Description, vbInformation + vbOKOnly, "系统提示"
End Sub
Private Sub Command1_Click() ''修改
nModeSys = 1
cmdRegSave.Enabled = True
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Command3_Click() ''确定
For i = 0 To Val(Txt(0).Text) - 1
If Trim(Txt(i + 1).Text) = " " Then
rs.Fields(i).Value = " "
Else
rs.Fields(i).Value = Trim(Txt(i + 1).Text)
End If
Next i
rs.Update
Call Mainfrm.InitInfo
Unload Me
End Sub
Private Sub Form_Activate()
Txt(5).SetFocus
End Sub
Private Sub Form_Load()
Label2.Caption = strTableName & "管理:"
Mainfrm.StatusBar1.Panels(1).Text = strTableName
'Dim g As Integer
'Dim b As Integer
'Dim r As Integer
'
'Randomize
'r = 125 + Rnd * 125
'Randomize
'g = 125 + Rnd * 125
'Randomize
'b = 125 + Rnd * 125
'
'Picture1.BackColor = RGB(r, g, b)
'Picture2.BackColor = RGB(b, r, g)
'Frame2.BackColor = RGB(g, b, r)
Combo1.Text = strTableName
Call LoadTable
End Sub
Private Sub Txt_Click(Index As Integer)
''''判断是否有字典字段
CurrentIndex = Index
DTPicker1.Visible = False
Combo2.Visible = False
Exit Sub
Err:
MsgBox Err.Description, vbInformation + vbOKOnly, "系统提示"
End Sub
Private Sub Txt_GotFocus(Index As Integer)
If Index = 5 Then
Txt(Index).SelStart = 0
Txt(Index).SelLength = Len(Txt(Index).Text)
End If
End Sub
Private Sub Txt_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
Call Command3_Click
End If
End Sub
Private Sub Txt_LostFocus(Index As Integer) ''
If Index = 5 Then
If Trim(Txt(Index).Text) = "" Or Trim(Txt(Index).Text) = "0000" Then Exit Sub
Dim rst As New ADODB.Recordset
rst.Open "select 姓名,身份证号 from 会员信息表 where 会员编号 ='" & Trim(Txt(Index).Text) & "'", CN, adOpenStatic, adLockOptimistic
If Not rst.EOF Then
If Not IsNull(rst.Fields(0)) Then Txt(Index + 1).Text = Trim(rst.Fields(0))
If Not IsNull(rst.Fields(1)) Then Txt(Index + 2).Text = Trim(rst.Fields(1))
Txt(3).Text = PaData(0)
Else
MsgBox "没有此会员编号!"
Txt(Index).Text = ""
Txt(Index).SetFocus
End If
End If
End Sub
运行后出错:多步olb db操作产生错误,如果可能请检查每个OLB DB状态值,没有工作被完成。
调试时错误指向:rs.Fields(i).Value = Trim(Txt(i + 1).Text) 这一句
错误为:rs.Fields(i).Value = NULL i = 1
求高手指教!!!不胜感激!!
--------------------编程问答-------------------- 看看数据库该字段的属性 --------------------编程问答-------------------- 你的表是不是设置为不允许为空啊~~~,或者是你给字段写入的值的类型不对~~~ --------------------编程问答-------------------- 表设计是允许为空的,值的类型都是用char 感觉没问题啊 况且一开始是可以运行的 后来不知道怎么的就运行不了。。。郁闷 --------------------编程问答-------------------- 我找到问题所在了 无限感谢!!!! --------------------编程问答-------------------- 动不动就下跪,人格怎么那么贱呢? --------------------编程问答-------------------- 我也在弄这个,倍感无语啊。。。头疼 --------------------编程问答--------------------
补充:VB , 基础类