กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
333 5
URL.หัวข้อ /
URL
เขียนคำสั่งรับค่า ให้ค่าได้อย่างไรครับ
Table1 มี ฟิลด์หลักดังนี้ครับ 1.Class (ระดับชั้นเรียน) 2. Room (ห้องเรียน)
Table2 มีฟิลด์หลักดังนี้ครับ
1.Class (ระดับชั้นเรียน) 2. Room (ห้องเรียน) 3. Name(ชื่อน.ร) 4. Lname (สกุล)
ฟอร์ม 1 จะเชื่อมกับ Table1 มี TxtClass กับ TxtRoom
เมื่อป้อนข้อมูล Class กับ Room แล้ว เมื่อคลิกที่ btnOpenForm2
ก็จะแสดงฟอร์ม 2 ขึ้นมา (ที่ฟอร์ม 2 เชื่อมกับ Table2 ซึ่งมี 4 ฟิลด์ครับ มี TextBox 4 ตัวครับ)
ทำอย่างไรครับ ถ้าต้องการ ให้ป้อนเฉพาะค่า Name กับ Lname โดยไม่ต้องป้อน Class กับ Room
แต่จะนำค่า Class กับ Room มาที่ Table2 เอง
โดยเอาค่าทั้ง 2 ค่า จาก Form1 หรือจาก Table1
-โดยที่ฟอร์ม 2 ไม่ต้องสร้างเป็น Subform และ นำมาแสดงในฟอร์ม 1
- และไม่ต้อง Link Child Field และ Link Master Field
============================
1. ถ้าจะใช้วิธีการเขียนโค้คดึงค่า จาก Textbox ในฟอร์ม 1 มาใส่ Textbox ที่ฟอร์ม 2 จะทำอย่างไรครับ
ในกรณีที่ฟอร์ม 2 มี Textbox ครบ 4 ตัว
2. ถ้าจะใช้วิธีการเขียนค่าจาก Table1.Field Class และ FieldRoom มาใส่
ใน FieldClass และ FieldRoom ของTable2 จะทำได้อย่างไรครับ
ในกรณีที่ฟอร์ม 2 มีแค่ Textbox Name กับ LastName ครับ
แต่ค่า Class+Room จะถูกบันทึกในTable2 ด้วย
ขอเรียนรู้แนวทางในการเขียนคำสั่งในลักษณะแบบนี้ด้วยครับว่าจะเขียนได้อย่างไรครับ
ขอขอบคุณอาจารย์ มากครับ
Table2 มีฟิลด์หลักดังนี้ครับ
1.Class (ระดับชั้นเรียน) 2. Room (ห้องเรียน) 3. Name(ชื่อน.ร) 4. Lname (สกุล)
ฟอร์ม 1 จะเชื่อมกับ Table1 มี TxtClass กับ TxtRoom
เมื่อป้อนข้อมูล Class กับ Room แล้ว เมื่อคลิกที่ btnOpenForm2
ก็จะแสดงฟอร์ม 2 ขึ้นมา (ที่ฟอร์ม 2 เชื่อมกับ Table2 ซึ่งมี 4 ฟิลด์ครับ มี TextBox 4 ตัวครับ)
ทำอย่างไรครับ ถ้าต้องการ ให้ป้อนเฉพาะค่า Name กับ Lname โดยไม่ต้องป้อน Class กับ Room
แต่จะนำค่า Class กับ Room มาที่ Table2 เอง
โดยเอาค่าทั้ง 2 ค่า จาก Form1 หรือจาก Table1
-โดยที่ฟอร์ม 2 ไม่ต้องสร้างเป็น Subform และ นำมาแสดงในฟอร์ม 1
- และไม่ต้อง Link Child Field และ Link Master Field
============================
1. ถ้าจะใช้วิธีการเขียนโค้คดึงค่า จาก Textbox ในฟอร์ม 1 มาใส่ Textbox ที่ฟอร์ม 2 จะทำอย่างไรครับ
ในกรณีที่ฟอร์ม 2 มี Textbox ครบ 4 ตัว
2. ถ้าจะใช้วิธีการเขียนค่าจาก Table1.Field Class และ FieldRoom มาใส่
ใน FieldClass และ FieldRoom ของTable2 จะทำได้อย่างไรครับ
ในกรณีที่ฟอร์ม 2 มีแค่ Textbox Name กับ LastName ครับ
แต่ค่า Class+Room จะถูกบันทึกในTable2 ด้วย
ขอเรียนรู้แนวทางในการเขียนคำสั่งในลักษณะแบบนี้ด้วยครับว่าจะเขียนได้อย่างไรครับ
ขอขอบคุณอาจารย์ มากครับ
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R03568
ที่จริงตารางก็ไม่มีอะไรมากครับ ถ้าจะทำให้ถูกต้องก็คงจะทำแบบที่อาจารย์
แนะนำครับ คือแบ่งเป็น 3 แต่ว่าจุดมุ่งหมายอยากทราบวิธีการรับค่าส่งค่า
คืออ่านค่า ที่ได้ทราบก็อย่างที่อาจารย์แนะนำ มาคืออ้างอิงข้อมูลจาก Form1
ครับ แต่มีวิธีอื่นอีกหรือเปล่าครับในการอ่านค่า
เช่นอ่านจาก Table เลย เช่น
อ่านจาก Table1 ที่เก็บ Class มาใส่ใน Table2 Field Class
(ตัวนี้ไม่ต้องอาศัย Textbox ครับ )
คล้ายกับว่า
ตาราง2 ฟิลด์Class Curruent Recort = ตาราง 1ฟิลด์Class Curruent Recort คล้ายๆ แบบนี้ พอมีคำสั่งหรือเปล่าครับ
================
และอ่านจาก Table1 เรคคอร์ดสุดท้าย มาใส่ใน Textbox ที่ฟอร์ม2
(ซึ่งฟอร์ม 2 ปัจจุบัน เชื่อมโยงกับ Table2
แต่ว่า มีแค่ Textbox อันเดียวที่ต้องการอ่านค่าจาก Table1 ครับ
เมื่อได้ค่าจาก Tabel1 ตามต้องการแล้ว จะบันทึกค่าที่ได้ ลงใน Table2 ครับ
==============================
ขอบคุณ อ.สุภาพ ครับ
แนะนำครับ คือแบ่งเป็น 3 แต่ว่าจุดมุ่งหมายอยากทราบวิธีการรับค่าส่งค่า
คืออ่านค่า ที่ได้ทราบก็อย่างที่อาจารย์แนะนำ มาคืออ้างอิงข้อมูลจาก Form1
ครับ แต่มีวิธีอื่นอีกหรือเปล่าครับในการอ่านค่า
เช่นอ่านจาก Table เลย เช่น
อ่านจาก Table1 ที่เก็บ Class มาใส่ใน Table2 Field Class
(ตัวนี้ไม่ต้องอาศัย Textbox ครับ )
คล้ายกับว่า
ตาราง2 ฟิลด์Class Curruent Recort = ตาราง 1ฟิลด์Class Curruent Recort คล้ายๆ แบบนี้ พอมีคำสั่งหรือเปล่าครับ
================
และอ่านจาก Table1 เรคคอร์ดสุดท้าย มาใส่ใน Textbox ที่ฟอร์ม2
(ซึ่งฟอร์ม 2 ปัจจุบัน เชื่อมโยงกับ Table2
แต่ว่า มีแค่ Textbox อันเดียวที่ต้องการอ่านค่าจาก Table1 ครับ
เมื่อได้ค่าจาก Tabel1 ตามต้องการแล้ว จะบันทึกค่าที่ได้ ลงใน Table2 ครับ
==============================
ขอบคุณ อ.สุภาพ ครับ
3 @R03569
ลองใช้ DLast() เข้าช่วยดูครับ อาจใช้กับ OnCurrent ของ Form2 เช่น
Private Sub Form_Current()
' ถ้าใส่ข้อมูลใหม่
If Me.NewRecord Then
Me.Class = DLast("Class","Table1")
Me.Room = DLast("Room","Table1")
End If
End If
ไม่รู้ว่าจะตรงกับความต้องการหรือเปล่านะ ลองปรับใช้ดูครับ
Private Sub Form_Current()
' ถ้าใส่ข้อมูลใหม่
If Me.NewRecord Then
Me.Class = DLast("Class","Table1")
Me.Room = DLast("Room","Table1")
End If
End If
ไม่รู้ว่าจะตรงกับความต้องการหรือเปล่านะ ลองปรับใช้ดูครับ
4 @R03570
ขอบคุณมากครับจะลองนำไปใช้ดูครับ
ถ้าไงมีปัญหาจะรบกวนถามอาจารย์อีกครั้งครับ
ขอบคุณมากครับสำหรับคำตอบที่มีประโยชน์
ถ้าไงมีปัญหาจะรบกวนถามอาจารย์อีกครั้งครับ
ขอบคุณมากครับสำหรับคำตอบที่มีประโยชน์
5 @R03574
ผมได้ลองใช้คำสั่งที่อาจารย์แนะนำทั้ง 2 อย่างแล้วครับ มันฟ้องว่า
Run-time error '2135'
คุณสมบัตินี้เป็นชนิดอ่านอย่างเดียว และไม่สามารถถูกตั้งค่าได้
จะแก้ไขอย่างไรครับ
ขอบคุณครับ
Run-time error '2135'
คุณสมบัตินี้เป็นชนิดอ่านอย่างเดียว และไม่สามารถถูกตั้งค่าได้
จะแก้ไขอย่างไรครับ
ขอบคุณครับ
Time: 0.1197s
ผมว่าจะต้องแยกตารางออกเป็น 3 ตาราง โดยมีฟีลด์คร่าวๆ ดังนี้
Students: เก็บข้อมูลของนักเรียน
StudentID, FName, LName, ...
Rooms: เก็บข้อมูลของห้องเรียนต่างๆ
RooomID, BuildingName, ...
ClassRoom: เก็บข้อมูลการจัดการชั้นเรียน
AutoID, RoomID, StudentID
หรืออะไรทำนองนี้ครับ
ส่วนที่ถามว่า
-โดยที่ฟอร์ม 2 ไม่ต้องสร้างเป็น Subform และ นำมาแสดงในฟอร์ม 1
- และไม่ต้อง Link Child Field และ Link Master Field
ถ้าไม่ทำอย่างนี้ จะทำให้การจัดการคีย์ข้อมูลมีความยุ่งยาก และทำไม่ค่อยสะดวกเท่าที่ควร
ไม่แนะนำให้ทำอย่างนี้ครับ
แต่ถ้ามีเหตุผลเฉพาะ ก็ทำได้ครับ
ให้อ้างอิงข้อมูลจาก Form ที่ 1 ดังนี้
Me.Class = Forms!Form1!Class
Me.Room = Forms!Form1!Room