กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
448 5
URL.หัวข้อ /
URL
Form : เขียน Code อย่างไรครับ ให้ปุ่ม Command Buttom Click ได้ครั้งเดียว
ผมเข้า Website ของ อาจารย์ ไม่ได้มา 2 วันแล้วครับ
วันนี้เข้าได้เลยขอรบกวน อ.สุภาพ ด้วยครับ ดังนี้
1. ผมต้องการใช้ User ใช้ปุ่ม Cmd ได้ครั้งเดียว เพื่อใช้ในการโอนข้อมูลไปจัดเก็บ
2. ถ้าจะทำครั้งที่ 2 ... เป็นต้นไป ให้ใส่ Password ก่อน ครับ (ถ้าใส่ผิด ให้ Close Form)
รบกวนด้วยครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
วันนี้เข้าได้เลยขอรบกวน อ.สุภาพ ด้วยครับ ดังนี้
1. ผมต้องการใช้ User ใช้ปุ่ม Cmd ได้ครั้งเดียว เพื่อใช้ในการโอนข้อมูลไปจัดเก็บ
2. ถ้าจะทำครั้งที่ 2 ... เป็นต้นไป ให้ใส่ Password ก่อน ครับ (ถ้าใส่ผิด ให้ Close Form)
รบกวนด้วยครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R00790
ต้องการให้โอนเข้าทุกวันหรือเปล่า วันละครั้งเท่านั้น หรือ ทำครั้งเดียวก็เสร็จเลย
ผมจะอาศัยการใช้ตารางชื่อ tblCheck มีฟีลด์ชื่อ Imported เป็นประเภท Yes/No เป็นตัวช่วยเก็บข้อมูลการโอน โดยต้องเพิ่มข้อมูลเข้าไป 1 อัน คือ ให้คลิกเครื่องหมายถูกลงไปก่อน แล้วค่อยคลิกออก
จากนั้นก็สร้างโค้ดในปุ่มที่ต้องการ ดังนี้
Private Sub cmdImportData_Click()
Dim dbs As Database
Set dbs = CurrentDb
If DLookup("Imported", "tblCheck") = True Then
If InputBox("What is the password?", "Password") = "abcd" Then
' เรียกฟังก์ชันหรือ sub ที่ใช้ในการโอน
MsgBox "Password"
Else
MsgBox "The password is not correct." & vbCrLf & "You're outa here.", vbOKOnly
DoCmd.Close
End If
Else
' เรียกฟังก์ชันหรือ sub ที่ใช้ในการโอน
MsgBox "First Time"
dbs.Execute "UPDATE tblCheck SET tblCheck.Imported = True;"
End If
dbs.Close
Set dbs = Nothing
End Sub
โค้ดนี้เมื่อทำครั้งแรก มันจะทำการการโอนข้อมูลตามปกติ และจะไป update ฟีลด์ Imported ให้เป็น True หรือ Yes ฉะนั้นเมื่อคลิกที่ปุ่มนี้อีกมันจะถามหา Password
ลองประยุกต์ใช้ดูครับ
2 @R00801
ขอบพระคุณ อ.สุภาพ มากๆ ครับ ผมทำแล้วครับ
ตอบแรก เมื่อผมคลิกที่ Command Buttom จะพบ Bug ที่ Dim dbs As Database
ผมหาตั้งหลายชั่วโมง เพิ่งมาถึงบางอ้อ ก็ตรงที่
ผมต้อง Add In Referance Microsoft DAO 3.6 Object Library ก่อน (เนื่องจากเครื่องผมไม่ได้ Add)
โดยไปที่ ส่วน Code ใน Form แล้วไปที่
Menu Tools > Referances... > ให้ติกเครื่องหมายถูกที่ Microsoft DAO 3.6 Object Library > OK
ก็จะใช้งานได้ตามปกติ ครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
3 @R00804
รบกวน อ.สุภาพ เพิ่มเติมครับ
ผมทำ Invoice โดยมี Main Form + Sub Form
จาก Main Form และ Sub Form ผม Link กันด้วย Field InvoiceNo
และที่ Main Form มี Field ContainerNo
และจากคำแนะนำ ของ อาจารย์ ผมเพิ่ม Field ดังนี้
:- Table ชื่อ tblCheck ผมเพิ่ม Field Invoice และ Field ContainerNo
:- ผมทำ Relation ใน 3 Table ดังนี้
1. Table Main Form และ Sub Form ผม Link กันด้วย Field InvoiceNo
2. Table Main Form และ tblCheck ผม Link กันด้วย Field InvoiceNo + ContainerNo
ปัญหา คือ เมื่อผม Click ที่ cmdImportData ให้สามารถ Click ครั้งแรก ส่วนครั้งที่ 2...
ให้ขึ้น Password มาใส่ เหมือนเดิมครับ
แต่ ให้ทำการตรวจสอบ กับ ข้อมูลใน Form ปัจจุบัน ที่เปิดใช้อยู่โดย
1. เมื่อใส่ข้อมูลใหม่ลงใน Field InvoiceNo และ ContainerNo จาก Main Form
ให้ Update ข้อมูลใน Table ชื่อ tblCheck และให้ Field Imported = True
2. เมื่อผม Click ที่ cmdImportData ใน Main Form ให้ตรวจสอบ ไปที่ Table tblCheck
โดยให้ InvoiceNo และ ContainerNo ต้องตรงกันกับ ข้อมูลบน Main Form ของข้อมูลนั้นๆ
รบกวน อ.สุภาพ แนะนำด้วยครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
4 @R00805
ก็ให้เพิ่มเงื่อนไขเข้าไปดังนี้
...
If DLookup("Imported", "tblCheck", "[ContainerNo]='" & Me.ContainerNo & "' And [InvoiceNo] = '" & Me.InvoiceNo & "'") = True Then
If InputBox("What is the password?", "Password") = "abcd" Then
' เรียกฟังก์ชันหรือ sub ที่ใช้ในการโอน
MsgBox "Password"
Else
MsgBox "The password is not correct." & vbCrLf & "You're outa here.", vbOKOnly
DoCmd.Close
End If
Else
' เรียกฟังก์ชันหรือ sub ที่ใช้ในการโอน
MsgBox "First Time"
dbs.Execute "UPDATE tblCheck SET tblCheck.Imported = True " _
& "Where [ContainerNo]='" & Me.ContainerNo & "' And [InvoiceNo] = '" & Me.InvoiceNo & "';"
End If
...
5 @R00807
ขอบพระคุณ อ.สุภาพ มากๆ ครับ
สามารถใช้งานได้แล้วครับ
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
Time: 0.1207s