สมัครสมาชิก
 

จะให้ข้อมูลบางฟิลด์เหมือนกับบรรทัดก่อนหน้า เมื่อขึ้นบรรทัดใหม่ครับ



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

24 ม.ค. 62 , 14:32:08
อ่าน 193 ครั้ง

Eik Q Sang

รบกวนสอบถามหน่อยคับ จากไฟล์ เมื่อเราคลิ๊กปุุ่ม Detail จากฟอร์ม frmMainMenu จะปรากฎฟอร์ม frmBoxDetail เพื่อกรอกข้อมูล

คำถามแรก คือ เมื่อเราเริ่มเรคคอร์ดใหม่ในบรรทัดใหม่ ที่ฟิลด์ Sequence ผมต้องการให้ ฟิลด์ SerialNo /BoxNo / Shelf จากบรรทัดใหม่ ให้เหมือนกับบรรทัดก่อนหน้านี้

คำถามที่สอง คือ อยากให้ฟิลด์ Sequence รันนัมเบอโดยเมื่อขึ้นบรรทัดใหม่ที่ฟิลด์ Sequence ให้รันเลขต่อจากบรรทัดก่อนหน้า โดยใช้ GotFocus จะเขียนโค้ดว่าอย่างไรบ้าง ขอบคุณมากครับผม

 

24 ม.ค. 62 , 15:03:19
ตอบกลับ #1

ปิ่นณรงค์

ลองดูตัวอย่างนี้ครับ ผมเปลี่ยนจากการ GotFocus แล้ว โค้ดทำงานเป็นใส่บน CommandBonton เล็กๆ นะครับลองดู
เวลาจะเพิ่ม Record ใหม่ให้กด เครื่องหมาย + ในช่องที่มีข้อมูลอยู่นะครับ อย่ากดช่องที่ไม่มีข้อมูล หรือช่องล่างสุด

โค๊ด: [Select]
Private Sub Command16_Click()
Dim GetSerialNo As String
Dim RunNum_Sequence As Integer
GetSerialNo = Me.SerialNo
DoCmd.GoToRecord , , acNewRec
If IsNull(Sequence) Then
Me.Sequence.Requery
RunNum_Sequence = DLookup("Sequence", "GetMaxSequence", "SerialNo='" & GetSerialNo & "'")
Me.Sequence = RunNum_Sequence + 1
Me.SerialNo = DLookup("SerialNo", "tblWareHouseAll", "SerialNo='" & GetSerialNo & "'")
Me.BoxNo = DLookup("BoxNo", "tblWareHouseAll", "SerialNo='" & GetSerialNo & "'")
Me.CIFNo.SetFocus
End If
End Sub
« แก้ไขครั้งสุดท้าย: 24 ม.ค. 62 , 19:34:09 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

24 ม.ค. 62 , 15:06:35
ตอบกลับ #2

Eik Q Sang

ลองดูตัวอย่างนี้ครับ ผมเปลี่ยนจากการ GotFocus แล้ว โค้ดทำงานเป็นใส่บน CommandBonton เล็กๆ นะครับลองดู

โค๊ด: [Select]
Dim GetSerialNo As String
Dim RunNum_Sequence As Integer
DoCmd.GoToRecord , , acNewRec
If IsNull(Sequence) Then
Me.Sequence.Requery
GetSerialNo = DLast("SerialNo", "tblWareHouseAll")
RunNum_Sequence = DMax("Sequence", "tblWareHouseAll")
Me.SerialNo = GetSerialNo
Me.BoxNo = DLookup("BoxNo", "tblWareHouseAll", "SerialNo='" & GetSerialNo & "'")
Me.Shelf = DLookup("Shelf", "tblWareHouseAll", "SerialNo='" & GetSerialNo & "'")
Me.Sequence = RunNum_Sequence + 1
Me.CIFNo.SetFocus
End If

ขอบพระคุณมากครับผม

 

25 ม.ค. 62 , 14:47:11
ตอบกลับ #3

Eik Q Sang

Private Sub Command16_Click()
Dim GetSerialNo As String
Dim RunNum_Sequence As Integer
DoCmd.GoToRecord , , acNewRec
If IsNull(Sequence) Then
Me.Sequence.Requery
GetSerialNo = DLast("SerialNo", "tblWareHouseAll")
RunNum_Sequence = DMax("Sequence", "tblWareHouseAll", "SerialNo ='" & GetSerialNo & "'")
Me.SerialNo = GetSerialNo
Me.BoxNo = DLookup("BoxNo", "tblWareHouseAll", "SerialNo='" & GetSerialNo & "'")
Me.Shelf = DLookup("Shelf", "tblWareHouseAll", "SerialNo='" & GetSerialNo & "'")
Me.Sequence = RunNum_Sequence + 1
Me.CIFNo.SetFocus
End If
End Sub

 

25 ม.ค. 62 , 14:53:01
ตอบกลับ #4

ปิ่นณรงค์

โค๊ด: [Select]
Private Sub Command10_Click()
Me.Dirty = False
Me.SerialNo.SetFocus
If IsNull(DLookup("SerialNo", "tblWareHouseAll", "SerialNo ='" & Me.SerialNo & "'")) Then
Call SaveRecord
DoCmd.OpenForm "frmBoxDetail", , , "SerialNo ='" & Me.SerialNo & "'"
Else
DoCmd.OpenForm "frmBoxDetail", , , "SerialNo ='" & Me.SerialNo & "'"
End If
End Sub
Sub SaveRecord()
Dim DB As Database
Dim RS As Recordset
Set DB = CurrentDb()
            Set RS = DB.OpenRecordset("tblWareHouseAll", DB_OPEN_DYNASET)
    RS.AddNew
    RS![SerialNo] = Me.SerialNo
    RS![BoxNo] = Me.BoxNo
    RS![Sequence] = "1"
    RS.Update
End Sub
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: TIM_cb


บอร์ดเรียนรู้ Access สำหรับคนไทย