none
if后面为假怎么还执行t呢? RRS feed

  • 问题

  • 代码:

    Private Sub Command10_Click()
        If Not RsTran.EOF Then
            RsTran.MoveNext
            Stock.Text1.Text = RsTran.Fields("Item")
            Stock.Text2.Text = RsTran.Fields("ItemName")
            Stock.Text3.Text = RsTran.Fields("ItemName")
            Stock.Text4.Text = RsTran.Fields("InvoName")
            Stock.Combo1.Text = RsTran.Fields("Unit")
            Stock.Text5.Text = RsTran.Fields("ItemClass")
            Stock.Text6.Text = RsTran.Fields("JiHao")
            Stock.Text7.Text = RsTran.Fields("TuHao")

    运行出错时如图http://hi.baidu.com/mqlbeyond/album/item/caf0ef091659e9b9d0581b0f.html

    其中RsTran.EOF为True,那么Not一下不就为False了吗?那代码怎么还执行呢,所以我的代码老是在这个地方出错。请教一下看看,谢谢!

    2010年5月28日 2:03

答案

  • 如果你需要读取是最后一条记录:

    While (Not RsTran.EOF)

    RsTran.MoveNext

    End While
    Stock.Text1.Text = RsTran.Fields("Item")
    Stock.Text2.Text = RsTran.Fields("ItemName")
    Stock.Text3.Text = RsTran.Fields("ItemName")
    Stock.Text4.Text = RsTran.Fields("InvoName")
    Stock.Combo1.Text = RsTran.Fields("Unit")
    Stock.Text5.Text = RsTran.Fields("ItemClass")
    Stock.Text6.Text = RsTran.Fields("JiHao")
    Stock.Text7.Text = RsTran.Fields("TuHao")

    另外,如果你是循环赋值,应该务必这样做:

    While (Not RsTran.EOF)

    Stock.Text1.Text = RsTran.Fields("Item")
    Stock.Text2.Text = RsTran.Fields("ItemName")
    Stock.Text3.Text = RsTran.Fields("ItemName")
    Stock.Text4.Text = RsTran.Fields("InvoName")
    Stock.Combo1.Text = RsTran.Fields("Unit")
    Stock.Text5.Text = RsTran.Fields("ItemClass")
    Stock.Text6.Text = RsTran.Fields("JiHao")
    Stock.Text7.Text = RsTran.Fields("TuHao")

    RsTran.MoveNext

    End While


    如果你有其它意见或私下交流,请点击此处
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年5月4日 6:02
    版主

全部回复

  • 2010年5月28日 3:41
    版主
  • 你好!

         你需要用End If把需要特定条件才执行的语句括起来,不然If的作用范围只是紧跟他的那一条语句而已:

    Private Sub Command10_Click()
        If Not RsTran.EOF Then
            RsTran.MoveNext
            Stock.Text1.Text = RsTran.Fields("Item")
            Stock.Text2.Text = RsTran.Fields("ItemName")
            Stock.Text3.Text = RsTran.Fields("ItemName")
            Stock.Text4.Text = RsTran.Fields("InvoName")
            Stock.Combo1.Text = RsTran.Fields("Unit")
            Stock.Text5.Text = RsTran.Fields("ItemClass")
            Stock.Text6.Text = RsTran.Fields("JiHao")
            Stock.Text7.Text = RsTran.Fields("TuHao")

       End If

     


    周雪峰
    2010年5月28日 4:04
    版主
  • 有end if 的,我图没贴全。
    2010年5月28日 7:13
  • Dim flag As Boolen = Not RsTran.EOF

    If flag Then

    End If

    你试试这样,调试一下看看还会不会走到If里面


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework!
    2010年6月3日 8:05
  • 是不是有代码爱不停的修改rstran, 我看到不是在click里打开的
    http://feiyun0112.cnblogs.com/
    2010年6月4日 1:06
    版主
  • 如果你需要读取是最后一条记录:

    While (Not RsTran.EOF)

    RsTran.MoveNext

    End While
            Stock.Text1.Text = RsTran.Fields("Item")
    Stock.Text2.Text = RsTran.Fields("ItemName")
    Stock.Text3.Text = RsTran.Fields("ItemName")
    Stock.Text4.Text = RsTran.Fields("InvoName")
    Stock.Combo1.Text = RsTran.Fields("Unit")
    Stock.Text5.Text = RsTran.Fields("ItemClass")
    Stock.Text6.Text = RsTran.Fields("JiHao")
    Stock.Text7.Text = RsTran.Fields("TuHao")


    给我反馈
    获得荣誉:
    2011年5月3日 8:14
    版主
  • 如果你需要读取是最后一条记录:

    While (Not RsTran.EOF)

    RsTran.MoveNext

    End While
    Stock.Text1.Text = RsTran.Fields("Item")
    Stock.Text2.Text = RsTran.Fields("ItemName")
    Stock.Text3.Text = RsTran.Fields("ItemName")
    Stock.Text4.Text = RsTran.Fields("InvoName")
    Stock.Combo1.Text = RsTran.Fields("Unit")
    Stock.Text5.Text = RsTran.Fields("ItemClass")
    Stock.Text6.Text = RsTran.Fields("JiHao")
    Stock.Text7.Text = RsTran.Fields("TuHao")

    另外,如果你是循环赋值,应该务必这样做:

    While (Not RsTran.EOF)

    Stock.Text1.Text = RsTran.Fields("Item")
    Stock.Text2.Text = RsTran.Fields("ItemName")
    Stock.Text3.Text = RsTran.Fields("ItemName")
    Stock.Text4.Text = RsTran.Fields("InvoName")
    Stock.Combo1.Text = RsTran.Fields("Unit")
    Stock.Text5.Text = RsTran.Fields("ItemClass")
    Stock.Text6.Text = RsTran.Fields("JiHao")
    Stock.Text7.Text = RsTran.Fields("TuHao")

    RsTran.MoveNext

    End While


    2011年5月4日 1:12
    版主
  • 如果你需要读取是最后一条记录:

    While (Not RsTran.EOF)

    RsTran.MoveNext

    End While
    Stock.Text1.Text = RsTran.Fields("Item")
    Stock.Text2.Text = RsTran.Fields("ItemName")
    Stock.Text3.Text = RsTran.Fields("ItemName")
    Stock.Text4.Text = RsTran.Fields("InvoName")
    Stock.Combo1.Text = RsTran.Fields("Unit")
    Stock.Text5.Text = RsTran.Fields("ItemClass")
    Stock.Text6.Text = RsTran.Fields("JiHao")
    Stock.Text7.Text = RsTran.Fields("TuHao")

    另外,如果你是循环赋值,应该务必这样做:

    While (Not RsTran.EOF)

    Stock.Text1.Text = RsTran.Fields("Item")
    Stock.Text2.Text = RsTran.Fields("ItemName")
    Stock.Text3.Text = RsTran.Fields("ItemName")
    Stock.Text4.Text = RsTran.Fields("InvoName")
    Stock.Combo1.Text = RsTran.Fields("Unit")
    Stock.Text5.Text = RsTran.Fields("ItemClass")
    Stock.Text6.Text = RsTran.Fields("JiHao")
    Stock.Text7.Text = RsTran.Fields("TuHao")

    RsTran.MoveNext

    End While


    如果你有其它意见或私下交流,请点击此处
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年5月4日 6:02
    版主