Thep Excel

AccessControlKindประเภทการควบคุมการเข้าถึง

ประเภทการแจงนับ (Enumeration Type) สำหรับกำหนดประเภทการควบคุมการเข้าถึงข้อมูล ใช้ในการพัฒนาตัวเชื่อมต่อ Power Query แบบกำหนดเอง

fx
=AccessControlKind.Allow | AccessControlKind.Deny

ความนิยม2/10
ความยาก3/10
ประโยชน์2/10

อัปเดต 4 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
[Allow]ไม่บังคับ Enumeration Value ค่าที่ใช้เพื่อระบุการอนุญาต – ยินยอมให้เข้าถึงข้อมูล
[Deny]ไม่บังคับ Enumeration Value ค่าที่ใช้เพื่อระบุการปฏิเสธ – ไม่อนุญาติให้เข้าถึงข้อมูล

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

AccessControlKind เป็นประเภทการแจงนับในการนิยามประเภทของการควบคุมการเข้าถึง (Access Control Kind) ซึ่งใช้สำหรับการกำหนดสิทธิ์การเข้าถึงในตัวเชื่อมต่อข้อมูลแบบกำหนดเอง ประกอบด้วยค่าต่างๆ เช่น Allow และ Deny ที่ช่วยให้ผมสามารถกำหนดว่าใครสามารถเข้าถึงข้อมูลได้บ้าง

ที่เจ๋งคือ ในการสร้างตัวเชื่อมต่อที่ปลอดภัย AccessControlKind ทำให้ผมสามารถระบุสิทธิ์ได้อย่างชัดเจนและเป็นระเบียบ ไม่ต้องสร้างสัญลักษณ์หรือค่าใดๆ ด้วยตนเองเลย

ส่วนตัวผม ใช้ AccessControlKind เมื่อต้องการสร้างตัวเชื่อมต่อสำหรับ API ที่มีความเป็นส่วนตัวสูง โดยต้องกำหนดว่าอะไรคือ Allow และอะไรคือ Deny เพื่อให้ผู้ใช้เข้าใจข้อกำหนดการเข้าถึง 😎

Examples

ตรวจสอบว่าการควบคุมการเข้าถึงอนุญาตหรือไม่let MyAccessControl = AccessControlKind.Allow in if MyAccessControl = AccessControlKind.Allow then "ยินยอม" else "ปฏิเสธ"

เมื่อตั้งค่า AccessControlKind ให้เป็น Allow แล้วเปรียบเทียบ จะได้ผลลัพธ์ "ยินยอม" ตามนั้น

fx
let
MyAccessControl = AccessControlKind.Allow
in
if MyAccessControl = AccessControlKind.Allow then "ยินยอม" else "ปฏิเสธ"

ผลลัพธ์"ยินยอม"
กำหนดค่า Access Control สำหรับผู้ใช้หลายคนlet Users = {"Alice", "Bob", "Charlie"}, AccessRules = Table.FromRecords( List.Transform( Users, each [User = _, AccessLevel = AccessControlKind.Allow] ) ) in A…

สร้างตารางที่เก็บรายชื่อผู้ใช้และระดับการเข้าถึง โดยกำหนดให้ทุกคนได้รับอนุญาต

fx
let
Users = {"Alice", "Bob", "Charlie"},
AccessRules = Table.FromRecords(
List.Transform(
Users,
each [User = _, AccessLevel = AccessControlKind.Allow]
)
)
in
AccessRules

ผลลัพธ์ตาราง 3 แถว: Alice, Bob, Charlie ทั้งหมด Allow
เปลี่ยนค่าตามเงื่อนไขlet UserRole = "Admin", AccessLevel = if UserRole = "Admin" then AccessControlKind.Allow else AccessControlKind.Deny in AccessLevel

ถ้า UserRole เป็น Admin ให้เข้าถึงได้ (Allow) ถ้าไม่ใช่ให้ปฏิเสธ (Deny)

fx
let
UserRole = "Admin",
AccessLevel = if UserRole = "Admin" then AccessControlKind.Allow else AccessControlKind.Deny
in
AccessLevel

ผลลัพธ์AccessControlKind.Allow
นับจำนวนการอนุญาตและปฏิเสธlet Controls = {AccessControlKind.Allow, AccessControlKind.Allow, AccessControlKind.Deny, AccessControlKind.Allow}, AllowCount = List.Count(List.Select(Controls…

นับจำนวนครั้งที่ได้รับอนุญาตและปฏิเสธจากรายการค่า AccessControlKind ที่กำหนด

fx
let
Controls = {AccessControlKind.Allow, AccessControlKind.Allow, AccessControlKind.Deny, AccessControlKind.Allow},
AllowCount = List.Count(List.Select(Controls, each _ = AccessControlKind.Allow)),
DenyCount = List.Count(List.Select(Controls, each _ = AccessControlKind.Deny))
in
"Allow: " & Text.From(AllowCount) & ", Deny: " & Text.From(DenyCount)

ผลลัพธ์"Allow: 3, Deny: 1"

FAQs

AccessControlKind.Allow กับ AccessControlKind.Deny ต่างกันยังไง?+

ผมจะอธิบายให้ง่าย Allow คือ "ยินยอม" ให้เข้าถึงข้อมูลได้ ส่วน Deny คือ "ปฏิเสธ" ไม่ให้เข้าถึง จากประสบการณ์ผม ต้องเลือกให้ถูกตามสถานการณ์จึงจะปลอดภัย

ผมจะตรวจสอบว่าค่าไหนคือ Allow ได้ยังไง?+

ผมแนะนำให้ใช้ if…then…else หรือเปรียบเทียบกับ AccessControlKind.Allow โดยตรง เช่น `if MyControl = AccessControlKind.Allow then…` ส่วนตัวผม มักใช้วิธีนี้เวลาต้องกำหนดเงื่อนไข

AccessControlKind มีค่าอื่นๆอีกหรือ?+

ไม่มีครับ มีแค่ 2 ค่า Allow และ Deny เท่านั้น ซึ่งตามประสบการณ์ผม เพียงพอสำหรับการควบคุมการเข้าถึงในกรณีส่วนใหญ่

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ AccessControlKind จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้AccessControlKindenumerations
List functions (1)
List.Select

List.Select จะรับ List และฟังก์ชันเงื่อนไข (selection as function) โดยจะประเมินฟังก์ชันเงื่อนไขกับสมาชิกแต่ละตัว หากฟังก์ชันคืนค่า true จะเก็บสมาชิกนั้นไว้ใน List ใหม่ หากคืนค่า false จะถูกคัดทิ้งไป

Table functions (1)
Table.FromRecords

แปลง List ของ Record เป็นตาราง โดยแต่ละ Record กลายเป็นหนึ่งแถว เหมาะสำหรับข้อมูลจาก API หรือ JSON

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่