กำหนดรหัสประจำตัว
กระทู้เก่าบอร์ด อ.Yeadram

 2,106   12
URL.หัวข้อ / URL
กำหนดรหัสประจำตัว

เรียนอาจารย์ทุกท่าน

12 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R20096
ผมมีความประสงค์ต้องการสร้างรหัสประจำตัวทหารกองเกิน
เช่น รหัสประจำตัว 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 ก็ได้ เป็นต้น
***อาจารย์ท่านใดมีประสบการณ์กรุณาช่วยแนะนำด้วย ขอบคุณครับ
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 ด้วยครับ   

ทดลองดูครับ
3 @R20099
ท่านครับผม งง มากครับ
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 แล้วลอง ดูครับ ถ้าสงสัย ทิ้งคำถาม ไว้ครับ


5 @R20110
ตารางข้อมูล ตำบล ผมใช้ เป็น tbTumbon มี 2 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 จักขอบพระคุณเป็นอย่างมาก
9 @R20117
[FONT=MS]ส่งตัวอย่างไปแล้วครับ[/FONT]

10 @R20120
ขอบคุณครับ
ผมจะแปลงจากตัวอย่าง ให้เข้ากับงานที่ผมมีอยู่
11 @R20121
มารอลุ้นผล ว่าทำได้มั้ย
12 @R20138
หนูรบกวนสอบถามเพิ่มเติมหน่อยนะคะ คือที่หนูต้องการคือ
จะให้รหัสงาน เป็นแบบนี้ค่ะ 58010101
ตัวเลข 58 จะเป็นปี พ.ศ. ที่ทำงานๆนั้น
ตัวเลข 01 ชุดแรก จะเป็น เป็นงานที่เกิดขึ้นในเดือน มกราคม
ตัวเลข 01 ชุดสอง จะเป็น เป็นงานที่ 1 ในเดือนๆนั้น
ตัวเลข 01 ชุดสุดท้าย เป็น แสดงเวลาที่ทำงานชิ้นที่ 1
(เช่น งานชิ้นที่ 1 ใช้เวลาในการทำให้สำเร็จเป็นเวลา 3 วัน ก็จะได้รหัสนี้เป็น 58010103)
และให้มันรันอัตโนมัติในทุกๆงานที่เกิดขึ้นในเดือนๆนั้น และเมื่อเริ่มเดือนใหม่ ให้เริ่มต้นในการนับใหม่อีกค่ะ

หนูต้องทำตารางอะไรบ้างคะ
(มือใหม่อยากหัดเขียนโปรแกรม แต่พื้นฐานค่อนข้างน้อย ประสบการณ์ก็น้อยค่ะ..)

ขอบพระคุณเป็นอย่างสูงค่ะ... :D
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3315s