กระทู้เก่าบอร์ด อ.Yeadram
1,253 1
URL.หัวข้อ /
URL
มือไหม่ช่วยหน่อยค่ะ
คือว่าอยากลองใช้ acc เป็นบ้างค่ะ เลยซื้อหนังสือมาอ่าน แต่ก็ยังไม่เข้าใจเลย
เข้าเรื่องเลยน่ะค่ะ
คือว่าสร้าง form1 ไว้ตรวจสอบเวลาเข้างาน และพนักงานที่อยู่ที่บริษัท น่ะค่ะ
มี txtbox1 ไว้กรอกข้อมูล คือ ID หรือ txtname โดยการ Scanbarcode บัตร พนักงาน หากใครลืมเอาบัตรมาก็สามารถกรอก ID หรือ ชื่อได้เลย (ทำได้แล้ว)
มี txtbox2 แสดงวันที่ และเวลา (ทำได้แล้ว)
มี table1_subform ไว้แสดง รายชื่อพนักงานที่กรอกข้อมูลแล้ว (ทำได้แล้ว)
มี table2_subform ไว้แสดงการกรอกซ้ำ คือมีข้อมูลอยู่ที่ table1 แล้ว (ยังทำไม่เป็นเลยค่ะ)
มี table3_subform ไว้แสดงการกรอกข้อมูลที่กรอกผิด คือไม่มีข้อมูลในรายชื่อหรือID ถูกต้อง อยากทำให้มีเสียงเตือนด้วย (ยังทำไม่เป็นเลยค่ะ)
มี table1 มีฟิล ID, txtname ,txt_time
มี table2 มีฟิล ID, txtname ,txt_time
มี table3 มีฟิล txtErr ,txt_time
มี table4 มีฟิล ID, txtname ,Sec ,......
หนูเขียนคำสั่งที่
Private Sub txtbox1_Exit(Cancel As Integer)
Dim Db As DAO.Database
Dim SQL As String
Dim InTrans As Boolean
If Nz(Me.txtbox1, "") = "" Then Exit Sub
InTrans = False
On Error GoTo err_rtn
Set Db = CurrentDb
DBEngine.BeginTrans: InTrans = True
SQL = "insert into table1(ID,txtname,txt_time) select ID,txtname,txt_time #" & Format(Now(), "dd-mmm-yyyy hh:nn") & "# from table4 where table4.ID = '" & Me.txtname & "' or table4.txtname = '" & Me.txtname & "' "
Db.Execute SQL
me.txtname = ""
me.txtname.SetFocus
DBEngine.CommitTrans dbForceOSFlush: InTrans = False
Me.[table1_subform].Form.Requery
Me.[table2_subform].Form.Requery
Me.[table3_subform].Form.Requery
exit_rtn:
Exit Sub
err_rtn:
If InTrans Then DBEngine.Rollback
MsgBox "error code " & Err.Number & ", " & Err.Description
Resume Next
End Sub
ต้องทำแบบไหนค่ะที่จะให้ txtname ที่ซ้ำไปอยู่ที่ table2
และ ไม่มีข้อมูลไปอยู่ที่ table3 (ไม่มีข้อมูลให้มีเสียงเตือนด้วย)
ไม่ทราบว่าถูกต้องหรือเปล่า
ถ้าใครมีอะไรบอกได้น่ะค่ะ หนูเขียนตามความเข้าใจ
อยากให้คนมีประสบการณ์ช่วยชี้แนะด้วย
เข้าเรื่องเลยน่ะค่ะ
คือว่าสร้าง form1 ไว้ตรวจสอบเวลาเข้างาน และพนักงานที่อยู่ที่บริษัท น่ะค่ะ
มี txtbox1 ไว้กรอกข้อมูล คือ ID หรือ txtname โดยการ Scanbarcode บัตร พนักงาน หากใครลืมเอาบัตรมาก็สามารถกรอก ID หรือ ชื่อได้เลย (ทำได้แล้ว)
มี txtbox2 แสดงวันที่ และเวลา (ทำได้แล้ว)
มี table1_subform ไว้แสดง รายชื่อพนักงานที่กรอกข้อมูลแล้ว (ทำได้แล้ว)
มี table2_subform ไว้แสดงการกรอกซ้ำ คือมีข้อมูลอยู่ที่ table1 แล้ว (ยังทำไม่เป็นเลยค่ะ)
มี table3_subform ไว้แสดงการกรอกข้อมูลที่กรอกผิด คือไม่มีข้อมูลในรายชื่อหรือID ถูกต้อง อยากทำให้มีเสียงเตือนด้วย (ยังทำไม่เป็นเลยค่ะ)
มี table1 มีฟิล ID, txtname ,txt_time
มี table2 มีฟิล ID, txtname ,txt_time
มี table3 มีฟิล txtErr ,txt_time
มี table4 มีฟิล ID, txtname ,Sec ,......
หนูเขียนคำสั่งที่
Private Sub txtbox1_Exit(Cancel As Integer)
Dim Db As DAO.Database
Dim SQL As String
Dim InTrans As Boolean
If Nz(Me.txtbox1, "") = "" Then Exit Sub
InTrans = False
On Error GoTo err_rtn
Set Db = CurrentDb
DBEngine.BeginTrans: InTrans = True
SQL = "insert into table1(ID,txtname,txt_time) select ID,txtname,txt_time #" & Format(Now(), "dd-mmm-yyyy hh:nn") & "# from table4 where table4.ID = '" & Me.txtname & "' or table4.txtname = '" & Me.txtname & "' "
Db.Execute SQL
me.txtname = ""
me.txtname.SetFocus
DBEngine.CommitTrans dbForceOSFlush: InTrans = False
Me.[table1_subform].Form.Requery
Me.[table2_subform].Form.Requery
Me.[table3_subform].Form.Requery
exit_rtn:
Exit Sub
err_rtn:
If InTrans Then DBEngine.Rollback
MsgBox "error code " & Err.Number & ", " & Err.Description
Resume Next
End Sub
ต้องทำแบบไหนค่ะที่จะให้ txtname ที่ซ้ำไปอยู่ที่ table2
และ ไม่มีข้อมูลไปอยู่ที่ table3 (ไม่มีข้อมูลให้มีเสียงเตือนด้วย)
ไม่ทราบว่าถูกต้องหรือเปล่า
ถ้าใครมีอะไรบอกได้น่ะค่ะ หนูเขียนตามความเข้าใจ
อยากให้คนมีประสบการณ์ช่วยชี้แนะด้วย
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Time: 0.3396s
ฟอร์มย่อย2 แสดงผลจาก table2
ฟอร์มย่อย3 แสดงผลจาก table3
ฟอร์มหลัก ให้มี textbox 2 ตัว
1 txBox2 แสดงผลวันเวลาปัจจุบัน
2 txBox1 ไว้รับค่าการป้อนข้อมูล (กรอกได้เฉพาะเลข ID เท่านั้น ห้ามกรอกอย่างอื่น)
เขียนโค้ดใน txBox1
sub txBox1_Exit(cancel as integer)
if txBox1="" then exit sub
dim xID, xDupplicate, xName
Dim sql as string
Dim Conn as new adodb.connection
set Conn = currentproject.connection
xID = nz(dlookup("ID", "table4","ID = '" & txBox1 & "'"),"NoID")
if xID = "NoID" then
sql = "Insert into table3 values('No ID input : " & txBox1 & "', " & now() & ");"
docmd.beep
Conn.execute sql
table3_subform.requery
else
xName = dlookup("txName","Table4","ID = '" & txBox1 & "'")
xDupplicate = nz(dlookup("ID", "table1","ID = '" & txBox1 & "'"),"Dupplicate")
if xDupplicate = "Dupplicate" then
sql = "Insert into table2 values('" & txBox1 & "', '" & xName & "', " & now() & ");"
Conn.execute sql
table2_subform.requery
else
sql = "Insert into table1 values('" & txBox1 & "', '" & xName & "', " & now() & ");"
Conn.execute sql
table1_subform.requery
end if
end if
set Conn = nothing
end sub