目前正在开发一个vb6.0项目并使用SQLExpress作为我的后端数据库服务器。 我编写了以下查询来获取每个部门的员工数量,查询在SQLServer的查询窗口中成功运行并返回所需的结果。我试图在我的vb 6.0表单中使用相同的查询,并将结果输入一个局部变量说Temp。
但是我无法将查询结果分配给变量Temp。我很震惊,无法前进。
SQL = "select dbo.tbl_employee_master.dept_id, COUNT(emp_id) as '# of employees' from dbo.tbl_employee_master where dbo.tbl_employee_master.dept_id IN ( select dbo.tbl_employee_master.dept_id from dbo.tbl_employee_master Group BY dbo.tbl_employee_master.dept_id HAVING dbo.tbl_employee_master.dept_id = '" & cmb_dept.Text & "') Group BY dbo.tbl_employee_master.dept_id"
connectDB
Dim Temp As String
Temp = RS.GetString
lbl_last_id.Caption = Temp
connClose
txt_emp_code.Text = lbl_comp_short.Caption & "-" & lbl_dept_short_form.Caption & "-" & lbl_last_id.Caption
我在组合框LostFocus事件中编写上面的代码,因此当用户从下拉列表中选择一个dept并移动到表单上的下一个字段时,上面的查询将被执行并获取该特定部门的员工数量。 / p>
答案 0 :(得分:0)
通过对RecordSet属性的一些解决方法,我可以获取每个部门的员工数量,如下所示。
SQL = "select COUNT(emp_id) as '# of employees' from dbo.tbl_employee_master where dbo.tbl_employee_master.dept_id IN ( select dbo.tbl_employee_master.dept_id from dbo.tbl_employee_master Group BY dbo.tbl_employee_master.dept_id HAVING dbo.tbl_employee_master.dept_id = '" & cmb_dept.Text & "') Group BY dbo.tbl_employee_master.dept_id"
connectDB
Dim Temp As String
Temp = RS.GetString
lbl_last_id.Caption = Temp
connClose
txt_emp_code.Text = lbl_comp_short.Caption & "-" & lbl_dept_short_form.Caption & "-" & lbl_last_id.Caption
如果你注意到,我对我的SQL查询做了一些改动,所以它只返回记录数,在Recordset.GetString
的帮助下将其分配给一个变量Temp = RS.GetString
感谢您的评论@ c-pound Guru和jac