2016-07-21 22 views
-2

Derzeit arbeite ich an einem vb6.0-Projekt und verwende SQLExpress als meinen Backend-Datenbankserver. Ich habe die folgende Abfrage geschrieben, um die Anzahl der Mitarbeiter pro Abteilung zu erhalten, die Abfrage wird erfolgreich im Abfragefenster von SQLServer ausgeführt und gibt das gewünschte Ergebnis zurück. Ich versuche, die gleiche Abfrage in meinem Vb 6.0-Formular zu verwenden und das Ergebnis in einer lokalen Variablen zu erhalten, sagen wir Temp.SQL-Abfrageergebnis einer Variablen zuweisen

Aber ich bin nicht in der Lage, das Abfrageergebnis Variable Temp zuweisen. Ich bin getroffen und kann mich nicht vorwärts bewegen.

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 

ich oben Code schreibe in Kombinationsfeld Lost-Focus-Ereignis, so dass, wenn der Benutzer eine Abteilung von Drop-Down-Liste und bewegt sich zum nächsten Feld im Formular auswählt, wird die obige Abfrage ausgeführt und fetchs die Zahl der Mitarbeiter für die bestimmte Abteilung.

+0

Die Anzeige der SQL ist nicht genug, um Ihnen zu helfen. Bearbeiten Sie Ihre Frage, um den VB6-Code hinzuzufügen, wo Sie die SQL ausführen und versuchen, das Ergebnis auf 'Temp' anzuwenden. –

+0

Wenn Sie Ihren Code zeigen, wird Ihnen möglicherweise jemand zeigen, was falsch ist. Die generische Antwort lautet: 'intVariable = recordset.Fields (0) .Value'. – jac

+0

Code aktualisiert bitte überprüfen –

Antwort

0

Mit ein wenig Arbeit mit RecordSet-Eigenschaften, kann ich die Anzahl der Mitarbeiter pro Abteilung wie folgt abrufen.

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 

, wenn Sie bemerken, machte ich leichte Änderungen an meinem SQL-Abfrage und so ist es nur Anzahl der Datensätze zurückgibt, das gleiche zu einer Variablen mit Hilfe von Recordset.GetString zugeordnet

Temp = RS.GetString 

Vielen Dank für Ihre Kommentare @ c-pound Guru und jac

Verwandte Themen