excel - 使用列表框中的数据填充 Excel 文本框表单,显示访问表中的数据 - 错误 381
问题描述
我有一个 Excel 表单中的列表框,它仅显示 4 个字段(Código、Descripción、UnidDistr、Precio)的访问表中的 1 个字段(Descripción)。在列表框中的选定数据上按 Enter 应该会将 4 个字段填充到 4 个文本框中,但它只复制代码和描述字段,然后显示错误 381。有人知道为什么吗?
填充列表框的代码是:(注意:当我使用excel表格时有效)
Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
With ListBox1
Txt_Codigo.Value = .List(.ListIndex, 0)
Txt_Descripción.Value = .List(.ListIndex, 1)
Txt_Unid_Distr.Value = .List(.ListIndex, 2) '-------> Error - 381
Txt_Precio_Lista.Value = .List(.ListIndex, 3)
End With
End If
End Sub
列表框属性:
.ColumnCount = Rs.Fields.Count
.ColumnWidths = "0;120;0;0"
填充列表框:
Rs.MoveFirst
i = 0
With Form_Buscar_Productos.ListBox1
Do
.AddItem
.List(i, 0) = Rs![CÓDIGO]
.List(i, 1) = Rs![DESCRIPCIÓN]
.List(i, 2) = Rs![UNIDDISTR]
.List(i, 3) = Rs![PRECIO]
i = i + 1
Rs.MoveNext
Loop Until Rs.EOF
End With
解决方案
我忘记告诉你的一件事是,当我在文本框 Txt_Descriptción 中写一些东西时,它会过滤列表框中的信息,当我在列表框中选择一项时,它会更新 Txt_Descriptción 值,因此 ListIndex 值也会发生变化。这就是它显示错误 381 的原因。解决方案是更改填充文本框的顺序,因此 Txt_Descriptción 是最后一个。
With ListBox1
Txt_Codigo.Value = .List(.ListIndex, 0)
Txt_Unid_Distr.Value = .List(.ListIndex, 2)
Txt_Precio_Lista.Value = .List(.ListIndex, 3)
Txt_Descripción.Value = .List(.ListIndex, 1)
End With
这样就解决了问题。在这种情况下,其他人帮助了我,但还是谢谢你。
推荐阅读
- postgresql - Postgres 请求日期太长
- eclipse - “运行|调试”选项显示在 Eclipse 中使用 TestNG 和 Selenium 的每个测试上方
- python - 没有用户手册的 USB 设备。是否有执行“usb 命令扫描”的方法?
- javascript - GET 请求通过 Axios 返回错误 404,但在 Postman 中工作?
- android - 工具栏位于 RecyclerView 下方
- arrays - Ruby - 我在将数组中的特定单词大写时遇到困难,这些单词将作为字符串返回
- scala - Scala快速排序算法实现
- javascript - React:如何将来自钩子的返回值包装在 HTML 元素中,例如 span
- visual-studio-code - 将输入字符串映射到 launch.json 文件中的数值
- typescript - 如何使用黄瓜和类型脚本处理量角器中弹出的窗口身份验证