ผมสอบถามผู้รู้ว่ากรณีการใช้ frontend โดยเชื่อม linking table มาทุกตารางที่เกี่ยวข้อง เวลาแก้ไขข้อมูลสามารถทำได้ในฟอร์มได้ทุกอย่างแต่ เมื่อทำจะทำการอัพเดทโดยการรันคิวรีอัพเดทหลายตารางพร้อมกันไม่สามารถทำได้ โปรแกรมจะฟ้องว่า การดำเนินการที่ไม่ถูกต้อง ซึ่งกรณีดังกล่าวหากดำเนินการใน file back end ทำได้ทุกฟังก์ชั่น เมื่อแยก frontend ออกมาแล้วเชื่อม ทำไม่ได้ในรูปแบบที่กล่าว เพราะเหตุใดครับอยากถามมานานมากแล้ว เพราะไม่สามารถแก้ไข หรือเป็นเพราะ permission แต่สิทธิผมก็แก้ไขตารางได้ทุกอย่างนะครับ ยกเว้นแค่รันคิวรีอัพเดทแบบที่ผมบอกไม่สามารถทำได้เวลากดปุ่ม บันทึก ลืมบอก backend ผมเป็น access นะครับไม่ได้ใช้ sql แบบธรรมดาปกติ backend อยู่ drive z (แบ่งพาสที่ชั่นใหม่) ตัว frontend อยู่ หน้า desktop ส่วนในวงแลนผม map drive ไว้ที่ z เหมื่อนกันเผื่อให้ user ใช้ร่วมกัน ผมต้องเพิ่มอะไรไหมครับมันถึงจะได้ เบื้องต้นออกตัวไว้ก่อนนะครับผมไม่ได้เรียนมาด้านนี้เลยแต่อาศัยครูพักลักจำสามารถเขียนใช้ได้ในระดับหนึ่งครับ ต้องเพิ่มคำสั่งตรงไหนโปรดชี้แนะครับ
คำสั่ง vba command button ใช้ชุดนี้ครับ
Private Sub cmdsave_Click()
On Error GoTo Err_Command139_Click
If IsNull(Me!POSIT_DT) Then
MsgBox "**** กรุณาบันทึกข้อมูลวันที่ ****"
Exit Sub
End If
DoCmd.SetWarnings False
Dim db As Database, Td As Recordset
Dim ds As Recordset, ttran As Recordset
Set db = DBEngine.Workspaces(0).Databases(0)
Set ds = db.OpenRecordset("positid", DB_OPEN_TABLE)
Set Td = db.OpenRecordset("person", DB_OPEN_TABLE)
Set ttran = db.OpenRecordset("tranpolice", DB_OPEN_TABLE)
Td.Index = "Primarykey"
ds.Index = "Primarykey"
'Update person file
Td.Seek "=", mid
If Td.NoMatch Then
MsgBox "ไม่มีข้อมูลรหัสตำแหน่ง " & mid_posit & " ในตาราง Person"
Else
Td.Edit
Td.Update
Td.Edit
Td("id_posit") = Null
Td.Update
End If
Td.Close
'criterion = "id_posit = mid_posit"
ds.Seek "=", mid_posit
If ds.NoMatch Then
MsgBox ("ไม่มีข้อมูลรหัสตำแหน่ง " & mid_posit & " ในตารางเลขตำแหน่ง")
Else
ds.Edit
ds("id") = 0
ds.Update
End If
ds.Close
ttran.AddNew
ttran("id") = mid
ttran("id_posit") = mid_posit
ttran("trncode") = Me![trncode]
ttran("trndate") = Me![POSIT_DT]
ttran("destination") = Me![destination]
ttran("lastupdate") = Me![lastupdate]
ttran.Update
ttran.Close
Forms![POLICE]![search_text] = Null
Forms![POLICE]![MAIN_ID] = Null
Forms![POLICE]![by_code] = Null
Forms![POLICE]![by_name] = Null
Forms![POLICE]![by_name].RowSource = "SELECT DISTINCTROW Person.NAME, Positid.ID_POSIT, Person.ID FROM Positid LEFT JOIN Person ON Positid.ID_POSIT = Person.ID_POSIT ORDER BY Person.NAME;"
DoCmd.Close acForm, "out_Police"
Exit_Command139_Click:
Exit Sub
Err_Command139_Click:
MsgBox Err.Description
Resume Exit_Command139_Click
End Sub