VB中将sql查询语句的值赋值给变量?

Private sqlcon As New ADODB.Connection
Private sqlres As New ADODB.Recordset
Private sqlcmd As New ADODB.Command
Private Sub login_Click()
Dim u1, p1 As String
Dim sqlstr As String
u1 = user.Text
p1 = password.Text
sqlstr = "SELECT password1 FROM login1 WHERE user1='" + p1 + "'"
If (sqlstr = p1) Then
MsgBox ("登陆成功")
Else
MsgBox ("登录失败")
End If
End Sub

根据你提供的代码,我了解到你想通过VB来查询数据库中的值,并将结果赋值给变量进行后续操作。在你的代码中,你已经创建了一个ADODB连接和命令对象,并且在点击登录按钮时,定义了两个变量u1和p1来分别存储用户输入的用户名和密码。同时,你也构造了一个查询语句sqlstr来从login1表中查询对应用户名的密码。

但是,在你的代码中,对连接对象和命令对象并没有进行相关的配置和执行操作。因此,我建议你在login_Click事件中增加以下代码:

sqlcon.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = your_database_path" '替换your_database_path为你的数据库路径

sqlcon.Open '打开连接

With sqlcmd '设置命令对象

Set .ActiveConnection = sqlcon '指定连接

.CommandType = adCmdText '指定命令类型

.CommandText = sqlstr '指定查询语句

End With

Set sqlres = sqlcmd.Execute() '执行查询命令

如果查询成功,你可以通过以下代码将查询结果赋值给变量:

If sqlres.EOF = False Then '判断是否查询到结果

p1 = sqlres.Fields("password1").Value '获取查询到的密码值

End If

最后,记得在适当的位置关闭连接对象和释放资源:

sqlres.Close

Set sqlres = Nothing

sqlcon.Close

Set sqlcon = Nothing

希望我的回答对你有所帮助。