กระทู้เก่าบอร์ด อ.Yeadram
1,965 4
URL.หัวข้อ /
URL
RunNumber(PK) ตาม ปี-เดือน-No
จากโค้ดนี้ครับ
Private Sub AddFarmerId_Click()
Dim strDate As String
Dim intNum As Integer, intMax As Integer
Dim strSuffix As String
strDate = Format(Date, "yy-mm")
If Me.FarmerId = "" Or IsNull(Me.FarmerId) Then
If IsNull(DMax("Val(Mid([FarmerId],7))", "TB_Farmers", "Left([FarmerId],5) = '" & strDate & " '")) Then
Me.FarmerId = strDate & "-" & "0001"
Debug.Print "1"
Else: intMax = DMax("Val(Mid([FarmerId],7))", "TB_Farmers", "Left([FarmerId],5) = '" & strDate & " '")
intMax = intMax + 1
Me.FarmerId = strDate & "-" & Format(intMax, "0000")
Debug.Print "1"
Prefix.SetFocus
End If
End If
End Sub
ผลลัพธ์ 55-06-0001--->55-06-XXXX เดือน มิถุนายน
ขึ้นเดือนใหม่ 55-07-0001--->
ช่วยแก้ให้หน่อยครับว่า ถ้าขึ้นเดือนใหม่ไม่้ต้อง นับ 0001 ใหม่ ได้ไหมครับ ให้ต่อจากเดือนก่อนเลย สมมุติ 55-06-0010 ---> เดือนต่อมา 55-07-0011 เลยครับ
Private Sub AddFarmerId_Click()
Dim strDate As String
Dim intNum As Integer, intMax As Integer
Dim strSuffix As String
strDate = Format(Date, "yy-mm")
If Me.FarmerId = "" Or IsNull(Me.FarmerId) Then
If IsNull(DMax("Val(Mid([FarmerId],7))", "TB_Farmers", "Left([FarmerId],5) = '" & strDate & " '")) Then
Me.FarmerId = strDate & "-" & "0001"
Debug.Print "1"
Else: intMax = DMax("Val(Mid([FarmerId],7))", "TB_Farmers", "Left([FarmerId],5) = '" & strDate & " '")
intMax = intMax + 1
Me.FarmerId = strDate & "-" & Format(intMax, "0000")
Debug.Print "1"
Prefix.SetFocus
End If
End If
End Sub
ผลลัพธ์ 55-06-0001--->55-06-XXXX เดือน มิถุนายน
ขึ้นเดือนใหม่ 55-07-0001--->
ช่วยแก้ให้หน่อยครับว่า ถ้าขึ้นเดือนใหม่ไม่้ต้อง นับ 0001 ใหม่ ได้ไหมครับ ให้ต่อจากเดือนก่อนเลย สมมุติ 55-06-0010 ---> เดือนต่อมา 55-07-0011 เลยครับ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R13146
ยังแก้ไม่ได้เลยครับ
2 @R13147
ในโค้ด มีการใช้คำสั่ง Dmax 2 ครั้ง ไปแก้เงื่อนไขของมันทั้งสองจุดนั่นเลยครับ
จุดแรก ดังนี้
If IsNull(DMax("Val(Mid([FarmerId],7))", "TB_Farmers", "Left([FarmerId],2) = '" & Format(Date, "yy") & "'")) Then
จุดสองดังนี้
Else: intMax = DMax("Val(Mid([FarmerId],7))", "TB_Farmers", "Left([FarmerId],2) = '" & Format(Date, "yy") & "'")
ถ้ามั่นใจว่า ในปีหนึ่งคุณรันเลขที่ น้อยกว่าหมื่นเลขที่ ก็ลุยโลด
จุดแรก ดังนี้
If IsNull(DMax("Val(Mid([FarmerId],7))", "TB_Farmers", "Left([FarmerId],2) = '" & Format(Date, "yy") & "'")) Then
จุดสองดังนี้
Else: intMax = DMax("Val(Mid([FarmerId],7))", "TB_Farmers", "Left([FarmerId],2) = '" & Format(Date, "yy") & "'")
ถ้ามั่นใจว่า ในปีหนึ่งคุณรันเลขที่ น้อยกว่าหมื่นเลขที่ ก็ลุยโลด
3 @R13149
ได้แล้วครับ อาจารย์ yeadram ผมมือใหม่หน่ะครับยังไม่ค่อยรู้เรื่อง Code เท่าไหร่ แต่ก็พยายามจะเรียนรู้จากบอร์ดนี้ครับ และจากอาจารย์หลายๆท่าน ขอบคุณจากใจจริงๆครับ
ผมรบกวนอีกอย่างนึงครับ
ตอนนี้ผมสร้าง Combo เลือกจังหวัด--->อำเภอ(ของจังหวัดที่เลือก)--->ตำบล
ถ้าผมคีย์ แพ จะมี autocomplete ขึ้นมาให้ว่า แพร่ ถ้าผมกด Enter และจะเลือกอำเภอ ต่อไป Combo อำเภอมันไม่มีรายชื่อให้เลือกครับ (ว่างเปล่า) แต่ถ้าใช้เมาส์คลิกเลิกที่ Combo จังหวัด จึงจะมีรายชื่ออำเภอให้ ไม่ทราบว่าผมต้องเปลี่ยน code ยังไงครับ หรือว่าผมใส่ Code ผิดที่ครับ
Private Sub Province_Change()
Amphur.RowSource = "Select * From [CodeAmphur] where ([PROVINC[CODE] Like '" & Province & "')"
Amphur.Requery
End Sub
Private Sub Amphur_Change()
Tambon.RowSource = "Select * From [CodeTumbol] where ([AMPHURCODE] Like '" & Amphur & "')"
Tambon.Requery
ผมรบกวนอีกอย่างนึงครับ
ตอนนี้ผมสร้าง Combo เลือกจังหวัด--->อำเภอ(ของจังหวัดที่เลือก)--->ตำบล
ถ้าผมคีย์ แพ จะมี autocomplete ขึ้นมาให้ว่า แพร่ ถ้าผมกด Enter และจะเลือกอำเภอ ต่อไป Combo อำเภอมันไม่มีรายชื่อให้เลือกครับ (ว่างเปล่า) แต่ถ้าใช้เมาส์คลิกเลิกที่ Combo จังหวัด จึงจะมีรายชื่ออำเภอให้ ไม่ทราบว่าผมต้องเปลี่ยน code ยังไงครับ หรือว่าผมใส่ Code ผิดที่ครับ
Private Sub Province_Change()
Amphur.RowSource = "Select * From [CodeAmphur] where ([PROVINC[CODE] Like '" & Province & "')"
Amphur.Requery
End Sub
Private Sub Amphur_Change()
Tambon.RowSource = "Select * From [CodeTumbol] where ([AMPHURCODE] Like '" & Amphur & "')"
Tambon.Requery
4 @R13152
ได้แล้วครับ!! พอดีลองเอาโค้ดไปใส่ ที่ After Update ครับ
Time: 0.2175s