Loop เปลี่ยนสีแถบ Navigation



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

12 มี.ค. 63 , 10:06:49
อ่าน 332 ครั้ง

Kxess

Loop เปลี่ยนสีแถบ Navigation
« เมื่อ: 12 มี.ค. 63 , 10:06:49 »
สวัสดีครับ

ผมจะ loop เพื่อเปลี่ยนสีแถบ ในเหตุการณ์ onload ของ ฟอร์มหลัก โดยมี navigation form อยู่ในส่วนของ Detail ซึ่งผลที่ออกมาคือ
สีเปลี่ยนแค่แถบเดียว คือแถบ "Home" ซึ่งไม่เปลี่ยนทั้งหมด รบกวนช่วยดูหน่อยครับ
ปล. ทุกแถบใส่ Tag ค่า "b1" หมดแล้ว
ขอบคุณครับ



โค้ดฟอร์มหลัก
โค๊ด: [Select]
Sub Formstyle(frm As Form)
Dim ctl As Control

For Each ctl In frm.Controls
        If ctl.Tag = "b1" Then
            ctl.BackColor = 11193702
        End If
    Next ctl
    'ctl = Nothing
End Sub

โค้ดในเหตุการณ์ onload ของฟอร์มหลัก
'แค่เรียก
โค๊ด: [Select]
--
Formstyle Me
--

 

12 มี.ค. 63 , 11:47:36
ตอบกลับ #1

PNR

: Loop เปลี่ยนสีแถบ Navigation
« ตอบกลับ #1 เมื่อ: 12 มี.ค. 63 , 11:47:36 »
ทำปุ่มพื้นหลัง ให้เป็นสีที่ต้องการใช่ไหมคับ

โค๊ด: [Select]
Sub Formstyle(frm As Form)
Dim ctl     As Control
    For Each ctl In frm.Controls
        If ctl.ControlType = acNavigationButton And ctl.Tag = "b1" Then
                      ctl.BackColor = 11193702
             End If
    Next ctl
End Sub

แต่ถ้าอยากให้เปิดขึ้นมาแล้ว แสดงสี ถ้า tag = B1 ทั้งแบบที่กด Tab อยู่ และ ที่ยังไม่กดก็เพิ่มเป็น
โค๊ด: [Select]
Sub Formstyle(frm As Form)
Dim ctl     As Control
    For Each ctl In frm.Controls
        If ctl.ControlType = acNavigationButton And ctl.Tag = "b1" Then
                      ctl.BackColor = 11193702
                      ctl.PressedColor = 11193702
             End If
    Next ctl
End Sub
« แก้ไขครั้งสุดท้าย: 12 มี.ค. 63 , 11:59:02 โดย PNR »
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

12 มี.ค. 63 , 14:15:56
ตอบกลับ #2

Kxess

: Loop เปลี่ยนสีแถบ Navigation
« ตอบกลับ #2 เมื่อ: 12 มี.ค. 63 , 14:15:56 »
ขอบคุณครับ

เป็นเหมือนเดิมครับ คือ สีเปลี่ยนเฉพาะแถบ "Home" ซึ่งสีมันควรจะเปลี่ยนทั้ง Home , สนทนา , รายงาน , และแถบอื่น ๆ

สีแดงคือแถบ "HomePage" ซึ่งโค้ดจะอยู่ในนี้ รวมถึงตอนเรียกใช้ Formstyle Me ซึ่ง Me น่าจะเป็นฟอร์มที่อยู่ในแถบ "Home"

ต้องอ้างอิงชื่อฟอร์มยังไงดีครับ











 

12 มี.ค. 63 , 14:52:01
ตอบกลับ #3

PNR

: Loop เปลี่ยนสีแถบ Navigation
« ตอบกลับ #3 เมื่อ: 12 มี.ค. 63 , 14:52:01 »
ส่งไฟล์มาที่ inbox ส่วนตัวหน่อยครับผมดูให้
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 

12 มี.ค. 63 , 16:25:19
ตอบกลับ #4

Kxess

: Loop เปลี่ยนสีแถบ Navigation
« ตอบกลับ #4 เมื่อ: 12 มี.ค. 63 , 16:25:19 »
ผมไม่เข้าใจว่าทำไมมันไม่วนเปลี่ยนสีให้ครบทุกแถบ

ผมสามารถอ้างอิงโดยใส่โค้ดทีละบรรทัดแบบนี้ ในเหตุการณ์ onload ของฟอร์มหลัก

Me.Nav_Home.BackColor = 11193702
Me.Nav_Home_Sub1.BackColor = 11193702
Me.Nav_Customers.BackColor = 11193702
.
.
.

แล้วก็วนไปเรื่อย ๆ ทุกแถบก็ได้ สีก็เปลี่ยนทุกแถบ แต่พอจะลอง Loop ดูกลับไม่ได้


 

13 มี.ค. 63 , 08:42:32
ตอบกลับ #5

PNR

: Loop เปลี่ยนสีแถบ Navigation
« ตอบกลับ #5 เมื่อ: 13 มี.ค. 63 , 08:42:32 »
แบบนี้ไหมครับ



Sub Formstyle(frm As Form)
For Each ctl In frm.Controls
         If ctl.ControlType = acNavigationButton Or acNavigationControl And ctl.Tag = "b1" Then
                      ctl.BackColor = 4210943
         End If
    Next ctl
    'ctl = Nothing
End Sub

« แก้ไขครั้งสุดท้าย: 13 มี.ค. 63 , 08:48:12 โดย PNR »
เรียนเพื่อนสมาชิกและอาจารย์ทุกท่าน
ผมไม่ใช่อาจารย์และไม่ใช่ผู้ที่แตกฉานใน Access นะครับ
แค่ผู้หนึ่งที่แชร์ความรู้เท่าที่มี ถ้าหากอาจารย์ทุกท่านเห็นว่ายังไม่ถูกต้อง
กรุณาโพสตอบกระทู้ส่วนเนื้อหาที่น่าจะถูกต้องกว่าให้ด้วยเพื่อเป็นวิทยาทาน
 
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess

13 มี.ค. 63 , 08:59:26
ตอบกลับ #6

Kxess

: Loop เปลี่ยนสีแถบ Navigation
« ตอบกลับ #6 เมื่อ: 13 มี.ค. 63 , 08:59:26 »
แบบนี้เลยครับ ขอบคุณมากครับ  :love: :miao:

 


บอร์ดเรียนรู้ Access สำหรับคนไทย