กระทู้เก่าบอร์ด อ.Yeadram
2,162 12
URL.หัวข้อ /
URL
กำหนดรหัสประจำตัว
เรียนอาจารย์ทุกท่าน
12 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R20097
Private Sub Form_Load()
'ให้ combobox แสดงลำดับแรก ของตำบล
cboTumbon.Value = cboTumbon.ItemData(0)
End Sub
Sub NewCode()
'comboBox ชื่อ cboTumbon มาจาก แหล่งข้อมูล ที่เก็บรายชื่อลำดับที่ และชื่อตำบล เรียงตาม ที่ต้องการ แต่แสดง เฉพาะ ชื่อตำบลอย่างเดียว
If Not IsNull(cboTumbon.Value) Then
txtID.Value = cboTumbon.Value
End If
'ใช้ textbox ชื่อ txtyearbirth มารับค่าวันที่ format เป็น shortdate
If Not IsNull(txtYearBirth.Value) Then
txtID.Value = txtID.Value & Right(Val(Year(txtYearBirth.Value) + 543), 2)
End If
'Rec เป็นค่าที่หาตาม เงื่อนไขที่ต้องการ เช่น ใน คนสุดท้ายในอำเภอและปีนั้น
'ทดลองโดยการเปลี่ยน rec เป็น 1 ดูครับ
txtID = txtID.Value & Right$("0000000" & Rec, 4)
End Sub
ที่ cboTumbon_Afterupdate() และ txtYearBirth_AlterUpdate() call Newcode ด้วยครับ
ทดลองดูครับ
Private Sub Form_Load()
'ให้ combobox แสดงลำดับแรก ของตำบล
cboTumbon.Value = cboTumbon.ItemData(0)
End Sub
Sub NewCode()
'comboBox ชื่อ cboTumbon มาจาก แหล่งข้อมูล ที่เก็บรายชื่อลำดับที่ และชื่อตำบล เรียงตาม ที่ต้องการ แต่แสดง เฉพาะ ชื่อตำบลอย่างเดียว
If Not IsNull(cboTumbon.Value) Then
txtID.Value = cboTumbon.Value
End If
'ใช้ textbox ชื่อ txtyearbirth มารับค่าวันที่ format เป็น shortdate
If Not IsNull(txtYearBirth.Value) Then
txtID.Value = txtID.Value & Right(Val(Year(txtYearBirth.Value) + 543), 2)
End If
'Rec เป็นค่าที่หาตาม เงื่อนไขที่ต้องการ เช่น ใน คนสุดท้ายในอำเภอและปีนั้น
'ทดลองโดยการเปลี่ยน rec เป็น 1 ดูครับ
txtID = txtID.Value & Right$("0000000" & Rec, 4)
End Sub
ที่ cboTumbon_Afterupdate() และ txtYearBirth_AlterUpdate() call Newcode ด้วยครับ
ทดลองดูครับ
3 @R20099
ท่านครับผม งง มากครับ
1.ผมมีฟอร์มชื่อ ประวัตทหาร
2.textbox ชื่อ รหัสประจำตัว (เดิมใช้พิมพ์เข้าไปเป็นรายบุคคล)
3.combox ชื่อ เกิด (พ.ศ.เกิด)
4.combobox ชื่อ ตำบล
ขอความละเอียดอีกครั้งครับ ผมมีความสนใจอย่างมาก
1.ผมมีฟอร์มชื่อ ประวัตทหาร
2.textbox ชื่อ รหัสประจำตัว (เดิมใช้พิมพ์เข้าไปเป็นรายบุคคล)
3.combox ชื่อ เกิด (พ.ศ.เกิด)
4.combobox ชื่อ ตำบล
ขอความละเอียดอีกครั้งครับ ผมมีความสนใจอย่างมาก
4 @R20109
พอมีเวลา ผมเขียนใหม่เลย (ลืมของเก่าไปก่อน)
Option Compare Database
Dim ID As Long
Private Sub cboTumbon_AfterUpdate()
Call CreateNewRecID
End Sub
Private Sub Form_Load()
cboTumbon.Value = cboTumbon.ItemData(0)
Call CreateNewRecID
End Sub
Sub CreateNewRecID()
Dim NewID As Long
If IsNull(cboTumbon.Value) And IsNull(txtYearOfBirth.Value) Then txtPersonalID.Value = Null: Exit Sub
If Not IsNull(cboTumbon.Value) Then
NewID = cboTumbon.Value
If Not IsNull(txtYearOfBirth.Value) Then
NewID = NewID & Right(txtYearOfBirth.Value, 2)
Call SetUpNewData
NewID = NewID & Right("0000000" & ID, 4)
End If
Else
NewID = Right(txtYearOfBirth.Value, 2)
End If
txtPersonalID.Value = NewID
End Sub
Sub SetUpNewData()
Dim Rec As Long
Dim DS As ADODB.Recordset
Set DS = New ADODB.Recordset
statement = "SELECT * " & _
"FROM tbPersonal " & _
"Where TumbonID= " & cboTumbon.Value & " AND " & _
"YearOfBirth = " & txtYearOfBirth.Value & " " & _
"ORDER BY PersonalID "
DS.Open statement, CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic, adCmdText
Rec = 0
If DS.BOF Or DS.EOF Then
Rec = 0
Else
DS.MoveLast
Rec = Right(DS("PersonalID"), 4)
End If
Rec = Rec + 1
ID = Rec
DS.Close: Set DS = Nothing
End Sub
Private Sub txtYearOfBirth_AfterUpdate()
'If IsNull(txtYearOfBirth.Value) Then Exit Sub
Call CreateNewRecID
End Sub
txtPersonalID = textbox ชื่อ รหัสประจำตัว
cboTumbon = ตำบล
txtYearOfBirth (เป็น textbox ถ้าต้องการ แปลงเป็น combobox ก็ทำได้ = เกิด
ศึกษา code แล้วลอง ดูครับ ถ้าสงสัย ทิ้งคำถาม ไว้ครับ
Option Compare Database
Dim ID As Long
Private Sub cboTumbon_AfterUpdate()
Call CreateNewRecID
End Sub
Private Sub Form_Load()
cboTumbon.Value = cboTumbon.ItemData(0)
Call CreateNewRecID
End Sub
Sub CreateNewRecID()
Dim NewID As Long
If IsNull(cboTumbon.Value) And IsNull(txtYearOfBirth.Value) Then txtPersonalID.Value = Null: Exit Sub
If Not IsNull(cboTumbon.Value) Then
NewID = cboTumbon.Value
If Not IsNull(txtYearOfBirth.Value) Then
NewID = NewID & Right(txtYearOfBirth.Value, 2)
Call SetUpNewData
NewID = NewID & Right("0000000" & ID, 4)
End If
Else
NewID = Right(txtYearOfBirth.Value, 2)
End If
txtPersonalID.Value = NewID
End Sub
Sub SetUpNewData()
Dim Rec As Long
Dim DS As ADODB.Recordset
Set DS = New ADODB.Recordset
statement = "SELECT * " & _
"FROM tbPersonal " & _
"Where TumbonID= " & cboTumbon.Value & " AND " & _
"YearOfBirth = " & txtYearOfBirth.Value & " " & _
"ORDER BY PersonalID "
DS.Open statement, CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic, adCmdText
Rec = 0
If DS.BOF Or DS.EOF Then
Rec = 0
Else
DS.MoveLast
Rec = Right(DS("PersonalID"), 4)
End If
Rec = Rec + 1
ID = Rec
DS.Close: Set DS = Nothing
End Sub
Private Sub txtYearOfBirth_AfterUpdate()
'If IsNull(txtYearOfBirth.Value) Then Exit Sub
Call CreateNewRecID
End Sub
txtPersonalID = textbox ชื่อ รหัสประจำตัว
cboTumbon = ตำบล
txtYearOfBirth (เป็น textbox ถ้าต้องการ แปลงเป็น combobox ก็ทำได้ = เกิด
ศึกษา code แล้วลอง ดูครับ ถ้าสงสัย ทิ้งคำถาม ไว้ครับ
5 @R20110
ตารางข้อมูล ตำบล ผมใช้ เป็น tbTumbon มี 2 field
TumbonID เก็บเลขลำดับของตำบล (อำเภอ มี 5 ตำบล กำหนด 1 ช้างทอง 2 ท้าช้าง)
TumbonName เก็บชื่อตำบล
ดังนั้น combobox ชื่อ ตำบล จะมี Rowsource
ตำบล.Rowsource = "Select TumbonID, TumbonName from tbTumbon ORDER BY ชื่อ FIELD ตามที่ต้องการจัดเรียง
TumbonID เก็บเลขลำดับของตำบล (อำเภอ มี 5 ตำบล กำหนด 1 ช้างทอง 2 ท้าช้าง)
TumbonName เก็บชื่อตำบล
ดังนั้น combobox ชื่อ ตำบล จะมี Rowsource
ตำบล.Rowsource = "Select TumbonID, TumbonName from tbTumbon ORDER BY ชื่อ FIELD ตามที่ต้องการจัดเรียง
6 @R20111
7 @R20114
ขอบคุณครับที่ให้ความรู้ผมจะทดลองดู หากสงสัยขอให้ท่านได้แนะนำต่อนะครับ
8 @R20116
ทดลองแล้วท่านผมไปไม่ได้เลย ความรู้มีน้อยครับ
รบกวนท่านสร้าง ไฟล์ตัวอย่าง ให้หน่อยเผื่อแกะรอยตามท่าน
mail sadsadeekabchoeng@hotmail.com จักขอบพระคุณเป็นอย่างมาก
รบกวนท่านสร้าง ไฟล์ตัวอย่าง ให้หน่อยเผื่อแกะรอยตามท่าน
mail sadsadeekabchoeng@hotmail.com จักขอบพระคุณเป็นอย่างมาก
9 @R20117
[FONT=MS]ส่งตัวอย่างไปแล้วครับ[/FONT]
10 @R20120
ขอบคุณครับ
ผมจะแปลงจากตัวอย่าง ให้เข้ากับงานที่ผมมีอยู่
ผมจะแปลงจากตัวอย่าง ให้เข้ากับงานที่ผมมีอยู่
11 @R20121
มารอลุ้นผล ว่าทำได้มั้ย
12 @R20138
หนูรบกวนสอบถามเพิ่มเติมหน่อยนะคะ คือที่หนูต้องการคือ
จะให้รหัสงาน เป็นแบบนี้ค่ะ 58010101
ตัวเลข 58 จะเป็นปี พ.ศ. ที่ทำงานๆนั้น
ตัวเลข 01 ชุดแรก จะเป็น เป็นงานที่เกิดขึ้นในเดือน มกราคม
ตัวเลข 01 ชุดสอง จะเป็น เป็นงานที่ 1 ในเดือนๆนั้น
ตัวเลข 01 ชุดสุดท้าย เป็น แสดงเวลาที่ทำงานชิ้นที่ 1
(เช่น งานชิ้นที่ 1 ใช้เวลาในการทำให้สำเร็จเป็นเวลา 3 วัน ก็จะได้รหัสนี้เป็น 58010103)
และให้มันรันอัตโนมัติในทุกๆงานที่เกิดขึ้นในเดือนๆนั้น และเมื่อเริ่มเดือนใหม่ ให้เริ่มต้นในการนับใหม่อีกค่ะ
หนูต้องทำตารางอะไรบ้างคะ
(มือใหม่อยากหัดเขียนโปรแกรม แต่พื้นฐานค่อนข้างน้อย ประสบการณ์ก็น้อยค่ะ..)
ขอบพระคุณเป็นอย่างสูงค่ะ... :D
จะให้รหัสงาน เป็นแบบนี้ค่ะ 58010101
ตัวเลข 58 จะเป็นปี พ.ศ. ที่ทำงานๆนั้น
ตัวเลข 01 ชุดแรก จะเป็น เป็นงานที่เกิดขึ้นในเดือน มกราคม
ตัวเลข 01 ชุดสอง จะเป็น เป็นงานที่ 1 ในเดือนๆนั้น
ตัวเลข 01 ชุดสุดท้าย เป็น แสดงเวลาที่ทำงานชิ้นที่ 1
(เช่น งานชิ้นที่ 1 ใช้เวลาในการทำให้สำเร็จเป็นเวลา 3 วัน ก็จะได้รหัสนี้เป็น 58010103)
และให้มันรันอัตโนมัติในทุกๆงานที่เกิดขึ้นในเดือนๆนั้น และเมื่อเริ่มเดือนใหม่ ให้เริ่มต้นในการนับใหม่อีกค่ะ
หนูต้องทำตารางอะไรบ้างคะ
(มือใหม่อยากหัดเขียนโปรแกรม แต่พื้นฐานค่อนข้างน้อย ประสบการณ์ก็น้อยค่ะ..)
ขอบพระคุณเป็นอย่างสูงค่ะ... :D
Time: 0.3807s
เช่น รหัสประจำตัว 140001 โดยแยก 1 คือตำบล (อำเภอ มี 5 ตำบล กำหนด 1 ช้างทอง 2 ท้าช้าง ประมาณนี้ครับ
40 (เลข 2 ตัว พ.ศ.เกิด )
001 ทหารกองเกินคนที่ 1 (หลักร้อย 999) หรือ 0001 (หลักพัน 9999 )
****
ผมมี TEXTBOX ชื่อ รหัสประจำตัว (number)
**ความต้องการ**
เมื่อพิมพ์ถึง พ.ศ. เกิด เช่น 2540 ให้ปรากฎตัวเลข 40 ในช่อง รหัสประจำตัว
เมื่อพิมพ์ถึง ตำบล (เช่น ช้างทอง ให้ปรากฎตัวเลข 1 อยู่ด้านหน้า 40 ในช่อง รหัสประจำตัว
ตามด้วยเลข 3 หลัก (001) หรือ 4 หลัก (0001) เป็นตัวเลขอัตโนมัติ ต่อจากคนสุดท้ายของคนเกิด พ.ศ.2540 ตำบล ช้างทอง
***หากไม่ได้***
อยากให้ปรากฎตัวเลข เช่น 140 (ตำบลและ พ.ศ.เกิด) ในช่อง รหัสประจำตัว เราพิมพ์เพิ่ม 001 ก็ได้ เป็นต้น
***อาจารย์ท่านใดมีประสบการณ์กรุณาช่วยแนะนำด้วย ขอบคุณครับ