กระทู้เก่าบอร์ด อ.Yeadram
1,289 8
URL.หัวข้อ /
URL
เลือก Option ได้ครั้งละหลายๆ Option
สอบถามอาจารย์ทุกท่านครับ คือว่าผมต้องการทำฟอร์มตามตัวอย่างในรูปนะครับ ให้สามารถเลือกได้ครั้งละหลายๆ Option นะครับ แล้วก็ให้ Export ไฟล์เฉพาะ Option ที่เราเลือกออกมาเป็น Excel ครับ ไม่ทราบว่าจะเริ่มต้นและทำยังไงดีครับ
8 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R16305
ตามที่ผมพอทราบ ถ้าไม่เลือกใช้เครื่องมือ Option Group แต่ใช้ Option Button หรือ Check Box แทน ก็จะสามารถเลือกได้หลายๆรายการนะครับ ส่วนการ Export นั้น ผมอาจะทำ Query ขึ้นมาตัวหนึ่ง เลือกฟิวด์ที่ต้องการ แล้วทำ Criteria ที่ฟิวด์ Option หรือ Check Box นั้น (กรณีใช้ Check Box และกำหนด DataType เป็น Yes/No ก็เขียน Criteria เป็น Yes (หรือ -1) ครับ
2 @R16307
ขอบคุณสำหรับชี้แนะครับ จะลองทำตามที่แนะนำครับ
3 @R16308
ลองดูแล้วสงสัยจะยากส์...เพราะว่าการเลือกแต่ละครั้งถ้าเลือกไม่เหมือนกัน ผมจะทำ query รอยังไงครับ มีคำชี้แนะไหมครับ
4 @R16310
โทษทีครับ พอดีผมดูโจทย์ไม่ละเอียด ไว้ขอไปลองคิดและทำข้อมูลสมมุติเล่นดูก่อนนะครับ ถ้าทำได้เมื่อไหร่จะมาแชร์ครับ แต่อาจารย์ท่านอื่นๆ ที่เก่งๆ น่าจะทำโจทย์ข้อนี้ได้ไม่ยากนะครับ
5 @R16311
ทำ table ตาข้อเลยครับ
เราต้องเก็บข้อมูลเป็นข้อๆ ข้อไหนที่ไม่ได้เลือก ก็จะเป็น 0 ถ้าเลือกก็เป็น อะไรก็ได้ตามที่ออกแบบ
เวลาจะ Export ก็ส่งออกได้เลย ตามตาราง
เราต้องเก็บข้อมูลเป็นข้อๆ ข้อไหนที่ไม่ได้เลือก ก็จะเป็น 0 ถ้าเลือกก็เป็น อะไรก็ได้ตามที่ออกแบบ
เวลาจะ Export ก็ส่งออกได้เลย ตามตาราง
6 @R16314
ผมว่าแนวคิดน่าจะประมาณ สร้างคิวรี่ชั่วคราว รับชื่อฟิลด์ที่คุณเลือกใน Option แล้วค่อย Export
Dim db As DAO.Database, mySql As String, TTT As String
If Me.Option1 = True Then TTT = TTT & "Name" & ", "
If Me.Option2 = True Then TTT = TTT & "Department" & ", "
If Me.Option3 = True Then TTT = TTT & "Position" & ", "
If Me.Option4 = True Then TTT = TTT & "Salary" & ", "
If Me.Option5 = True Then TTT = TTT & "Age" & ", "
If Me.Option6 = True Then TTT = TTT & "Sex" & ", "
If TTT & "" = "" Then
Msgbox "กรุณาเลือก Option 1 - 6"
Exit Sub
Else
TTT = Left(TTT, Len(TTT) - 2)
End If
Msgbox TTT
Set db = CurrentDb
mySql = "SELECT " & TTT & " FROM Table1"
db.CreateQueryDef "QTemp", mySql
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "QTemp", "C:\Book1.xlsx", True
db.QueryDefs.Delete "QTemp"
db.Close
Set db = Nothing
ประมาณนี้ครับ
Dim db As DAO.Database, mySql As String, TTT As String
If Me.Option1 = True Then TTT = TTT & "Name" & ", "
If Me.Option2 = True Then TTT = TTT & "Department" & ", "
If Me.Option3 = True Then TTT = TTT & "Position" & ", "
If Me.Option4 = True Then TTT = TTT & "Salary" & ", "
If Me.Option5 = True Then TTT = TTT & "Age" & ", "
If Me.Option6 = True Then TTT = TTT & "Sex" & ", "
If TTT & "" = "" Then
Msgbox "กรุณาเลือก Option 1 - 6"
Exit Sub
Else
TTT = Left(TTT, Len(TTT) - 2)
End If
Msgbox TTT
Set db = CurrentDb
mySql = "SELECT " & TTT & " FROM Table1"
db.CreateQueryDef "QTemp", mySql
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "QTemp", "C:\Book1.xlsx", True
db.QueryDefs.Delete "QTemp"
db.Close
Set db = Nothing
ประมาณนี้ครับ
7 @R16318
ขอบคุณครับ จะลองนำไปสานต่อให้บรรลุเป้าหมาย ติดขัดยังไงจะแจ้งให้ทราบครับ
8 @R16319
ตามที่คุณ TTT อธิบายมา แล้วในกรณีที่เครื่อง User ผมลง Access Runtime ไว้ โปรแกรมจะสามารถ Run และทำงานตามคำสั่งได้ไหมครับ
Time: 0.3229s