ส่งค่าข้ามฟอร์มใน Access โดยไม่ต้องประกาศตัวแปร

บทความโดย: 9Expert Team

ส่งค่าข้ามฟอร์มใน Access โดยไม่ต้องประกาศตัวแปร

สำหรับใครที่พัฒนาโปรแกรมโดยใช้ Microsoft Access น่าจะมีความจำเป็นในการส่งค่าจาก Control บนฟอร์มหนึ่ง ไปแสดงยังอีกฟอร์มหนึ่ง บางท่านอาจใช้เก็บค่าตัวแปรใน Action SetTempVars ซึ่งอยู่ในชุดคำสั่ง Macro Access หรือ บางท่านอาจใช้วิธีเขียน Code ประกาศตัวแปรรับค่าแบบ Public เพื่อให้รู้จักค่าตัวแปรข้ามฟอร์มได้ แต่สำหรับบทความนี้ มีวิธีที่ง่ายกว่านั้น เราสามารถส่งค่าตัวแปรจากฟอร์มหนึ่งไปยังอีกฟอร์มหนึ่ง โดยที่ไม่ต้องใช้ Macro หรือ เขียน Code แต่อย่างใด

9Expert Team 2 นาที

สำหรับใครที่พัฒนาโปรแกรมโดยใช้ Microsoft Access
น่าจะมีความจำเป็นในการส่งค่าจาก Control บนฟอร์มหนึ่ง ไปแสดงยังอีกฟอร์มหนึ่ง 

บางท่านอาจใช้เก็บค่าตัวแปรใน Action SetTempVars  ซึ่งอยู่ในชุดคำสั่ง Macro Access หรือ
บางท่านอาจใช้วิธีเขียน Code ประกาศตัวแปรรับค่าแบบ Public เพื่อให้รู้จักค่าตัวแปรข้ามฟอร์มได้

แต่สำหรับบทความนี้ มีวิธีที่ง่ายกว่านั้น เราสามารถส่งค่าตัวแปรจากฟอร์มหนึ่งไปยังอีกฟอร์มหนึ่ง
โดยที่ไม่ต้องใช้ Macro หรือ เขียน Code แต่อย่างใด  
 
ยกตัวอย่างเช่น การนำค่าชื่อ Employee ที่ login จากฟอร์ม FLogin ไปแสดงบนฟอร์ม Sales Reports Dialog

จากรูป ขั้นตอนการทำงานเป็นดังนี้

หมายเลข 1 ใส่ Employee และ Password   (ฟอร์ม FLogIn)

หมายเลข 2 กดปุ่ม OK  (ฟอร์ม FLogIn)  เพื่อสั่งให้เปิดฟอร์ม Sales Reports Dialog

หมายเลข 3 จะเห็นว่า  Employee จาก FLogin นั้น ได้แสดงที่ฟอร์ม Sales Reports Dialog ด้วย

สำหรับตัวอย่างนี้ Employee ที่ FLogin นั้น เป็น ComboBox ซึ่งมีการกำหนด Property ของ Control เรียบร้อยแล้ว
เพื่อให้แสดงการ Lookup ข้อมูล FirstName และ LastName จาก Table Employees
และ ก็ต้องมี ComboBox ที่กำหนดค่าเช่นเดียวกันอยู่บนฟอร์ม  Sales Reports Dialog ด้วย

Property

ฟอร์ม FLogin

ฟอร์ม Sales Reports Dialog

Name

cboUserName

cboUserName

Row Source

SELECT Employees.EmployeeID, [LastName] & "," & [FirstName] AS [Full Name] FROM Employees;

SELECT Employees.EmployeeID, [LastName] & "," & [FirstName] AS [Full Name] FROM Employees;

Row Source Type

Table/Query

Table/Query

Bound Column

1

1

Column Count

2

2

Column Widths

0 cm

0 cm

จะเห็นว่าที่ฟอร์ม  FLogin และ Sales Reports Dialog นั้น ComboBox มีชื่อเหมือนกัน คือ cboUserName
ทั้งนี้ ไม่จำเป็นต้องเหมือนกันก็ได้ค่ะ

ขั้นตอนต่อมาหลังจากเตรียม Control ComboBox ที่กำหนด Property ให้เหมือนกันเรียบร้อยแล้ว

สิ่งที่ต้องทำต่อมา คือ การกำหนดที่ Property Default Value ของ ComboBox
ที่อยู่บนฟอร์ม Sales Reports Dialog เป็น  = Forms("flogin").[cboUserName]

ซึ่ง รูปแบบของการเขียนคือ  = Forms("ชื่อฟอร์ม").[ชื่อคอนโทรล]

จาก = Forms("flogin").[cboUserName]  หมายถึง ค่าของ cboUserName ที่อยู่บนฟอร์ม Flogin ค่ะ 

ย้ำอีกครั้งค่ะ ว่า ชื่อฟอร์ม คือ  flogin ไม่ใช่  Sales Reports Dialog
เนื่องจากเราจะนำค่าจาก ComboBox จาก flogin มาแสดงที่ ComboBox บนฟอร์ม Sales Reports Dialog ค่ะ

เพื่อให้เห็นภาพมากขึ้น
ลองดูรูปเป็นการกำหนด Property Default Value ของ Combobox ที่อยู่บนฟอร์ม Sales Reports Dialog
จะเห็นว่า Property  Default Value นั้น อยู่ในส่วนของป้าย Data นะคะ

แบบฟอร์มการเข้าสู่ระบบ

จากตัวอย่างนั้น Control นั้น เป็น ComboBox  
แต่ในความเป็นจริงแล้ว เราสามารถนำค่าจาก Text Box มาแสดงได้เช่นกันค่ะ

อย่างไรทดลองใช้วิธีนี้ดู แทนวิธีการเก็บค่าตัวแปรใน Macro หรือ ใน Module กันดูค่ะ

หลักสูตรที่เกี่ยวข้อง

บทความที่เกี่ยวข้อง