【问题标题】:VB 6.0 If length >= 13 Then Call barkodokuVB 6.0 如果长度 >= 13 则调用 barkodoku
【发布时间】:2022-10-24 15:08:33
【问题描述】:

我为市场编写了一个支持条形码的程序。我可以检查 13 个字符长度的条码标准并让它读取条码,但我需要读取 8 个字符的条码,包括 8 个和 13 个长度,但我不能。

我的代码

Private Sub Text1_Change()
   length = Len(Text1.Text)

   If length >= 13 Then Call barkodoku
End Sub

此代码有效,但 8 长度和 13 长度均无效

如果长度 >= 8 长度 >=13 则调用 barkodoku 不起作用

我怎么能读这两种长度谢谢

【问题讨论】:

  • 如果问题是关于 VB6 的,那么你为什么将它标记为 VB.NET?请应用相关的标签,并且只应用相关的标签。
  • 正确的语法是If length >= 8 Or length >= 13。当然,这可以简化为If length >= 8。
  • 猜测:鉴于测试发生在文本控件更改事件中,我怀疑条形码数据作为单独的击键进入系统,即条形码设备或驱动程序正在模拟键盘。如果是这种情况,您需要等到所有条形码数据(所有击键)都已“输入”。请查阅设备/驱动程序/api 文档以了解如何确定这一点 - 也许有一个您可以等待和测试的终止字符?

标签: vb6


【解决方案1】:

如果长度 >= 8 或长度 >= 13 不起作用

我也试过了,但是当它在读取条形码时看到 8 个字符时,text1.text 只保留 8 个字符,而不是读取 13 个字符。

【讨论】:

  • 那是因为你的逻辑是错误的。如果 blah 是 8 或更多或 13 或更多。 13 总是大于 8。你想测试它是 8 还是 13 不大于或等于 8。
  • If length = 8 Or Length = 13 Then barkodoku。 Call 已过时,因此巫毒编程所以不要使用它。从技术上讲,您正在将调用约定更改为在 QuickBasic 中为 MS-Dos 调用汇编程序函数所需的内容。 Visual Basic 不支持汇编函数。它用于移植旧的 DOS 代码。
  • @fresh - 在回复评论或提供其他信息时,请将其添加为另一条评论,而不是作为答案。
  • @Lundt - Call 语句在 vb6 或 vb.net 中没有过时。这是两种语言的完全支持的功能。对于 vb.net,在某些情况下甚至需要它,请参阅learn.microsoft.com/en-us/dotnet/visual-basic/…。
  • @MarkLCall [Call] SubName [ParameterList] 将控制转移到子程序。 Call 的使用是可选的; WordBasic 的新用户可以使用它来防止在阅读程序时将 WordBasic 关键字与子例程名称混淆。示例 Word 以相同方式执行以下两条指令: Call FindName '调用子程序 FindName。 FindName '调用子程序 FindName。
【解决方案2】:

感谢大家 我停止阅读长度,直接进入查询,问题解决了。

【讨论】:

    猜你喜欢
    • 2011-10-11
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多