นำไปใช้กับ
วัตถุ Form |
วัตถุ Report |
กําหนด นิพจน์สตริง ที่ระบุโดยอาร์กิวเมนต์ OpenArgs ของเมธอด OpenForm ที่เปิดฟอร์ม อ่าน/เขียน ตัวแปร
นิพจน์.OpenArgs
นิพจน์ จำเป็น นิพจน์ที่ส่งกลับวัตถุใดวัตถุหนึ่งในรายการ นําไปใช้กับ
ข้อสังเกต
คุณสมบัตินี้จะพร้อมใช้งานโดยการใช้ แมโคร หรือโดยการใช้โค้ด Visual Basic for Applications (VBA) กับเมธอด OpenForm ของวัตถุ DoCmd เท่านั้น การตั้งค่าคุณสมบัตินี้เป็นแบบอ่านอย่างเดียวในทุกมุมมอง
เมื่อต้องการใช้คุณสมบัติ OpenArgs ให้เปิดฟอร์มโดยใช้เมธอด OpenForm ของวัตถุ DoCmd และตั้งค่าอาร์กิวเมนต์ OpenArgs เป็นนิพจน์สตริงที่ต้องการ การตั้งค่าคุณสมบัติ OpenArgs สามารถใช้ในโค้ดสําหรับฟอร์ม เช่น ใน เปิด กระบวนงานเหตุการณ์ คุณยังสามารถอ้างอิงการตั้งค่าคุณสมบัติในแมโคร เช่น แมโคร Open หรือนิพจน์ เช่น นิพจน์ที่ตั้งค่าคุณสมบัติ ControlSource สําหรับ ตัวควบคุม บนฟอร์ม
ตัวอย่างเช่น สมมติว่าฟอร์มที่คุณเปิดเป็นรายการฟอร์มต่อเนื่องของไคลเอ็นต์ ถ้าคุณต้องการให้ โฟกัส ย้ายไปยังระเบียนไคลเอ็นต์ที่ระบุเมื่อฟอร์มเปิดขึ้น คุณสามารถตั้งค่าคุณสมบัติ OpenArgs เป็นชื่อไคลเอ็นต์ แล้วใช้แอคชัน FindRecord ในแมโคร Open เพื่อย้ายโฟกัสไปยังระเบียนสําหรับไคลเอ็นต์ที่มีชื่อที่ระบุ
ตัวอย่าง
ตัวอย่างต่อไปนี้ใช้คุณสมบัติ OpenArgs เพื่อเปิดฟอร์มพนักงานไปยังระเบียนพนักงานที่ระบุ และสาธิตวิธีที่เมธอด OpenForm ตั้งค่าคุณสมบัติ OpenArgs คุณสามารถเรียกใช้กระบวนงานนี้ได้ตามความเหมาะสม ตัวอย่างเช่น เมื่อมีเหตุการณ์ AfterUpdate สําหรับกล่องโต้ตอบแบบกําหนดเองที่ใช้ใส่ข้อมูลใหม่เกี่ยวกับพนักงาน
Sub OpenToCallahan()
DoCmd.OpenForm "Employees", acNormal, , , _ acReadOnly, , "Callahan" End Sub Sub Form_Open(Cancel As Integer) Dim strEmployeeName As String ' If OpenArgs property contains employee name, find ' corresponding employee record and display it on ' form. For example,if the OpenArgs property ' contains "Callahan", move to first "Callahan" ' record. strEmployeeName = Forms!Employees.OpenArgs If Len(strEmployeeName) > 0 Then DoCmd.GoToControl "LastName" DoCmd.FindRecord strEmployeeName, , True, , _ True, , True End If End Sub
ตัวอย่างถัดไปใช้เมธอด FindFirst เพื่อระบุตำแหน่งพนักงานที่มีชื่อในคุณสมบัติ OpenArgs
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then Dim strEmployeeName As String strEmployeeName = Me.OpenArgs Dim RS As DAO.Recordset Set RS = Me.RecordsetClone RS.FindFirst "LastName = '" & _ strEmployeeName & "'" If Not RS.NoMatch Then Me.Bookmark = RS.Bookmark End If End If End Sub