ทำอย่างไรให้ for i=0 to 9 แล้ว comboตัวที่ i ทำงาน
กระทู้เก่าบอร์ด อ.Yeadram

 836   2
URL.หัวข้อ / URL
ทำอย่างไรให้ for i=0 to 9 แล้ว comboตัวที่ i ทำงาน

มี combo จำนวน 10 ตัว มีชื่อว่า a0 - a9
ต้องการเขียน code ในลักษณะ

Private Sub a2_AfterUpdate()
    j = 2
    Call GetData
End Sub
'---------------------------------------------------------------------------------
Function GetData()
    For i = 0 To 9
        If i <> j Then
            a& i.RowSource = "SELECT tblCustomer.CusNo FROM tblCustomer WHERE (((tblCustomer.CusName)=[Forms]![frmSearch]![a&j]));"
        End If
    Next i
End Function

จะทำอย่างไรให้ระบบเข้าใจว่า a&i คือ a ตัวที่ i คะ เนื่องจากส่วนที่จะเขียนมีลักษณะเป็นการ Filter หัวตารางเหมือนใน excel ได้ลองใช้ DataSheet และ Split foam แล้วแต่หัวของตารางไม่ตอบโจทย์ค่ะ และต้องการให้จบแค่ใน access ไม่ต้องออกไป Excel ค่ะ

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

1 @R22705
ตัวอย่าง:
a& i.RowSource = "SELECT tblCustomer.CusNo FROM tblCustomer WHERE (((tblCustomer.CusName)=[Forms]![frmSearch]![a&j]));"

เปลี่ยนเป็น:
Me("a" & i).RowSource = "SELECT tblCustomer.CusNo FROM tblCustomer WHERE (((tblCustomer.CusName)=" & Forms!frmSearch("a" & i) & "));"

คือปกติเราอ้างชื่อคอนโทรลในรูปแบบของ String ได้ประมาณนี้ครับ
ชื่อคอนโทรล: Me.ชื่อคอนโทรล = Me("ชื่อคอนโทล")
ชื่อฟอร์มไปคอนโทรล: Forms!ชื่อฟอร์ม!ชื่อคอนโทรล = Forms!ชื่อฟอร์ม("ชื่อคอนโทรบ")
ชื่อฟอร์มหลักไปฟอร์มย่อยไปคอนโทรล: Forms!ชื่อฟอร์ม!ชื่อซับฟอร์ม.Form!ชื่อคอนโทรล = Forms!ชื่อฟอร์ม!ชื่อซับฟอร์ม.Form("ชื่อคอนโทรล") หรือ Forms("ชื่อฟอร์ม")("ชื่อซับฟอร์ม").Form("ชื่อคอนโทรล")

ประมาณนี้ครับ ลองปรับใช้ดู
2 @R22706
เรียนคุณ TTT ค่ะ
หลังจากที่ทำการแก้ไขตามคำแนะนำแล้ว เกิด Compile error ค่ะ ขึ้นว่า

Compile error : Expected : identifier or bracketed expression ค่ะ

รบกวนผู้รู้ช่วยแนะนำทีนะคะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2960s