改为:
Private Sub Input_Text_KeyPress(KeyAscii As Integer)  If KeyAscii = 13 Then    '按enter键进入下一列
   Do While MSFlexGrid1.Col = 4 Or MSFlexGrid1.Col = 6
   If Not IsNumeric(Input_Text.Text) And Not Trim(Input_Text.Text) = "" Then
      X = MsgBox("只能输入数字。", vbQuestion, "警报")
      Input_Text.SelStart = Len(Input_Text.Text)
      Input_Text.SelLength = 0
      Exit Do
  else
     exit do
  End If
  Loop
Move_Next_Col
MSFlexGrid1.SetFocus
End If
End Sub

解决方案 »

  1.   

    其实用不着用do    loop 循环,用if语句就行了
      

  2.   

    在MSFlexGrid1的第4和第6列输入的是数字,就死机?这问题解决了!
    但不为数字,显示:只能输入数字,这消息!光标移到下一列去了,我想光标就在原处,输入的是数字后,再下移!这问题还未解决!
     antidongaman(dzq) 帮人帮到底!
    在哪里可给你加分?我去给你加分! 
      
      

  3.   

    把第一个Exit Do改为Exit Sub。
    我对加分也不太懂,好像是在"问题标题"后面的"管理"。
      

  4.   

    把第一个Exit Do改为Exit Sub不行吗?还有什么问题?
      

  5.   

    <<list问题。急!!急!!!!!!>>
      

  6.   

    我将List的style设为1—checkbox
    我往你添加数据,代码如下:
    Private Sub Form_Load()
    Me.Width = 12000
    Me.Height = 8600
    Me.Top = 0
    Me.Left = 0
    Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Password=ets2001;Persist Security Info=True;User ID=sa;Initial Catalog=ETS;Data Source=" + Server_Name
    Adodc1.RecordSource = "SELECT supplier_register.order_id,ITEM,supplier_register.forwarder_date,P_N,ALT_P_N,DESC_Txt,real_qty,unit,unit_price,total_price FROM supplier_register,supplier_order WHERE supplier_register.Client_Code='" + M_Client_Code + "' AND supplier_register.order_id=supplier_order.order_id"
    Adodc1.Refresh
    Do While Not Adodc1.Recordset.EOF
        List1_AddItem = List1_AddItem + Left(LTrim(Str(Adodc1.Recordset!Item)) + Space(6), 6)
        List1_AddItem = List1_AddItem + Left(IIf(IsNull(Adodc1.Recordset!P_N), "", Adodc1.Recordset!P_N + Space(10)), 15)
        List1_AddItem = List1_AddItem + Left(IIf(IsNull(Adodc1.Recordset!ALT_P_N), "", Adodc1.Recordset!ALT_P_N) + Space(10), 15)
        List1_AddItem = List1_AddItem + Left(IIf(IsNull(Adodc1.Recordset!Desc_txt), "", Adodc1.Recordset!Desc_txt) + Space(10), 10)
        List1_AddItem = List1_AddItem + Left(IIf(IsNull(Adodc1.Recordset!real_qty), "", Adodc1.Recordset!real_qty) + Space(10), 10)
        List1_AddItem = List1_AddItem + Left(IIf(IsNull(Adodc1.Recordset!unit), "", Adodc1.Recordset!unit) + Space(10), 10)
        List1_AddItem = List1_AddItem + Left(IIf(IsNull(Adodc1.Recordset!unit_price), "", Adodc1.Recordset!unit_price) + Space(10), 10)
        List1_AddItem = List1_AddItem + Left(IIf(IsNull(Adodc1.Recordset!total_price), "", Adodc1.Recordset!total_price) + Space(6), 10)
        List1.AddItem List1_AddItem
        Adodc1.Recordset.MoveNext
    Loop
    Label1(0).Caption = "ITEM    件号        替换件号        规格      实发数量    单位      单价      总价  "
    End  sub 
    我这样写有个问题,就是加的记录都在一整行,而不换行!
    我想:把一行记录加完后,再换行加第二行记录!如
    ITEM  件号  替换件号  规格      实发数量    单位  单价    总价
    1      j1    j2      small    30        个    4        120
    2        s1    s2        small    33        个    3        99
    3 ..............
    4  ............
    请问怎写?
      

  7.   

    要这样的样话,你干脆用FlexGrid算了用它可以整齐的显示你想要的。