有劳大侠们相助!!最近做一个小练习,做到一大半了遇到一些困难,只好过来问问大虾们(附加了我的测试文件test5.rar和图示),看不到图的大虾请下载Test5pic.rar,里面的图片依次根据我下面写的5步排列,1-3步我都完成了,4,5部分别有些小问题. test5.rar是我写的程序,麻烦大虾们帮忙看看问题出在何处?
废话不多说了,直接上程序,这个简单的程序中我遇到2个难点,后面会提出来:我想写的程序是这样的:
1. 有3个数据列,物品代码,数量,和运送地点,其中物品代码不是唯一的,比如311重复了2次,如下图1
2. 点击运行程式之后开启检索和修改窗口(如下图2)。
3. 在物品代码处输入数字后上方的列表框会自动更新为与检索有关的物品(如下图3),到这一步都没问题。大家注意看我现在检索311时出来2条相关的信息,(窗口下方的数量和运送地点是label,我用的label.caption)这时候系统在我设置的label标签上默认显示的是第一个311的数量“1” 和运送地点为“2”。4. 如下图4,现在我选择第二个311,数量应该为2,运送地点应该是1,但是大家注意看窗口下方的label(我用红色框起来了),却还是数量1,运送地点2,还是默认的第一个311物品的属性。 
问题1:怎么修复这个问题?当我选择第二个311时,如何让label自动编程第二个311的数量和地点?5.如下图5,最后一步了,当我双击第二个311时,我希望的是在开启的新窗口中,电脑能在对应的窗口自动录入我所双击的货物311的数量和地点 ,如图应该依次是物品代码窗口311,数量窗口2,运送地点窗口1。
问题2:请问这个如何做到?我现在只能做到双击第二个311后自动录入物品代码311,后面两项(数量2和运送地点1)都不会自己录入对应的数据。我写的程序的附件位置: http://pickup.mofile.com/8733660588701577
文中图片下载位置: http://pickup.mofile.com/5192762923468112 谢谢相助!!

解决方案 »

  1.   

    有劳大侠们相助!! 最近做一个小练习,做到一大半了遇到一些困难,只好过来问问大虾们(附加了我的测试文件test5.rar和图示),看不到图的大虾请下载Test5pic.rar,里面的图片依次根据我下面写的5步排列,1-3步我都完成了,4,5部分别有些小问题. test5.rar是我写的程序,麻烦大虾们帮忙看看问题出在何处? 
    废话不多说了,直接上程序,这个简单的程序中我遇到2个难点,后面会提出来: 我想写的程序是这样的: 
    1. 有3个数据列,物品代码,数量,和运送地点,其中物品代码不是唯一的,比如311重复了2次,如下图1 
     2. 点击运行程式之后开启检索和修改窗口(如下图2)。 
     
    3. 在物品代码处输入数字后上方的列表框会自动更新为与检索有关的物品(如下图3),到这一步都没问题。大家注意看我现在检索311时出来2条相关的信息,(窗口下方的数量和运送地点是label,我用的label.caption)这时候系统在我设置的label标签上默认显示的是第一个311的数量“1” 和运送地点为“2”。 4. 如下图4,现在我选择第二个311,数量应该为2,运送地点应该是1,但是大家注意看窗口下方的label(我用红色框起来了),却还是数量1,运送地点2,还是默认的第一个311物品的属性。 
    问题1:怎么修复这个问题?当我选择第二个311时,如何让label自动编程第二个311的数量和地点? 
     
    5.如下图5,最后一步了,当我双击第二个311时,我希望的是在开启的新窗口中,电脑能在对应的窗口自动录入我所双击的货物311的数量和地点 ,如图应该依次是物品代码窗口311,数量窗口2,运送地点窗口1。 
    问题2:请问这个如何做到?我现在只能做到双击第二个311后自动录入物品代码311,后面两项(数量2和运送地点1)都不会自己录入对应的数据。 我写的程序的附件位置: http://pickup.mofile.com/8733660588701577 
    文中图片下载位置: http://pickup.mofile.com/5192762923468112 
    谢谢相助!!
      

  2.   

    下载有问题,变成setup.exe了表格用什么控件实现的?
      

  3.   

    两个问题其实是一个问题,row和col的控制有问题,修改row和col的值就可以了
      

  4.   

    如果你要检索311应该修改哪条就必须把三个字段的值作为检索条件(你要保证不会出现311两条一样的记录)
    这样做存在很大的隐患,个人认为。我觉得一个比较好的方法就是前面加个ID列(如果可以修改表结构的话),顺序编号就可以了。这样就能保证唯一的索引值。修改的时候只要查找ID就可以了。不知道我这么想对不对。
      

  5.   

    问题1
    Private Sub txtFind_Change()
        '只有手工输入引起的变更(txtFind 为当前焦点控件)才需要查找'
        If Not Me.ActiveControl Is txtFind Then Exit Sub
        ...
    End SubPrivate Sub lbxData_Click()
        Me.txtFind.Value = Me.lbxData.Value
        '单击时直接按索引取值'
        Me.lblQuantity.Caption = lbxData.List(lbxData.ListIndex, 1)
        Me.lblLocation.Caption = lbxData.List(lbxData.ListIndex, 2)
    End Sub问题2
    Private Sub lbxData_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
        ChangeInvFrm.ItemNumberBox = txtFind.Text
        '双击击时将值传递给编辑画面'
        ChangeInvFrm.QuantityBox = lblQuantity.Caption
        ChangeInvFrm.LocationList = lblLocation.Caption    ChangeInvFrm.Show
    End Sub
      

  6.   

    你可以建议微软不要将 ListBox 的项目选择事件叫做 Click。