thaicosmic.com

หนัง

วันเสาร์ที่ 25 พฤษภาคม พ.ศ. 2556

คุณสมบัติ 'อนุญาตให้เพิ่ม' (AllowAdditions) VBA

http://office.microsoft.com/th-th/access-help/HA001232715.aspx

นำไปใช้กับ

วัตถุฟอร์ม (Form)

คุณสามารถใช้คุณสมบัติ อนุญาตให้เพิ่ม เพื่อระบุว่าผู้ใช้สามารถเพิ่มระเบียนเมื่อใช้ฟอร์มได้หรือไม่ คุณสมบัตินี้มีชนิดเป็น Booleanแบบอ่าน/เขียนได้
expression.AllowAdditions
expression จำเป็นต้องมี เป็นนิพจน์ที่ส่งกลับวัตถุใดวัตถุหนึ่งในรายการ 'นำไปใช้กับ'

การตั้งค่า

คุณสมบัติ อนุญาตให้เพิ่ม ใช้การตั้งค่าดังต่อไปนี้
การตั้งค่าVISUAL BASICคำอธิบาย
ใช่True (ค่าเริ่มต้น) ผู้ใช้สามารถเพิ่มระเบียนใหม่ได้
ไม่ใช่Falseผู้ใช้ไม่สามารถเพิ่มระเบียนใหม่ได้
คุณสามารถตั้งค่าคุณสมบัติ อนุญาตให้เพิ่ม โดยใช้แผ่นคุณสมบัติ แมโคร หรือโค้ดของ Visual Basic for Applications (VBA) ของฟอร์มได้

ข้อสังเกต

ตั้งค่าคุณสมบัติ อนุญาตให้เพิ่ม เป็น ไม่ใช่ เพื่ออนุญาตให้ผู้ใช้ดูหรือแก้ไขระเบียนที่มีอยู่แต่ไม่สามารถเพิ่มระเบียนใหม่ได้
ถ้าต้องการป้องกันการเปลี่ยนแปลงในระเบียนที่มีอยู่ (ทำให้ฟอร์มเป็นแบบอ่านอย่างเดียวเท่านั้น) โดยตั้งค่าคุณสมบัติ อนุญาตให้เพิ่ม,อนุญาตให้ลบ และ อนุญาตให้แก้ไข เป็น ไม่ใช่ นอกจากนี้คุณยังสามารถทำให้ระเบียนเป็นแบบอ่านอย่างเดียวได้โดยการตั้งค่าคุณสมบัติ ชนิดชุดระเบียน เป็น Snapshot ได้เช่นกัน
ถ้าคุณต้องการเปิดฟอร์มเพื่อการป้อนข้อมูลเท่านั้น ให้ตั้งค่าคุณสมบัติ การป้อนข้อมูล ของฟอร์มเป็น ใช่
เมื่อคุณสมบัติ อนุญาตให้เพิ่ม ถูกตั้งค่าเป็น ไม่ใช่ คำสั่ง สร้างระเบียน ภายใต้ ระเบียน บนแท็บ ข้อมูล จะไม่พร้อมใช้งาน
 หมายเหตุ   เมื่อใช้อาร์กิวเมนต์ 'โหมดข้อมูล' ของแอคชัน OpenForm นั้น Microsoft Office Access 2007 จะเขียนทับการตั้งค่าคุณสมบัติของฟอร์มจำนวนหนึ่ง ถ้าอาร์กิวเมนต์ 'โหมดข้อมูล' ของแอคชัน OpenForm ถูกตั้งค่าไว้เป็น แก้ไข Access จะเปิดฟอร์มด้วยการตั้งค่าคุณสมบัติดังต่อไปนี้
  • อนุญาตให้แก้ไข — ใช่
  • อนุญาตให้ลบ — ใช่
  • อนุญาตให้เพิ่ม — ใช่
  • การป้อนข้อมูล — ไม่ใช่
เมื่อต้องการป้องกันไม่ให้แอคชัน OpenForm เขียนทับการตั้งค่าคุณสมบัติที่มีอยู่ใดๆ เหล่านี้ ให้ละเว้นการตั้งค่าอาร์กิวเมนต์ 'โหมดข้อมูล' เพื่อให้ Access สามารถใช้การตั้งค่าคุณสมบัติที่กำหนดไว้โดยฟอร์มได้

ตัวอย่าง

ตัวอย่างต่อไปนี้จะตรวจสอบคุณสมบัติ ชนิดตัวควบคุม สำหรับตัวควบคุมทั้งหมดบนฟอร์ม สำหรับตัวควบคุมป้ายชื่อและตัวควบคุมกล่องข้อความแต่ละตัว กระบวนงานจะสลับคุณสมบัติ ลักษณะพิเศษ สำหรับตัวควบคุมเหล่านั้น เมื่อคุณสมบัติ ลักษณะพิเศษ ของตัวควบคุมป้ายชื่อถูกตั้งค่าเป็น แรเงา และคุณสมบัติ ลักษณะพิเศษ ของตัวควบคุมกล่องข้อความถูกตั้งค่าเป็น ปกติ อีกทั้งคุณสมบัติAllowAdditionsAllowDeletions และ AllowEdits ทั้งหมดถูกตั้งค่าเป็น True แล้ว ตัวแปร intCanEdit จะถูกสลับเพื่อให้ทำการแก้ไขข้อมูลต้นแบบได้

Sub ToggleControl(frm As Form)
    Dim ctl As Control
    Dim intI As Integer, intCanEdit As Integer
    Const conTransparent = 0
    Const conWhite = 16777215
    For Each ctl in frm.Controls
        With ctl
            Select Case .ControlType
                Case acLabel
                    If .SpecialEffect = acEffectShadow Then
                        .SpecialEffect = acEffectNormal
                        .BorderStyle = conTransparent
                        intCanEdit = True
                    Else
                        .SpecialEffect = acEffectShadow
                        intCanEdit = False
                    End If
                Case acTextBox
                    If .SpecialEffect = acEffectNormal Then
                        .SpecialEffect = acEffectSunken
                        .BackColor = conWhite
                    Else
                        .SpecialEffect = acEffectNormal
                        .BackColor = frm.Detail.BackColor
                    End If
            End Select
        End With
    Next ctl
    If intCanEdit = IFalse Then
        With frm
            .AllowAdditions = False
            .AllowDeletions = False
            .AllowEdits = False
        End With
    Else
        With frm
            .AllowAdditions = True
            .AllowDeletions = True
            .AllowEdits = True
        End With
    End If
End Sub
เพิ่มเติม
    DoCmd.OpenForm "frmPerson", , , stLinkCriteria
    Forms!frmPerson.AllowAdditions = False