กระทู้เก่าบอร์ด อ.Yeadram
2,925 11
URL.หัวข้อ /
URL
ขอคำสั่งเปิดแท็บเป้าหมายที่เราต้องการด้วยค่ะ
มาขอรบกวนอีกแล้วนะคะ / ห่างหายไปนาน
-หนูสร้างฟอร์มไวัฟอร์มหนึ่ง เป็นฟอร์มแบบที่มีแท็บย่อยอยู่ 3 แท็บ
-สมมติชื่อฟอร์มว่า Frm_Master
-ในฟอร์มก็มีอยู่ 3 แท็บ สมมติชื่อแท็บว่า แท็บ-1 , แท็บ-2 , และ แท็บ-3
โดยปกติมันจะเปิดไปอยู่ที่แท็บแรกเสมอ หนูไม่อยากให้เป็นแบบนั้นค่ะ
*ความต้องการของหนูคือ อยากได้คำสั่ง ให้เปิดฟอร์ม Frm_Master แล้วให้เปิดไปที่แท็บเป้าหมาย สมมติให้เปิดไปที่ แท็บ-2 ทันทีเลย ต้องเขียนคำสั่งอย่างไรคะ
-หนูเขียนไว้ : DoCmd.OpenForm ("Frm_Master") แล้วไปต่อไม่ถูกค่ะ
ขอรบกวนอาจารย์ด้วยนะคะ
-หนูสร้างฟอร์มไวัฟอร์มหนึ่ง เป็นฟอร์มแบบที่มีแท็บย่อยอยู่ 3 แท็บ
-สมมติชื่อฟอร์มว่า Frm_Master
-ในฟอร์มก็มีอยู่ 3 แท็บ สมมติชื่อแท็บว่า แท็บ-1 , แท็บ-2 , และ แท็บ-3
โดยปกติมันจะเปิดไปอยู่ที่แท็บแรกเสมอ หนูไม่อยากให้เป็นแบบนั้นค่ะ
*ความต้องการของหนูคือ อยากได้คำสั่ง ให้เปิดฟอร์ม Frm_Master แล้วให้เปิดไปที่แท็บเป้าหมาย สมมติให้เปิดไปที่ แท็บ-2 ทันทีเลย ต้องเขียนคำสั่งอย่างไรคะ
-หนูเขียนไว้ : DoCmd.OpenForm ("Frm_Master") แล้วไปต่อไม่ถูกค่ะ
ขอรบกวนอาจารย์ด้วยนะคะ
11 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R13669
ขอบคุณค่ะอาจารย์
ใช่ตามที่ อ. PichaiTC เข้าใจค่ะ
หนูจะลองเอาไปทำดูก่อนนะคะ
หนูยังไม่ทราบว่าจะไปเชื่อมต่อกับ DoCmd.OpenForm ("Frm_Master") อย่างไร
แต่น่าจะพอไหว ได้ผลอย่างไรแล้ว หนูจะเข้ามารายงานให้ทราบนะคะอาจารย์
ขอบคุณค่ะ
ใช่ตามที่ อ. PichaiTC เข้าใจค่ะ
หนูจะลองเอาไปทำดูก่อนนะคะ
หนูยังไม่ทราบว่าจะไปเชื่อมต่อกับ DoCmd.OpenForm ("Frm_Master") อย่างไร
แต่น่าจะพอไหว ได้ผลอย่างไรแล้ว หนูจะเข้ามารายงานให้ทราบนะคะอาจารย์
ขอบคุณค่ะ
3 @R13671
ยังไม่ได้เลยค่ะอาจารย์
ทดลองดูหลายวิธี ล่าสุดหนูลองใช้แบบนี้
DoCmd.OpenForm ("Frm_Master")
[TabCtl0].Pages("Page19").SetFocus
ยังไม่ได้ค่ะอาจารย์ มันขึ้น error 2465 ไม่พบเขตข้อมูล 'l' ที่ถูกอ้างอิงถึงในนิพจน์ของคุณ
ไม่ทราบว่าหนูเข้าใจอะไรผิดในการระบุชื่อ [ชื่อ Tab] กับ ("ชื่อ tab ย่อย" ) หรือเปล่าคะ ไม่ทราบว่าต้องดูจากตรงไหน หนูพยายามหาดูแล้วก็พบตามที่ระบุค่
ทดลองดูหลายวิธี ล่าสุดหนูลองใช้แบบนี้
DoCmd.OpenForm ("Frm_Master")
[TabCtl0].Pages("Page19").SetFocus
ยังไม่ได้ค่ะอาจารย์ มันขึ้น error 2465 ไม่พบเขตข้อมูล 'l' ที่ถูกอ้างอิงถึงในนิพจน์ของคุณ
ไม่ทราบว่าหนูเข้าใจอะไรผิดในการระบุชื่อ [ชื่อ Tab] กับ ("ชื่อ tab ย่อย" ) หรือเปล่าคะ ไม่ทราบว่าต้องดูจากตรงไหน หนูพยายามหาดูแล้วก็พบตามที่ระบุค่
4 @R13672
คุณมาลีต้องเอาคำสั่ง [TabCtl0].Pages("Page19").SetFocus ไปไว้ในฟอร์ม frm_master ในเหตุการณ์ onload ครับ
5 @R13673
เย้..ได้แล้ว แต่ว่า...ยังได้ ไม่ตรงตามที่ต้องการค่ะ
หนูอาจอธิบายความต้องการที่แท้จริง ไม่ชัดเจนตั้งแต่ต้น ต้องขออภัยด้วยนะคะ
-ตามที่ อ.ditasilk แนะนำ ทุกครั้งที่สั่งเปิดฟอร์ม มันจะไปอยู่ที่แท็บ Page2 เสมอ
-แต่ในความต้องการของหนูคือ ไม่แน่นอนเสมอไปว่าต้องไปที่ Page2 เท่านั้น บางครั้ง ก็ต้องการให้มันไปที่ Page1 หรือ Page3 ตามปุ่มที่เราคลิก คือ
-คลิกปุ่มที่1 : ให้เปิดฟอร์ม Frm_Master แล้วไปโฟกัสอยู่ที่ Page1
-คลิกปุ่มที่2 : ให้เปิดฟอร์ม Frm_Master แล้วไปโฟกัสอยู่ที่ Page2
-คลิกปุ่มที่3 : ให้เปิดฟอร์ม Frm_Master แล้วไปโฟกัสอยู่ที่ Page3
-ประมาณนี้ค่ะ (หนูแก้ไขชื่อ Page ใหม่เพื่อให้สมาชิกผู้อื่นได้เข้าใจตามง่ายขึ้น)
-กรณีนี้ หากไปผูกไว้ที่ onload มันจึงยังได้ไม่ตรงตามที่ต้องการค่ะ
ขอรบกวนอีกหน่อยนะคะ
หนูอาจอธิบายความต้องการที่แท้จริง ไม่ชัดเจนตั้งแต่ต้น ต้องขออภัยด้วยนะคะ
-ตามที่ อ.ditasilk แนะนำ ทุกครั้งที่สั่งเปิดฟอร์ม มันจะไปอยู่ที่แท็บ Page2 เสมอ
-แต่ในความต้องการของหนูคือ ไม่แน่นอนเสมอไปว่าต้องไปที่ Page2 เท่านั้น บางครั้ง ก็ต้องการให้มันไปที่ Page1 หรือ Page3 ตามปุ่มที่เราคลิก คือ
-คลิกปุ่มที่1 : ให้เปิดฟอร์ม Frm_Master แล้วไปโฟกัสอยู่ที่ Page1
-คลิกปุ่มที่2 : ให้เปิดฟอร์ม Frm_Master แล้วไปโฟกัสอยู่ที่ Page2
-คลิกปุ่มที่3 : ให้เปิดฟอร์ม Frm_Master แล้วไปโฟกัสอยู่ที่ Page3
-ประมาณนี้ค่ะ (หนูแก้ไขชื่อ Page ใหม่เพื่อให้สมาชิกผู้อื่นได้เข้าใจตามง่ายขึ้น)
-กรณีนี้ หากไปผูกไว้ที่ onload มันจึงยังได้ไม่ตรงตามที่ต้องการค่ะ
ขอรบกวนอีกหน่อยนะคะ
6 @R13675
ถ้าเขียน code จาก Form อื่น ต้องอ้างถึง Form object ก่อนครับ
Sub cmd1_Click()
DoCmd.OpenForm ("Frm_Master")
Forms("Frm_Master").[TabCtl0].Pages("Page1").SetFocus
End Sub
Sub cmd1_Click()
DoCmd.OpenForm ("Frm_Master")
Forms("Frm_Master").[TabCtl0].Pages("Page1").SetFocus
End Sub
7 @R13676
เย้..เยี่ยมเลยค่ะอาจารย์ ได้เรียบร้อยตามต้องการ
ปิดงานได้แล้ว...
ขอบคุณ อ.ทั้งสองท่านอย่างสูงค่ะ
ปิดงานได้แล้ว...
ขอบคุณ อ.ทั้งสองท่านอย่างสูงค่ะ
8 @R13683
เป็นตัวเลือก อีกแบบ
Sub cmd1_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page1"
End Sub
Sub cmd2_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page2"
End Sub
Sub cmd3_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page3"
End Sub
ที่ Frm_Master เหตุการณ์ load
Private Sub Form_Load()
[TabCtl0].Pages(OpenArgs).SetFocus
End Sub
Sub cmd1_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page1"
End Sub
Sub cmd2_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page2"
End Sub
Sub cmd3_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page3"
End Sub
ที่ Frm_Master เหตุการณ์ load
Private Sub Form_Load()
[TabCtl0].Pages(OpenArgs).SetFocus
End Sub
9 @R13685
มายืนยันให้เพื่อนๆที่สนใจว่า ได้ทดลองแล้ว วิธีของ อ.ditasilk อีกวิธีนี้ก็ให้ผลได้เช่นเดียวกันค่ะ
ขอบคุณอีกครั้งค่ะอาจารย์
เป็นตัวเลือก อีกแบบ
Sub cmd1_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page1"
End Sub
Sub cmd2_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page2"
End Sub
Sub cmd3_Click()
DoCmd.OpenForm "Frm_Master", , , , , , "Page3"
End Sub
ที่ Frm_Master เหตุการณ์ load
Private Sub Form_Load()
[TabCtl0].Pages(OpenArgs).SetFocus
End Sub
ขอบคุณอีกครั้งค่ะอาจารย์
10 @R13686
วิธีของคุณ ditasilk เป็นวิธีที่ดีครับ
แนะนำว่าใช้วิธีนี้เลยครับ เวลาแก้ไข form จะทำให้ง่ายกว่าครับ
แนะนำว่าใช้วิธีนี้เลยครับ เวลาแก้ไข form จะทำให้ง่ายกว่าครับ
11 @R13857
ขอบคุณครับ หาวิธีทำแบบนี้อยู่เหมือนกัน
Time: 0.3307s
ซึ่ง tab ย่อยข้างใน Access เรียกว่า Page
เข้าใจว่าต้องการให้ เมื่อเปิด form แล้วไปที่ page 2 ทันที
ใช้ code ตามนี้ครับ
[ชือTab].Pages("ชื่อ tab ย่อย").SetFocus