Vb6 使用变量而不是对象

Vb6 使用变量而不是对象,vb6,Vb6,我用这条线 .RecordSource = "select * from tblpersonal where empid like '" & Me.lblIDNumber.Caption & "*'" …我的问题是,如果我使用变量(varIDNumber)而不是对象(lblIDNumber),语法会是什么?我正在使用VB6.0将Me.lblIDNumber.Caption替换为varIDNumber将Me.lblIDNumber.Caption替换为varIDNumber您在代

我用这条线

.RecordSource = "select * from tblpersonal where empid like '" & Me.lblIDNumber.Caption & "*'"

…我的问题是,如果我使用变量(
varIDNumber
)而不是对象(
lblIDNumber
),语法会是什么?我正在使用VB6.0

将Me.lblIDNumber.Caption替换为varIDNumber

将Me.lblIDNumber.Caption替换为varIDNumber

您在代码中没有提到
txtIDNumber
,您提到了
lblIDNumber
。我想你是说这两个人是一样的。换句话说,您目前拥有的代码应该是这样的:

.RecordSource = "select * from tblpersonal where empid like '" & Me.txtIDNumber.Text & "*'"
因此,您使用表单中文本框的值来填充SQL查询。到目前为止我说的对吗

您会问,如果我将ID号存储在变量中而不是文本字段中会怎么样?我同意,这可能是朝着正确方向迈出的一步

因此,您可以在表单的“常规声明”部分使用以下命令创建变量:

Dim idNumber As Integer
其思想是每次文本字段更改时更新该变量的值。注意:我假设“ID number”是一个整数——如果不是,则应该使用字符串

现在,您需要在文本字段更改时更新该变量。在
txtIDNumber\u Change
事件中,您需要添加代码以将字符串
txtIDNumber.Text
转换为整数,并将其存储在
idNumber
中。我忘记了确切的语法,但我猜是这样的:

idNumber = Int(txtIDNumber.Text)
最后,您现在可以在SQL查询中使用
idNumber
变量,而不是文本框:

.RecordSource = "select * from tblpersonal where empid like '" & idNumber & "*'"

您在代码中没有提到
txtIDNumber
——您提到了
lblIDNumber
。我想你是说这两个人是一样的。换句话说,您目前拥有的代码应该是这样的:

.RecordSource = "select * from tblpersonal where empid like '" & Me.txtIDNumber.Text & "*'"
因此,您使用表单中文本框的值来填充SQL查询。到目前为止我说的对吗

您会问,如果我将ID号存储在变量中而不是文本字段中会怎么样?我同意,这可能是朝着正确方向迈出的一步

因此,您可以在表单的“常规声明”部分使用以下命令创建变量:

Dim idNumber As Integer
其思想是每次文本字段更改时更新该变量的值。注意:我假设“ID number”是一个整数——如果不是,则应该使用字符串

现在,您需要在文本字段更改时更新该变量。在
txtIDNumber\u Change
事件中,您需要添加代码以将字符串
txtIDNumber.Text
转换为整数,并将其存储在
idNumber
中。我忘记了确切的语法,但我猜是这样的:

idNumber = Int(txtIDNumber.Text)
最后,您现在可以在SQL查询中使用
idNumber
变量,而不是文本框:

.RecordSource = "select * from tblpersonal where empid like '" & idNumber & "*'"

如果标签中有一个常量,并且希望将该常量存储在变量中,请在表单的代码中创建一个
Const
。假设标签中有文本“43”

在表格的“一般声明”部分,添加代码:

Const idNumber As Integer = 43
然后,在构造查询时:

.RecordSource = "select * from tblpersonal where empid like '" & idNumber & "*'"

这将使用常量43构造查询。我真的看不出这有什么意义——如果您希望员工编号是用户可以输入的,请参阅我的另一个答案。

如果标签中有一个常量,并且希望该常量存储在变量中,请在表单的代码中创建一个
常量。假设标签中有文本“43”

在表格的“一般声明”部分,添加代码:

Const idNumber As Integer = 43
然后,在构造查询时:

.RecordSource = "select * from tblpersonal where empid like '" & idNumber & "*'"

这将使用常量43构造查询。我真的看不出这有什么意义——如果您希望员工号码是用户可以输入的,请参阅我的另一个答案。

我在询问语法,
.RecordSource=“select*from tblpersonal where empid like'”varIDNumber“*”
这正确吗?您仍然需要符号。所以
where-empid-like'&varIDNumber&“*”
。但是您仍然需要一些代码来填充变量。我正在询问语法,
。RecordSource=“select*from tblppersonal where-empid-like'.varIDNumber”*”
这正确吗?您仍然需要符号。因此…
where-empid-like'&varIDNumber&“*”
。但是您仍然需要一些代码来填充变量。请注意SQL注入漏洞:您的原始代码存在安全问题。用户可以在文本字段中键入
4';投球台TBL个人;选择*from tblpersonal where empid='
——这实际上会执行他们的恶意表删除代码,因为您尚未清理字符串。按照我的建议将其转换为整数可以解决这种特殊情况下的问题,但如果您希望在任何位置都允许使用完整字符串,则更难更正此问题。@mgiuca。。。那么什么是最好的语法呢?我将此代码用于搜索程序。如果此代码的目的是通过用户在文本字段中键入的ID搜索员工,那么您应该有一个文本字段,而不是标签。。。正如我在回答问题时所说,我对此感到困惑。如果你有一个文本字段,那么我的答案给出了你需要的所有语法。。。定义变量,将字符串转换为整数并存储在变量中,然后在查询中使用该变量。有关SQL注入漏洞的说明:原始代码存在安全问题。用户可以在文本字段中键入
4';投球台TBL个人;选择*from tblpersonal where empid='
——这实际上会执行他们的恶意表删除代码,因为您尚未清理字符串。按照我的建议将其转换为整数可以解决这种特殊情况下的问题,但如果您希望在任何位置都允许使用完整字符串,则更难更正此问题。@mgiuca。。。那么什么是最好的语法呢?我将此代码用于搜索程序。如果此代码的目的是