以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  打开窗体报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107688)

--  作者:裴保民
--  发布时间:2017/10/7 21:42:00
--  打开窗体报错

我在入库窗体的 AfterLoad事件中写了如下代码,如果数据库中的数据时空时运行窗体时报一下错误怎么处理呀?

Dim cmb As WinForm.ComboBox =  Forms("POS机批量入库窗体").Controls("suoshucangkuCombo")
cmb.ComboList = DataTables("仓库资料").GetComboListString("仓库名称")
cmb.SelectedIndex = 1
cmb= Forms("POS机批量入库窗体").Controls("jijuxinghaoCombo")
cmb.ComboList = DataTables("pos机信息表").GetComboListString("机具型号")
cmb.SelectedIndex = 1
cmb = Forms("POS机批量入库窗体").Controls("changjiamingchengCombo")
cmb.ComboList = DataTables("POS机信息表").GetComboListString("厂家名称")
cmb.SelectedIndex = 5

 

 


 


此主题相关图片如下:4444.jpg
按此在新窗口浏览图片

此主题相关图片如下:5555.jpg
按此在新窗口浏览图片

--  作者:有点甜
--  发布时间:2017/10/7 21:44:00
--  

当你下拉列表的值少于1个的时候,你不能写 cmb.SelectedIndex = 0

 

同理,当你下拉列表的值少于2个的时候,你不能写 cmb.SelectedIndex = 1


--  作者:裴保民
--  发布时间:2017/10/7 22:21:00
--  
怎么设置一下呢?当有数据时想让cmb.SelectedIndex  指定一个特定的位置,如果没有数据就指定到0上
[此贴子已经被作者于2017/10/7 22:21:15编辑过]

--  作者:有点甜
--  发布时间:2017/10/7 23:45:00
--  
Dim cmb As WinForm.ComboBox =  Forms("POS机批量入库窗体").Controls("suoshucangkuCombo")
cmb.ComboList = DataTables("仓库资料").GetComboListString("仓库名称")
If cmb.Items.count >= 2 Then
    cmb.SelectedIndex = 1
End If
cmb= Forms("POS机批量入库窗体").Controls("jijuxinghaoCombo")
cmb.ComboList = DataTables("pos机信息表").GetComboListString("机具型号")
If cmb.Items.count >= 2 Then
    cmb.SelectedIndex = 1
End If
cmb = Forms("POS机批量入库窗体").Controls("changjiamingchengCombo")
cmb.ComboList = DataTables("POS机信息表").GetComboListString("厂家名称")
If cmb.Items.count >= 6 Then
    cmb.SelectedIndex = 5
ElseIf cmb.Items.count >= 1 Then
    cmb.SelectedIndex = 0
End If
[此贴子已经被作者于2017/10/7 23:45:16编辑过]