0

私はVb6を使用しています!「Datagrid1」という名前のデータグリッドが1つあり、アクセスデータベースのDatagrid1の「subjectcode」という名前のテーブルから、subjectname、subjectcode、theory_practicalなどの特定のコンテンツを表示します。

そして、「feedetail」という名前の別のテーブルがあります。私の疑問は、「theory_practical」値が理論手段である場合、feedetail という名前のテーブルからの理論料金を表示する必要があるか、「theroy_practical」値が実用手段である場合、「料金」という名前の新しい列に実際料金を表示する必要があることです。データグリッド1。

SQL ステートメントと datagrid での表示に混乱しています。これが私が使用した私のコードです!

Theory_Practical 見出しの次の列に対応する手数料を表示したい ! スクリーンショット ファイルを添付できません。エラーが表示されます。ここにスクリーンショットファイルのリンクがあります!前もって感謝します !

    Public con As New ADODB.Connection
    Public rs As New ADODB.Recordset
    Public rs2 As New ADODB.Recordset

    Private Sub Command1_Click()
    Dim semesternew As String
    semesternew = semester.Caption
    Select Case semesternew
    Case "I"
    semester1 = 1
    Case "II"
    semester1 = 2
    Case "III"
    semester1 = 3
    Case "IV"
    semester1 = 4
    Case "V"
    semester1 = 5
    Case "VI"
    semester1 = 6
    End Select
    DataGrid1.ClearFields
    rs.Open "select Subjectcode,Subjectname,Theory_Practical from subjectcode as s where s.Degree='" & Degree & "' and s.Branch='" & course & "' and s.Year1='" & year1 & "' and s.Year2='" & year2 & "' and s.Semester='" & semester1 & "'  ", con, 1, 3
    Set DataGrid1.DataSource = rs
    End Sub

    Private Sub Command2_Click()
    examfee2.Hide
    examfee1.Show
    End Sub

    Private Sub Command4_Click()
    If rs!Theory_Practical = "theory" Then
    rs2.Open "select Theoryfee from Degreelevel", con, 1, 3
    Set DataGrid2.DataSource = rs2
    ElseIf rs!Theory_Practical = "practical" Then
    rs2.Open "select Practicalfee from Degreelevel", con, 1, 3
    Set DataGrid2.DataSource = rs2
    End If
    End Sub

    Private Sub Form_Load()
    Set con = New ADODB.Connection
    con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\college.mdb;Persist Security Info=False"
    con.CursorLocation = adUseClient
    Set rs = New ADODB.Recordset
    End Sub

料金表:

Heading(Year1,Year2,Theoryfee,Practicalfee) 
values (2001,2003,440,320) 

このような他のすべての値は、異なる値でのみ !

件名コード表:

Heading(Year1,Year2,Subjectcode,Subjectname,Theory_Practical) 
values (2001,2003,RCCS10CS1,C programming, Theory) 
4

1 に答える 1

0

You can use a query like so:

SELECT subjectcode.Year1, subjectcode.Year2, 
       subjectcode.Subjectcode, subjectcode.Subjectname, 
       subjectcode.Theory_Practical, q.fee
FROM subjectcode 
INNER JOIN (
       SELECT fees.Year1, fees.Year2, "Theory" As FeeType, 
              fees.Theoryfee As Fee
       FROM fees
       UNION ALL
       SELECT fees.Year1, fees.Year2, "Practical" As FeeType, 
              fees.Practicalfee As Fee
       FROM fees)  AS q 
ON (subjectcode.Theory_Practical = q.FeeType) 
   AND (subjectcode.Year2 = q.Year2) 
   AND (subjectcode.Year1 = q.Year1)

However, you would be much better off redesigning your fees table to match the data returned by the inner sql, that is, a different line for theory and practical fees:

Year1   Year2   FeeType     Fee
2001    2003    Theory      440
2001    2003    Practical   320
于 2013-01-14T13:25:36.387 に答える