SQL 命令 "Enter Parameter Value" 带有 ComboBox 数据
SQL Command "Enter Parameter Value" With ComboBox Data
我目前有以下代码
Private Sub dbSearch_Click()
Dim ManfactQuery As String
Dim ModelQuery As String
Dim strSQL As String
ManfactQuery = Me.cboManfact.Column(1)
ModelQuery = Me.cboModel.Column(1)
If ManfactQuery = Null Or ManfactQuery = Null Then
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ModelSolution = " & ModelQuery & ""
Else
If ModelQuery = Null Or ModelQuery = "" Then
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ManufacturerSolution = " & ManfactQuery & ""
Else
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ManufacturerSolution = " & ManfactQuery & " AND [Solutions].ModelSolution = " & ModelQuery & ""
End If
End If
Me.lstSolution.RowSource = strSQL
End Sub
我试图将组合框的文本值传递到 SQL 语句中,它在一定程度上起作用,但我得到 "Enter Parameter value" 弹出对话框。如果我然后输入组合框的值并单击“确定”,它会用适当的字段填充列表框,但如果可能的话我不需要对话框。
有什么想法吗?
首先你可能是这个意思:
If ManfactQuery = Null Or ManfactQuery = Null Then
变成这样:
If ManfactQuery = Null Or ManfactQuery = "" Then
它可以更好地表示为:
If Nz(ManfactQuery)="" then
现在进入实际问题。由于 ManfactQuery
和 ModelQuery
是文本值,它们需要在 SQL 文本中用单引号括起来,如下所示:
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ModelSolution = '" & ModelQuery & "'"
解决了。非常感谢@Charlie 和@SunKnight0
代码如下:
Private Sub dbSearch_Click()
Dim ManfactQuery As String
Dim ModelQuery As String
Dim strSQL As String
ManfactQuery = Me.cboManfact.Column(1)
ModelQuery = Me.cboModel.Column(1)
If Len(ModelQuery) = 0 Then
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ModelSolution = '" & ModelQuery & "'"
Else
If Len(ManfactQuery) = 0 Then
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ManufacturerSolution = '" & ManfactQuery & "'"
Else
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ManufacturerSolution = '" & ManfactQuery & "' AND [Solutions].ModelSolution = '" & ModelQuery & "'"
End If
End If
Me.lstSolution.RowSource = strSQL
End Sub
非常感谢大家,经过 3 天的努力,我明白了!
我目前有以下代码
Private Sub dbSearch_Click()
Dim ManfactQuery As String
Dim ModelQuery As String
Dim strSQL As String
ManfactQuery = Me.cboManfact.Column(1)
ModelQuery = Me.cboModel.Column(1)
If ManfactQuery = Null Or ManfactQuery = Null Then
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ModelSolution = " & ModelQuery & ""
Else
If ModelQuery = Null Or ModelQuery = "" Then
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ManufacturerSolution = " & ManfactQuery & ""
Else
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ManufacturerSolution = " & ManfactQuery & " AND [Solutions].ModelSolution = " & ModelQuery & ""
End If
End If
Me.lstSolution.RowSource = strSQL
End Sub
我试图将组合框的文本值传递到 SQL 语句中,它在一定程度上起作用,但我得到 "Enter Parameter value" 弹出对话框。如果我然后输入组合框的值并单击“确定”,它会用适当的字段填充列表框,但如果可能的话我不需要对话框。
有什么想法吗?
首先你可能是这个意思:
If ManfactQuery = Null Or ManfactQuery = Null Then
变成这样:
If ManfactQuery = Null Or ManfactQuery = "" Then
它可以更好地表示为:
If Nz(ManfactQuery)="" then
现在进入实际问题。由于 ManfactQuery
和 ModelQuery
是文本值,它们需要在 SQL 文本中用单引号括起来,如下所示:
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ModelSolution = '" & ModelQuery & "'"
解决了。非常感谢@Charlie 和@SunKnight0
代码如下:
Private Sub dbSearch_Click()
Dim ManfactQuery As String
Dim ModelQuery As String
Dim strSQL As String
ManfactQuery = Me.cboManfact.Column(1)
ModelQuery = Me.cboModel.Column(1)
If Len(ModelQuery) = 0 Then
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ModelSolution = '" & ModelQuery & "'"
Else
If Len(ManfactQuery) = 0 Then
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ManufacturerSolution = '" & ManfactQuery & "'"
Else
strSQL = "SELECT [Solutions].SolutionText FROM [Solutions] WHERE [Solutions].ManufacturerSolution = '" & ManfactQuery & "' AND [Solutions].ModelSolution = '" & ModelQuery & "'"
End If
End If
Me.lstSolution.RowSource = strSQL
End Sub
非常感谢大家,经过 3 天的努力,我明白了!