กระทู้เก่าบอร์ด อ.Yeadram
1,809 6
URL.หัวข้อ /
URL
เปลี่ยนข้อมูลในหน้าฟรอ์ม
หน้า 1
หน้า2
ทำไมพอเปลี่ยนข้อมูลในหน้าที่ 1 แล้วหน้าที่ 2 ก็เปลี่ยนตามหรอคะ ทั้งๆที่หน้าที่2 ไม่ได้ไปทำอะไรกับมันเลยค่ะ หน้าอื่นๆก็เป็นค่ะ
ทั้งสองหน้านี้อยู่ในเทเบิลเดียวกันนะคะ
หน้า2
ทำไมพอเปลี่ยนข้อมูลในหน้าที่ 1 แล้วหน้าที่ 2 ก็เปลี่ยนตามหรอคะ ทั้งๆที่หน้าที่2 ไม่ได้ไปทำอะไรกับมันเลยค่ะ หน้าอื่นๆก็เป็นค่ะ
ทั้งสองหน้านี้อยู่ในเทเบิลเดียวกันนะคะ
6 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R08925
รูปที่ 1 และ 2 มันรูปเดียวกัน โพสผิดหรือเปล่า
3 @R08926
ผิดค่ะ แต่ถ้าเป็นภาพที่ถูก สองหน้านี้จะต่างกันแค่เลขหน้าค่ะ
ตอนนี้แก้ไขปัญหานั้นได้แล้วค่ะ คือตอนแรกทำให้ textbox ที่จะแสดงข้อมูลไม่ให้อ้างอิงกับฟิลด์ใดเลยในเทเิบิล เพื่อจะใช้คำสั่งsqlดึงข้อมูลจากเทเบิลอื่นมาแสดง
แล้วค่อยเก็บข้อมูลที่แสดงใน textbox บนหน้าฟอร์มดังกล่าวลงใน Record Source ของฟอร์มอีกที แต่ตอนนี้ทำให้ textbox ที่จะแสดงข้อมูลนั้นให้อ้างอิงกับฟิลด์ในเทเิบิลโดยตรง แล้วค่อยใช้คำสั่ง sql ดึงข้อมูลจากเทเบิลอื่นมาแสดงค่ะ ซึ่งก็มีปัญหาอีกค่ะ ...ขอท้าวความก่อนนะคะ
เนื่องจากโปรแกรมที่ทำอยู่เป็นโปรแกรมเกี่ยวกับการซื้อขายบ้าน ซึ่ง Record Source ของหน้าฟอร์มนี้ก็คือข้อมูลบ้าน ดิฉันต้องการเก็บข้อมูลที่อยู่้ผู้ติดต่อในเทเบิลข้อมูลบ้าน จากหน้าฟอร์ม ตรงที่อยู่ติดต่อ จะมีลิสด์ให้เลือกว่าเวลาส่งจดหมายหรือติดต่อเรื่องใดๆก็ตาม จะให้ทางบริษัทติดต่อที่อยู่ของบ้านหลังนี้(บ้านที่บริษัทสร้าง) หรือจะเป็นที่อยู่ของบ้านที่ลูกค้าอาศัยอยู่ ซึ่งปัญหาก็คือ เมื่อดึงที่อยู่ของลูกค้ามาแสดง ข้อมูลนั้นจะถูกเก็บในฟิลด์ของที่อยู่บ้าน(บ้านทีบริษัทสร้าง) ทำให้ที่อยู่บ้านจริงๆถูกลบไปค่ะ ซึ่งดิฉันกะจะแก้ไขปัญหานี้โดยการเพิ่มฟิลด์ที่อยู่ติดต่อในเทเบิลข้อมูลบ้านค่ะ
..ขอบคุณนะคะ
ตอนนี้แก้ไขปัญหานั้นได้แล้วค่ะ คือตอนแรกทำให้ textbox ที่จะแสดงข้อมูลไม่ให้อ้างอิงกับฟิลด์ใดเลยในเทเิบิล เพื่อจะใช้คำสั่งsqlดึงข้อมูลจากเทเบิลอื่นมาแสดง
แล้วค่อยเก็บข้อมูลที่แสดงใน textbox บนหน้าฟอร์มดังกล่าวลงใน Record Source ของฟอร์มอีกที แต่ตอนนี้ทำให้ textbox ที่จะแสดงข้อมูลนั้นให้อ้างอิงกับฟิลด์ในเทเิบิลโดยตรง แล้วค่อยใช้คำสั่ง sql ดึงข้อมูลจากเทเบิลอื่นมาแสดงค่ะ ซึ่งก็มีปัญหาอีกค่ะ ...ขอท้าวความก่อนนะคะ
เนื่องจากโปรแกรมที่ทำอยู่เป็นโปรแกรมเกี่ยวกับการซื้อขายบ้าน ซึ่ง Record Source ของหน้าฟอร์มนี้ก็คือข้อมูลบ้าน ดิฉันต้องการเก็บข้อมูลที่อยู่้ผู้ติดต่อในเทเบิลข้อมูลบ้าน จากหน้าฟอร์ม ตรงที่อยู่ติดต่อ จะมีลิสด์ให้เลือกว่าเวลาส่งจดหมายหรือติดต่อเรื่องใดๆก็ตาม จะให้ทางบริษัทติดต่อที่อยู่ของบ้านหลังนี้(บ้านที่บริษัทสร้าง) หรือจะเป็นที่อยู่ของบ้านที่ลูกค้าอาศัยอยู่ ซึ่งปัญหาก็คือ เมื่อดึงที่อยู่ของลูกค้ามาแสดง ข้อมูลนั้นจะถูกเก็บในฟิลด์ของที่อยู่บ้าน(บ้านทีบริษัทสร้าง) ทำให้ที่อยู่บ้านจริงๆถูกลบไปค่ะ ซึ่งดิฉันกะจะแก้ไขปัญหานี้โดยการเพิ่มฟิลด์ที่อยู่ติดต่อในเทเบิลข้อมูลบ้านค่ะ
..ขอบคุณนะคะ
4 @R08927
วิธีการดั้งเดิมที่ทำ เราเรียกฟอร์มประเภทนั้นว่า Unbound Form ส่วนวิธีการหลังเรียกว่า Bound Form ครับ วันหลังจะได้นิยามได้ถูก
ความจริงไม่ต้องเพิ่มที่อยู่ที่ติดต่อในเทเบิลบ้านก็ได้ เพราะมันมีอยู่แล้วในเทเบิลลูกค้า ดังนั้นจะซ้ำซ้อน และยากต่อการจัดการภายหลัง เช่น ถ้าลูกค้าแจ้งเปลี่ยนที่อยู่ คุณก็จะต้องเปลี่ยนทั้งในเทเบิลลูกค้าและเทเบิลบ้าน หากลืมแก้ในเทเบิลหนึ่งเทเบิลใดไป อาจก่อให้เกิดการติดต่อผิดพลาดไปได้ ดังนั้น ควรแค่เพิ่มฟิลด์ที่บอกว่า เวลาติดต่อจะให้ติดต่อไปที่ไหน เป็นฟิลด์ประเภท Integer ก็ได้ ส่วนหน้าจอก็ทำเป็นแค่ Option control อันเล็กๆ 2 อันให้เลือกใน Option Group control ครับ
ความจริงไม่ต้องเพิ่มที่อยู่ที่ติดต่อในเทเบิลบ้านก็ได้ เพราะมันมีอยู่แล้วในเทเบิลลูกค้า ดังนั้นจะซ้ำซ้อน และยากต่อการจัดการภายหลัง เช่น ถ้าลูกค้าแจ้งเปลี่ยนที่อยู่ คุณก็จะต้องเปลี่ยนทั้งในเทเบิลลูกค้าและเทเบิลบ้าน หากลืมแก้ในเทเบิลหนึ่งเทเบิลใดไป อาจก่อให้เกิดการติดต่อผิดพลาดไปได้ ดังนั้น ควรแค่เพิ่มฟิลด์ที่บอกว่า เวลาติดต่อจะให้ติดต่อไปที่ไหน เป็นฟิลด์ประเภท Integer ก็ได้ ส่วนหน้าจอก็ทำเป็นแค่ Option control อันเล็กๆ 2 อันให้เลือกใน Option Group control ครับ
5 @R08928
ขอบคุณค่ะ
ขอถามอ.สันติสุขอีกคำถามคะว่า ในเว็บไซต์นี้http://www.bus.tu.ac.th/usr/surat/mis201/homepage/cmat/access/quiz.htmกล่าวไว้ว่า
"โปรแกรม Access เราสามารถกำหนด Primary key ได้หลายตัว
ผิด ทฤษฎีกล่าวไว้ว่า table หนึ่งๆ มี primary key ได้ตัวเดียว ดังนั้น Access รัักษาทฤษฏีนี้ไว้โดยให้ผู้ใช้ กำหนด primary key ได้ ตัวเดียว "
คำกล่าวที่ว่าจริงหรอคะ ..ถ้าเป็นจริง แล้วถ้าในกรณีที่จำเป็นต้องใช้มากกว่า 1 ตัวละคะจะทำอย่างไร
ขอถามอ.สันติสุขอีกคำถามคะว่า ในเว็บไซต์นี้http://www.bus.tu.ac.th/usr/surat/mis201/homepage/cmat/access/quiz.htmกล่าวไว้ว่า
"โปรแกรม Access เราสามารถกำหนด Primary key ได้หลายตัว
ผิด ทฤษฎีกล่าวไว้ว่า table หนึ่งๆ มี primary key ได้ตัวเดียว ดังนั้น Access รัักษาทฤษฏีนี้ไว้โดยให้ผู้ใช้ กำหนด primary key ได้ ตัวเดียว "
คำกล่าวที่ว่าจริงหรอคะ ..ถ้าเป็นจริง แล้วถ้าในกรณีที่จำเป็นต้องใช้มากกว่า 1 ตัวละคะจะทำอย่างไร
6 @R08929
ไม่ว่าฐานข้อมูลยี่ห้ออะไร ก็ implement ตามทฤษฏีนี้ทั้งนั้นครับ คือ เทเบิลนึงมีได้แค่ Primary Key เพียงตัวเดียว (แต่ประกอบไปด้วยหลายฟิลด์ได้) ส่วนถ้าต้องการสร้าง Key เพิ่ม ก็ต้องสร้างเป็น Index ครับ ซึ่งจะ Unique หรือไม่ก็ได้ครับ Index ที่ไม่ Unique สามารถให้บางฟิลด์ใน Index นั้นมีค่าเป็น Null ได้ แต่ถ้าเป็น Unique Index แล้ว จะอนุญาตให้เป็นอย่างนั้นไม่ได้ Primary Key ก็เป็น Unique Index ประเภทหนึ่งครับ
VDO การสร้าง Index http://www.youtube.com/watch?v=uYtJ_0GSeQc
VDO การสร้าง Index http://www.youtube.com/watch?v=uYtJ_0GSeQc
Time: 0.3367s
นี่คือโค้ดที่ใช้กับฟอร์มนี้นะคะ
Private Sub Combo18_Change()
Dim MyDB As DAO.Database
Dim MyRec As DAO.Recordset
Dim MySQL, MySQL1 As String
Set MyDB = CurrentDb()
hoseId1 = Me.[House ID].Value
'If Combo16 = "" Or IsNull(Combo16) Then
'MsgBox "¡ÃسÒãÊèÃËÑʼÙé·ÓÊÑÒ"
If Me.Combo18.Value = "Modular House" Then
MsgBox "·ÕèÍÂÙèºéÒ¹scg heim"
Call deleteContactAdd
'**************·ÕèÍÂÙèºéÒ¹(ÃÍá¡é)*********************
MySQL = "Select * From [House Info] "
Set MyRec = MyDB.OpenRecordset(MySQL)
Do Until MyRec![House ID] = hoseId1
MyRec.MoveNext
Loop
'************************************************
If MyRec![Modular Address] = "" Or IsNull(MyRec![Modular Address]) Then
Address = "N/A"
Else
Address = MyRec![Modular Address]
End If
'********************************
If MyRec![Modular SubDistrict] = "" Or IsNull(MyRec![Modular SubDistrict]) Then
SubDistrict = "N/A"
Else
SubDistrict = MyRec![Modular SubDistrict]
End If
'********************************
If MyRec![Modular District] = "" Or IsNull(MyRec![Modular District]) Then
District = "N/A"
Else
District = MyRec![Modular District]
End If
'********************************
If MyRec![Modular Province] = "" Or IsNull(MyRec![Modular Province]) Then
Province = "N/A"
Else
Province = MyRec![Modular Province]
End If
'********************************
If MyRec![Modular ZipCode] = "" Or IsNull(MyRec![Modular ZipCode]) Then
PostCode = 0
Else
PostCode = MyRec![Modular ZipCode]
End If
'********************************
ElseIf Me.Combo18.Value = "Customer House" Then
MsgBox "·ÕèÍÂÙèÅÙ¡¤éÒ"
customerId1 = Me.Combo16.Value
Call deleteContactAdd
MySQL = "Select * From Customer "
Set MyRec = MyDB.OpenRecordset(MySQL)
Do Until MyRec![CustomerID] = customerId1
MyRec.MoveNext
Loop
'If MyRec![HomeAddress] = Null Or MyRec![HomeSubDistrict] = Null Or MyRec![HomeDistrict] = Null Or MyRec![HomeProvice] = Null Or MyRec![HomePostelCode] = Null Then
'********************************
If MyRec!Me.HomeAddress = "" Or IsNull(MyRec!Me.HomeAddress) Then
Address = "N/A"
Else
Address = MyRec![HomeAddress]
End If
'********************************
If MyRec![HomeSubDistrict] = "" Or IsNull(MyRec![HomeAddress]) Then
SubDistrict = "N/A"
Else
SubDistrict = MyRec![HomeSubDistrict]
End If
'********************************
If MyRec![HomeDistrict] = "" Or IsNull(MyRec![HomeDistrict]) Then
District = "N/A"
Else
District = MyRec![HomeDistrict]
End If
'********************************
If MyRec![HomeProvice] = "" Or IsNull(MyRec![HomeProvice]) Then
Province = "N/A"
Else
Province = MyRec![HomeProvice]
End If
'********************************
If MyRec![HomePostelCode] = "" Or IsNull(MyRec![HomePostelCode]) Then
PostCode = 0
Else
PostCode = MyRec![HomePostelCode]
End If
End If
'********************************
If IsNull(Me.ModularAddress) Or Me.ModularAddress = "" Then
Me.ModularAddress = Null
Else
Me.ModularAddress = Address
End If
If IsNull(Me.ModularSubDistrict) Or Me.ModularSubDistrict = "" Then
Me.ModularSubDistrict = SubDistrict
End If
Me.ModularDistrict = District
Me.ModularProvince = Province
Me.ModularPostelCode = PostCode
MyRec.Close
MyDB.Close
End Sub
Sub deleteContactAdd()
Me.ModularAddress.Value = ""
Me.ModularSubDistrict.Value = ""
Me.ModularDistrict.Value = ""
Me.ModularProvince.Value = ""
Me.ModularPostelCode.Value = ""
End Sub