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

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 ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,