2016-07-21 8 views
-2

現在、vb6.0プロジェクトで作業しており、SQLExpressをバックエンドデータベースサーバーとして使用しています。 次のクエリを作成して部門ごとの従業員数を取得しました.SQLServerのクエリウィンドウでクエリが正常に実行され、目的の結果が返されます。私は私のVB 6.0のフォームで同じクエリを使用して、ローカル変数の結果を取得しようとしているTemp。SQLクエリ結果を変数に割り当てる

しかし、クエリ結果を変数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 

ユーザーがドロップダウンリストとフォーム上の次のフィールドに移動からDEPTを選択したときに、上記のクエリが実行され、そのために従業員の数をfetchsますように、私は、コンボボックスLostFocusイベント内のコードの上に書いています特定の部署。

+0

SQLを表示するだけでは不十分です。 [edit]あなたの質問をSQLを実行している場所にvb6コードを追加し、その結果をTempに適用しようとする。 –

+0

あなたのコードを見れば、誰かが間違っていることをあなたに示すでしょう。一般的な答えは、 'intVariable = recordset.Fields(0).Value'です。 – jac

+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 

あなたが気づけば、それは、レコードの数だけ、同じがRecordset.GetString

Temp = RS.GetString 

の助けを借りて、変数に代入されて戻りますので、私も私のSQLクエリに若干の変更を加えました@ c-pound Guruとjacのコメントありがとう

関連する問題