 |
|
อยู่ๆก้ บันทึก ข้อมูลลง Access 2007 ไม่ได้จากปกติ ที่กดบันทึกมันจะเซิฟไว้ให้พึ่งเป็นวันนี้ครับ ช่วยผมด้วย ต้องส่งโปรเจ็ค |
|
 |
|
|
 |
 |
|
ต่อให้เอาโค้ดมาทั้งโปรเจค ก็บอกยาก ว่า เกิดจากอะไร ภ้าไม่เอา Error มันมาด้วย
แต่ถ้าไม่มี Error และ ไม่มีการเปลี่ยนแปลงโค้ด มันก็แปลกอยู่
|
 |
 |
 |
 |
Date :
2019-03-14 14:57:56 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Public Class Form5
Private Sub ใบเสร็จลูกค้าBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.ใบเสร็จลูกค้าBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DatabasePRODataSet1)
End Sub
Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'DatabasePRODataSet1.ใบเสร็จลูกค้า' table. You can move, or remove it, as needed.
Me.ใบเสร็จลูกค้าTableAdapter.Fill(Me.DatabasePRODataSet1.ใบเสร็จลูกค้า)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ใบเสร็จลูกค้าBindingSource.AddNew()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
ใบเสร็จลูกค้าBindingSource.EndEdit()
ใบเสร็จลูกค้าTableAdapter.Update(Me.DatabasePRODataSet1.ใบเสร็จลูกค้า)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
ใบเสร็จลูกค้าBindingSource.RemoveCurrent()
ใบเสร็จลูกค้าBindingSource.EndEdit()
ใบเสร็จลูกค้าTableAdapter.Update(Me.DatabasePRODataSet1.ใบเสร็จลูกค้า)
End Sub
End Class
ที่เขียนไว้ครับ
|
 |
 |
 |
 |
Date :
2019-03-14 15:22:13 |
By :
ืZhang |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าจะ อัพเดท ข้อมูลที่แก้ หรือ เพิ่มใหม่ ใช้ตัวนี้ครับ
Code (VB.NET)
Me.Validate()
Me.ใบเสร็จลูกค้าBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DatabasePRODataSet1)
|
 |
 |
 |
 |
Date :
2019-03-14 15:38:19 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Public Class Form5
Private Sub ใบเสร็จลูกค้าBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Me.ใบเสร็จลูกค้าBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DatabasePRODataSet1)
End Sub
Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'DatabasePRODataSet1.ใบเสร็จลูกค้า' table. You can move, or remove it, as needed.
Me.ใบเสร็จลูกค้าTableAdapter.Fill(Me.DatabasePRODataSet1.ใบเสร็จลูกค้า)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ใบเสร็จลูกค้าBindingSource.AddNew()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Validate()
Me.ใบเสร็จลูกค้าBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DatabasePRODataSet1)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
ใบเสร็จลูกค้าBindingSource.RemoveCurrent()
ใบเสร็จลูกค้าBindingSource.EndEdit()
ใบเสร็จลูกค้าTableAdapter.Update(Me.DatabasePRODataSet1.ใบเสร็จลูกค้า)
End Sub
End Class
ลองแล้วครับ ก้ยังเหมือนเดิมไม่อัพเดท ในaccess ให้ครับ
กดเพิ่มแล้วกรอกข้อมูล แล้วบันทึกแล้ว

มาดูใน database ใน access ไม่อัพเดทให้ครับ

|
 |
 |
 |
 |
Date :
2019-03-14 15:48:32 |
By :
ืZhang |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
โค้ด น่ะถูกแล้วนะครับ ยึดตามนี้ไว้ก่อน
ขอถามเพิ่มว่า
datagrid หรือ พวก textbox ในฟอร์ม ได้ทำ Binding กับ ใบเสร็จลูกค้าBindingSource แล้วใช่ไม๊ครับ
ลองเช็คดูดีๆ ก่อน
การจะใช้
Code (VB.NET)
Me.Validate()
Me.ใบเสร็จลูกค้าBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.DatabasePRODataSet1)
เงื่อนไข คือ control ต่างๆที่เกี่ยวข้องมันต้องผูกกับ ใบเสร็จลูกค้าBindingSource
ทดสอบง่ายๆ คือ
1. สร้างหน้ามาใหม่ 1 หน้า
2. ลาก ตาราง จาก dataSource ฝั่ง ซ้าย(ไม่ใช่ datagrid นะครับ) มาลงในฟอร์ม มันจะได้ datagrid มาให้เรา
3. พิมพ์ข้อมูล แล้ว บันทึก ดู
4.เช็คเทียบโค้ด ระหว่าง หน้าที่ใช้ได้กับ หน้าที่ใช้ไม่ได้ว่าต่างกันตรงไหน
|
 |
 |
 |
 |
Date :
2019-03-14 16:07:20 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มันจะเป็นแบบนี้นะครับ
ในกรณีที่เราไม่ได้ลากมาทั้ง ตาราง
จะได้แบบนี้
ก่อน Binding

หลัง Binding

ซึ่งจะเห็นว่า มันจะมาแค่โค้ด Fill

แต่ถ้าสร้งาหน้าใหม่ แล้วลากมาทั้งตารางจะได้แบบนี้

มันจะได้ BindingNavigator และ โค้ดสำหรับ Update มาด้วย

ส่วนถ้าเป็น textbox มันก็จะต้องมี Binding กับ ฟิวด์ ในตาราง เช่นกัน

ถ้าแบบนี้ ยังไงก็เซฟได้ ฟันธงครับ
ลองทำก่อน อย่าเพิ่งดัด แปลงโค้ดนะครับ
คล่องเมื่อไหร่ค่อยดัดแปลงก็ยังไม่สายกัน
|
 |
 |
 |
 |
Date :
2019-03-14 17:24:06 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เช็คดูว่ามีโปรแกรมอะไรเปิด access file ซ้อนหรือเปล่า
access โดยปกติมันจะเป็น database ระดับ standalone เท่านั้นนะครับ
เปิดใช้งานได้แค่ โปรแกรมเดียว เมื่อเปิดแล้วต้องปิด
ไม่อย่างนั้น โปรแกรมต่อมาจะอ่านได้อย่างเดียวไม่สามารถเขียนได้
ก็ลองตรวจสอบในส่วนนี้ด้วย
จริงๆ มันมีวิธีที่จะใช้งานได้แบบ public อยู่ แต่ผมจำไม่ได้แล้ว ไม่ได้ใช้งานนานแล้ว
ลองค้นจาก google ดูครับ
|
 |
 |
 |
 |
Date :
2019-03-16 14:38:12 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|