แปลง คอลัมน์เป็นแถว
กระทู้เก่าบอร์ด อ.Yeadram

 853   1
URL.หัวข้อ / URL
แปลง คอลัมน์เป็นแถว

ได้คำตอบมาจากเว็บไซต์ครับ
คำตอบนี้สำหรับแปลงคอลัมน์เป็นแถวครับ เอามาประยุกต์ได้ตรงทีเดียว
http://www.dbforums.com/showthread.php?1634393-Any-way-to-convert-columns-to-rows-See-inside-for-an-example
กรณีนี้มีเพียง 12 เดือน ผมจะเอามาประยุกต์กับจำนวนข้อสอบสอบสมมติมี 100 ข้อ โค้ดมันต้องยาว อยากได้คำตอบเพิ่มเติมครับ ว่าใช้ x แทนตัวแปรบรรทัดนี้
"rsmyrs("month_value") = 1" ให้มันวนลูบถึง rsmyrs("month_value") == 100 เลยครับ

Public Sub create_batch_month()

    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim rsmyrs As DAO.Recordset
    Dim sqlcode As String
       
    Set db = CurrentDb()
       
    Set rst = db.OpenRecordset("tbl_batch")
    Set rsmyrs = db.OpenRecordset("tbl_batch_month", dbOpenDynaset)
    
     DoCmd.SetWarnings False
     sqlcode = "DELETE tbl_batch_month.* FROM tbl_batch_month"
     DoCmd.RunSQL sqlcode
     DoCmd.SetWarnings True
     
    With rst
        If .RecordCount > 0 Then
           .MoveLast
            Do Until .BOF
              
            ' add Jan
           rsmyrs.AddNew
            rsmyrs("batch_code") = ![batch_code]
            rsmyrs("batch_month") = "Jan"
            rsmyrs("batch_total") = ![mth_jan]
            rsmyrs("month_value") = 1
           rsmyrs.Update
                                   
           ' add Feb
           rsmyrs.AddNew
            rsmyrs("batch_code") = ![batch_code]
            rsmyrs("batch_month") = "Feb"
            rsmyrs("batch_total") = ![mth_feb]
            rsmyrs("month_value") = 2
           rsmyrs.Update

           ' add Mar
           rsmyrs.AddNew
            rsmyrs("batch_code") = ![batch_code]
            rsmyrs("batch_month") = "Mar"
            rsmyrs("batch_total") = ![mth_mar]
            rsmyrs("month_value") = 3
           rsmyrs.Update
           
           ' add Apr
           rsmyrs.AddNew
            rsmyrs("batch_code") = ![batch_code]
            rsmyrs("batch_month") = "Apr"
            rsmyrs("batch_total") = ![mth_apr]
            rsmyrs("month_value") = 4
           rsmyrs.Update
           
           ' add May
           rsmyrs.AddNew
            rsmyrs("batch_code") = ![batch_code]
            rsmyrs("batch_month") = "May"
            rsmyrs("batch_total") = ![mth_may]
            rsmyrs("month_value") = 5
           rsmyrs.Update
        .MovePrevious
            
           
            Loop ' looping to bof
       
        End If
       
    End With
    

End Sub

1 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R21647
   Dim L As Integer

   With rst
        If .RecordCount > 0 Then
           .MoveLast
            Do Until .BOF

            For L = 1 To 100
               rsmyrs.AddNew
               rsmyrs("...") = ....
                    ....
                    ....
                    ....
               rsmyrs("month_value") = L
               rsmyrs.Update
            Next L

            .MovePrevious

            Loop ' looping to bof
       
        End If
       
    End With [/FONT]
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3206s